{
  "openapi": "3.0.1",
  "info": {
    "title": "InfoJobs Scraper: Spain Job Listings and Salaries",
    "description": "Scrape InfoJobs.net job offers in Spain by keyword, province, category, contract type, remote mode and posted date. Title, company, city, salary band, contract, workday, publication date and offer text. Optional applicants, skills and requirements. Unofficial.",
    "version": "0.1",
    "x-build-id": "WvvGFu9xV86MDHXmr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/reventadata~infojobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-reventadata-infojobs-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/reventadata~infojobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-reventadata-infojobs-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/reventadata~infojobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-reventadata-infojobs-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": {
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Job title or words to search for, for example camarero or desarrollador. Leave empty to list every offer (use filters to stay under the site's 59,980-offer ceiling per search)."
          },
          "provinceId": {
            "title": "Province id",
            "type": "string",
            "description": "Optional. One InfoJobs province id (digits). Seen on the site: 33 Madrid, 9 Barcelona, 49 Valencia/València, 43 Sevilla, 34 Málaga, 4 Alicante/Alacant, 53 Zaragoza, 36 Murcia, 51 Vizcaya/Bizkaia, 26 Islas Baleares, 20 Las Palmas, 46 Santa Cruz de Tenerife. Unlisted ids are passed through unvalidated; the run stops (and fails if it has no rows yet) if the site does not apply the filter."
          },
          "categoryId": {
            "title": "Category id",
            "type": "string",
            "description": "Optional. One InfoJobs category id (digits). Seen on the site: 160 Turismo y restauración, 170 Atención a clientes, 180 Otros, 120 Profesiones artes y oficios, 190 Comercial y ventas, 200 Ventas al detalle, 10 Administración de empresas, 40 Compras logística y almacén, 30 Calidad producción e I+D. Other ids are passed through unvalidated."
          },
          "contractTypeId": {
            "title": "Contract type",
            "enum": [
              "1",
              "8",
              "9",
              "5",
              "4",
              "6",
              "3",
              "10"
            ],
            "type": "string",
            "description": "Optional. Contract type filter."
          },
          "teleworkingId": {
            "title": "On-site or remote",
            "enum": [
              "1",
              "2",
              "4"
            ],
            "type": "string",
            "description": "Optional. Work location mode filter."
          },
          "sinceDate": {
            "title": "Posted within",
            "enum": [
              "ANY",
              "_24_HOURS",
              "_7_DAYS",
              "_15_DAYS"
            ],
            "type": "string",
            "description": "Optional. Only offers published within this window. ANY sends no filter.",
            "default": "ANY"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "PUBLICATION_DATE",
              "RELEVANCE"
            ],
            "type": "string",
            "description": "Optional. Newest first or the site's relevance order. Empty uses the site's default (relevance with a keyword, newest without)."
          },
          "fetchDetails": {
            "title": "Fetch detail pages",
            "type": "boolean",
            "description": "Off by default. When on, the Actor opens each offer's own page to add applicants, required skills, required languages, minimum studies and minimum experience. This is one extra slow request per row (about 30 seconds each, one at a time). Each detail page used in a returned row is charged as a separate pay-per-event \"detail-page\" event (see the Store page for pricing); a detail page that cannot be read is not charged.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum rows",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on rows pushed.",
            "default": 100
          },
          "maxPages": {
            "title": "Maximum pages",
            "minimum": 1,
            "maximum": 2999,
            "type": "integer",
            "description": "Cap on result pages fetched (20 offers each). The site serves at most 2,999 pages per search. Each page is one paid unblocking request on the Actor's side and takes about 30 seconds.",
            "default": 50
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}