{
  "openapi": "3.0.1",
  "info": {
    "title": "Tecnoempleo Scraper",
    "description": "[💰 $1.2 / 1K] Scrape IT & tech jobs from Tecnoempleo, Spain's largest technology job board. Get title, company, province, remote/hybrid, tech stack, contract type, salary & posted date. Filter by keyword, location, category & more.",
    "version": "1.0",
    "x-build-id": "EU4dF3n7hdoRTSnXz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~tecnoempleo-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-tecnoempleo-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/solidcode~tecnoempleo-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-tecnoempleo-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/solidcode~tecnoempleo-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-tecnoempleo-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": {
          "query": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Job title, technology, or keyword to search for (e.g. 'python', 'sap', 'kubernetes', 'devops'). You can combine terms with OR / AND / AND NOT and wrap exact phrases in \"quotes\". Leave blank to collect all jobs matching the filters below."
          },
          "provinces": {
            "title": "Provinces",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include jobs in these Spanish provinces. Leave empty to include the whole country.",
            "items": {
              "type": "string",
              "enum": [
                "231",
                "232",
                "233",
                "234",
                "235",
                "236",
                "237",
                "238",
                "239",
                "240",
                "241",
                "242",
                "243",
                "244",
                "245",
                "246",
                "247",
                "248",
                "249",
                "250",
                "251",
                "252",
                "253",
                "254",
                "255",
                "256",
                "257",
                "258",
                "259",
                "260",
                "261",
                "262",
                "263",
                "264",
                "265",
                "266",
                "267",
                "268",
                "269",
                "270",
                "271",
                "272",
                "273",
                "274",
                "275",
                "276",
                "277",
                "278",
                "279",
                "280",
                "281",
                "282"
              ],
              "enumTitles": [
                "A Coruña",
                "Álava",
                "Albacete",
                "Alicante",
                "Almería",
                "Asturias",
                "Ávila",
                "Badajoz",
                "Baleares",
                "Barcelona",
                "Bizkaia",
                "Burgos",
                "Cáceres",
                "Cádiz",
                "Cantabria",
                "Castellón",
                "Ceuta",
                "Ciudad Real",
                "Córdoba",
                "Cuenca",
                "Gipuzkoa",
                "Girona",
                "Granada",
                "Guadalajara",
                "Huelva",
                "Huesca",
                "Jaén",
                "La Rioja",
                "Las Palmas",
                "León",
                "Lugo",
                "Lleida",
                "Madrid",
                "Málaga",
                "Melilla",
                "Murcia",
                "Navarra",
                "Ourense",
                "Palencia",
                "Pontevedra",
                "Salamanca",
                "Sta. Cruz de Tenerife",
                "Segovia",
                "Sevilla",
                "Soria",
                "Tarragona",
                "Teruel",
                "Toledo",
                "Valencia",
                "Valladolid",
                "Zamora",
                "Zaragoza"
              ]
            },
            "default": []
          },
          "workModality": {
            "title": "Work Arrangement",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include jobs with these work arrangements. Leave empty to include any.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "3",
                "2",
                "4"
              ],
              "enumTitles": [
                "100% Remote",
                "Hybrid",
                "On-site",
                "Unspecified"
              ]
            },
            "default": []
          },
          "professionalFunctions": {
            "title": "Job Categories",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include jobs in these role categories (e.g. Developer, DevOps, Cybersecurity, Systems). Leave empty to include all categories.",
            "items": {
              "type": "string",
              "enum": [
                "12",
                "37",
                "32",
                "27",
                "7",
                "34",
                "40",
                "1",
                "53",
                "51",
                "25",
                "20",
                "10",
                "28",
                "43",
                "39",
                "41",
                "44",
                "8",
                "19",
                "45",
                "46",
                "30",
                "2",
                "3",
                "4",
                "9",
                "42",
                "21",
                "29",
                "15",
                "48",
                "24",
                "18",
                "47",
                "49",
                "50",
                "52"
              ],
              "enumTitles": [
                "Programmer / Developer",
                "Analyst-Programmer",
                "Analyst",
                "Web Developer",
                "Mobile Developer",
                "DevOps",
                "Cybersecurity",
                "Big Data",
                "AI / Machine Learning",
                "IT Architect",
                "Project Manager",
                "Team Lead",
                "Product Manager",
                "Consultant",
                "Systems Technician",
                "Networks",
                "Database / DBA",
                "Tester / QA",
                "Technical Support",
                "Helpdesk",
                "Administrator",
                "Operator",
                "Auditor",
                "Software Technician",
                "Hardware Technician",
                "Electronics",
                "Quality Systems",
                "Maintenance Technician",
                "Trainer",
                "Sales",
                "Marketing",
                "SEO / Web Positioning",
                "Graphic Design",
                "R&D",
                "Recruiter",
                "Management Technician",
                "Administrative",
                "Engineers / Industry"
              ]
            },
            "default": []
          },
          "contractType": {
            "title": "Contract Type",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include jobs with these employment types. Leave empty to include any.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "3",
                "5",
                "2",
                "4",
                "6"
              ],
              "enumTitles": [
                "Permanent (Indefinido)",
                "Temporary (Temporal)",
                "Internship (Prácticas)",
                "Work/Service (Obra/servicio)",
                "Freelance / Self-employed",
                "To be determined"
              ]
            },
            "default": []
          },
          "workday": {
            "title": "Work Schedule",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include jobs with these work schedules. Leave empty to include any.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3",
                "4",
                "5",
                "6"
              ],
              "enumTitles": [
                "Full-time (Completa)",
                "Half-day (Media jornada)",
                "By the hour",
                "Mornings",
                "Afternoons",
                "Rotating shift"
              ]
            },
            "default": []
          },
          "experience": {
            "title": "Maximum Experience Required",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8"
            ],
            "type": "string",
            "description": "Only include jobs requiring at most this experience level. Leave on 'Any' to include all.",
            "default": ""
          },
          "postedSince": {
            "title": "Date Posted",
            "enum": [
              "",
              "today",
              "24h"
            ],
            "type": "string",
            "description": "Only include jobs posted within the last 24 hours. Great for daily scheduled runs that pick up just the newest postings. Leave on 'Any time' to include all jobs. (The site offers a single recency window, so 'Today' and 'Last 24 hours' behave the same.)",
            "default": ""
          },
          "startUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Advanced: paste tecnoempleo.com search URLs built in the site's own search page (e.g. https://www.tecnoempleo.com/ofertas-trabajo/?te=python&pr=,263,). Use this when you've already applied filters in the site UI. When provided, the keyword and filters above are ignored for these URLs. If a URL has no recognizable filters it falls back to a broad scan rather than failing.",
            "items": {
              "type": "string"
            }
          },
          "includeDetails": {
            "title": "Fetch Full Job Details",
            "type": "boolean",
            "description": "Off by default for fast results. Each job card already includes the title, company, location, work arrangement, technologies, salary (when shown), and posted date. Turn this on to also fetch the full job description, minimum education, and the external apply link from each job's own page — this is slower, because every job needs an extra page visit, so expect longer runs on large searches.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum Results",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on the total number of jobs returned across all searches and URLs. Default 100 — increase for bigger runs, or set to 0 for no cap (the site tops out at roughly 2,700 active listings, and each result is billed at the per-result rate). The actor stops requesting new pages once this number is hit but keeps the full last page even if it slightly overshoots.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}