{
  "openapi": "3.0.1",
  "info": {
    "title": "EURAXESS Jobs Scraper: European Research Vacancies",
    "description": "Scrape public EURAXESS research jobs, PhD positions, and postdoc fellowships with deadlines, funding, and application links. Export straight to Google Sheets, Airtable, Make, or n8n. Skip manual daily searches. Pay just $0.0025 per successful job row.",
    "version": "0.1",
    "x-build-id": "2aPciq3KheP3QC1uF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~euraxess-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-euraxess-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/getascraper~euraxess-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-euraxess-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/getascraper~euraxess-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-euraxess-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "Start URLs",
            "maxItems": 20,
            "type": "array",
            "description": "Optional public EURAXESS search or job URLs. The default search URL is used when no custom source is supplied.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "keyword": {
            "title": "Keyword",
            "maxLength": 200,
            "type": "string",
            "description": "Optional words matched by EURAXESS against the public opportunity search.",
            "default": ""
          },
          "offerTypes": {
            "title": "Offer Types",
            "maxItems": 20,
            "type": "array",
            "description": "Optional EURAXESS offer types, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": [
              "job_offer"
            ]
          },
          "countries": {
            "title": "Countries",
            "maxItems": 50,
            "type": "array",
            "description": "Optional EURAXESS country filters, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "sortBy": {
            "title": "Sort Results By",
            "enum": [
              "newest",
              "oldest",
              "deadline"
            ],
            "type": "string",
            "description": "Order the public EURAXESS search before pagination.",
            "default": "newest"
          },
          "postedWithinDays": {
            "title": "Posted Within Days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep postings observed within this many days. The default favors recent research opportunities.",
            "default": 30
          },
          "researchFields": {
            "title": "Research Fields",
            "maxItems": 50,
            "type": "array",
            "description": "Optional EURAXESS research-field filters, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "researcherProfiles": {
            "title": "Researcher Profiles",
            "maxItems": 30,
            "type": "array",
            "description": "Optional EURAXESS researcher-profile filters, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "organisationTypes": {
            "title": "Organisation Types",
            "maxItems": 30,
            "type": "array",
            "description": "Optional EURAXESS organisation-type filters, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "fundingProgrammes": {
            "title": "Funding Programmes",
            "maxItems": 20,
            "type": "array",
            "description": "Optional EURAXESS funding-programme filters, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "fundingTypes": {
            "title": "Funding Types",
            "maxItems": 20,
            "type": "array",
            "description": "Optional EURAXESS funding-type filters, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "offerCategories": {
            "title": "Offer Categories",
            "maxItems": 30,
            "type": "array",
            "description": "Optional EURAXESS offer-category filters, supplied as live source values or visible labels.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "fetchDetails": {
            "title": "Fetch Job Details",
            "type": "boolean",
            "description": "Fetch each matched public EURAXESS job page for descriptions, requirements, contacts, and application fields.",
            "default": true
          },
          "onlyNewSinceLastRun": {
            "title": "Only New Since Last Run",
            "type": "boolean",
            "description": "Keep only jobs whose fingerprint is new or changed in the selected monitoring state.",
            "default": false
          },
          "stateKey": {
            "title": "Monitoring State Key",
            "maxLength": 120,
            "type": "string",
            "description": "Optional stable name for a monitoring baseline. When blank, the normalized search scope determines the state key.",
            "default": ""
          },
          "maxItems": {
            "title": "Maximum Job Rows",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum job rows written to the dataset in one run. Diagnostic rows are not job rows.",
            "default": 10
          },
          "maxPages": {
            "title": "Maximum Search Pages",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum EURAXESS search pages to request across the selected source scope.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Apify datacenter proxy settings for polite, reliable public EURAXESS requests.",
            "default": {
              "useApifyProxy": true
            }
          },
          "requestDelayMs": {
            "title": "Request Delay",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Delay between public EURAXESS requests to keep request pacing predictable.",
            "default": 1500
          },
          "maxConcurrency": {
            "title": "Request Concurrency",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Maximum simultaneous public EURAXESS requests.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Maximum Request Retries",
            "minimum": 0,
            "maximum": 6,
            "type": "integer",
            "description": "Bounded retry attempts for temporary public request failures.",
            "default": 2
          },
          "debug": {
            "title": "Debug Logging",
            "type": "boolean",
            "description": "Include additional parser and request diagnostics in logs without changing the dataset contract.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}