{
  "openapi": "3.0.1",
  "info": {
    "title": "InfoJobs Brasil Scraper - Jobs, Salaries, Vagas & Empregos BR",
    "description": "Scrape InfoJobs Brasil job postings and vagas de emprego across every Brazilian state. Get title, company, salary range (BRL), CLT/PJ contract, work model (remoto, hibrido, presencial), skills, benefits, education, seniority, dates and full description. Export JSON, CSV, Excel, XML.",
    "version": "0.1",
    "x-build-id": "98L39xcT3kAPSPKPM"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapers_lat~infojobs-br-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapers_lat-infojobs-br-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/scrapers_lat~infojobs-br-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapers_lat-infojobs-br-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/scrapers_lat~infojobs-br-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapers_lat-infojobs-br-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": {
          "maxJobs": {
            "title": "Max Jobs",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of job listings to collect. Optional."
          },
          "withDetails": {
            "title": "Fetch job details",
            "type": "boolean",
            "description": "When enabled, the actor opens each job page to add the full description, contract type, posted date, and structured salary (min, max, currency). This is slower and makes one request per job.",
            "default": true
          },
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Job search keyword, for example desenvolvedor, vendedor, enfermeiro. Ignored when a Search URL is provided."
          },
          "searchTerms": {
            "title": "Keywords (multiple)",
            "type": "array",
            "description": "Optional list of keywords to search, for example [\"desenvolvedor\", \"analista\"]. Each keyword is searched separately and results are merged and de-duplicated. Combined with Location.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or state to filter by, for example sao-paulo, rio-de-janeiro. Optional. Ignored when a Search URL is provided."
          },
          "startUrl": {
            "title": "Search URL",
            "type": "string",
            "description": "An InfoJobs Brasil search or listing URL, for example https://www.infojobs.com.br/empregos.aspx?palabra=desenvolvedor. Apply any filters on the site first and paste the resulting URL. When set, it overrides Keyword and Location."
          },
          "startUrls": {
            "title": "Search URLs (multiple)",
            "type": "array",
            "description": "Optional list of InfoJobs Brasil search or listing URLs. Each is crawled and results are merged and de-duplicated. Apply filters on the site first and paste the resulting URLs.",
            "items": {
              "type": "string"
            }
          },
          "maxPages": {
            "title": "Max pages per search",
            "minimum": 1,
            "type": "integer",
            "description": "Optional. Maximum number of result pages to follow per search. Leave empty to follow all pages up to the job limit."
          },
          "failOnNoResults": {
            "title": "Fail run when no results",
            "type": "boolean",
            "description": "Optional. When enabled, the run fails (instead of finishing empty) if a temporary block prevented any listings from loading. You are never charged when no jobs are returned.",
            "default": false
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Optional. When enabled, keep only vacancies whose work model signals remote / home-office work.",
            "default": false
          },
          "withAiJdSummary": {
            "title": "AI job summary in English (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Writes a concise English candidate-facing summary of each Portuguese job posting. Requires a paid Apify plan. Billed per enriched record.",
            "default": false
          },
          "withAiSkills": {
            "title": "AI skills & requirements (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Extracts structured skills, tools, seniority and required languages from the posting. Requires a paid Apify plan. Billed per enriched record.",
            "default": false
          },
          "withAiTranslate": {
            "title": "AI translate to English (paid add-on)",
            "type": "boolean",
            "description": "Optional paid AI add-on, off by default. Translates the job title and description from Portuguese to English. Requires a paid Apify plan. Billed per enriched record.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}