{
  "openapi": "3.0.1",
  "info": {
    "title": "InfoJobs Scraper — Ofertas de Trabajo y Empleo España",
    "description": "Scrape ofertas de trabajo y empleo from InfoJobs.net, Spain's largest job board. Keyword, province, contract, jornada and teletrabajo filters; AI skill tags, structured salary (min/max), postedAt and apply URL. Delta mode for alert bots. For recruiters, job boards and Spanish market analysis.",
    "version": "0.1",
    "x-build-id": "DjJgwdjsa91OCPsgN"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nomad-agent~infojobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nomad-agent-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/nomad-agent~infojobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-nomad-agent-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/nomad-agent~infojobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-nomad-agent-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": "Free-text search query (e.g. <code>data engineer</code>, <code>marketing</code>). Leave empty to return the latest postings across all categories."
          },
          "province": {
            "title": "Province",
            "enum": [
              "",
              "28",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "29",
              "20",
              "30",
              "31",
              "32",
              "33",
              "34",
              "35",
              "36",
              "37",
              "38",
              "39",
              "40",
              "41",
              "46",
              "42",
              "43",
              "44",
              "45",
              "47",
              "48",
              "49",
              "50",
              "51",
              "52",
              "53"
            ],
            "type": "string",
            "description": "Restrict results to a single Spanish province. Leave as <code>All provinces</code> to search nationwide.",
            "default": ""
          },
          "teleworking": {
            "title": "Teletrabajo / work mode",
            "type": "string",
            "description": "Keep only listings whose work-mode label matches (accent- and case-insensitive substring). Values shown on InfoJobs cards: <code>Presencial</code> (on-site), <code>Híbrido</code> (hybrid), <code>Teletrabajo</code> (remote). Leave empty for all.",
            "default": ""
          },
          "contractType": {
            "title": "Tipo de contrato / contract type",
            "type": "string",
            "description": "Keep only listings whose contract-type label matches (accent- and case-insensitive substring of the label shown on the card). Common values: <code>Indefinido</code>, <code>De duración determinada</code>, <code>Fijo discontinuo</code>, <code>Formativo</code>, <code>De relevo</code>, <code>Autónomo</code>, <code>A tiempo parcial</code>, <code>Otros contratos</code>. Leave empty for all.",
            "default": ""
          },
          "workday": {
            "title": "Jornada / workday",
            "type": "string",
            "description": "Keep only listings whose workday label matches (accent- and case-insensitive substring of the label shown on the card). Common values: <code>Completa</code>, <code>Parcial</code>, <code>Intensiva</code>, <code>Indiferente</code>. Leave empty for all.",
            "default": ""
          },
          "postedWithin": {
            "title": "Posted within",
            "pattern": "^(any|[0-9]+[hdwm])$",
            "type": "string",
            "description": "Keep only jobs published inside this window. Use <code>any</code> for no date filter, or a duration — <code>1h</code>, <code>24h</code>, <code>3d</code>, <code>2w</code>, <code>6m</code>. Jobs the source published no date for are kept rather than dropped. InfoJobs shows posting dates as relative Spanish text (e.g. <code>Hace 6d</code>), which is parsed into an approximate age. The original text stays in <code>postedAtText</code>. Replaces <code>postedSince</code>, still accepted for existing integrations.",
            "default": "any"
          },
          "titleExclude": {
            "title": "Title must NOT contain",
            "type": "array",
            "description": "Skip listings whose title contains any of these case-insensitive terms.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "companyExclude": {
            "title": "Company must NOT contain",
            "type": "array",
            "description": "Skip listings whose company name contains any of these case-insensitive terms.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Maximum number of postings to return. InfoJobs returns roughly 10–15 cards per page; set 0 for no additional cap.",
            "default": 15
          },
          "timeoutSecs": {
            "title": "Request timeout (seconds)",
            "type": "integer",
            "description": "How long to wait for InfoJobs to respond before giving up, in seconds.",
            "default": 25
          },
          "browserRendering": {
            "title": "Use browser rendering",
            "type": "boolean",
            "description": "Render public InfoJobs listing pages in Chromium. This is slower than direct HTTP but more resilient to JavaScript interstitials. When disabled, the Actor still falls back to browser rendering if direct HTTP is blocked.",
            "default": false
          },
          "residentialProxyFallback": {
            "title": "Use Residential proxy fallback",
            "type": "boolean",
            "description": "After both direct HTTP and ordinary browser rendering fail, make one bounded listing-page request through Apify Residential Proxy in Spain. This uses paid proxy bandwidth. It never proxies detail pages, browser assets, or CAPTCHA interaction.",
            "default": false
          },
          "cacheTtlSeconds": {
            "title": "Cache TTL (seconds)",
            "type": "integer",
            "description": "Reuses the last fetch for this many seconds so rapid re-runs don't hit InfoJobs again. Set 0 to always fetch live.",
            "default": 1800
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}