{
  "openapi": "3.0.1",
  "info": {
    "title": "Gupy Jobs Scraper: Vagas de Emprego Brasil, PcD e Remoto",
    "description": "Gupy jobs scraper for Brazil vagas de emprego. Search many keywords, states and companies in one run, filter PcD, remote and feedback employers, hide banco de talentos, and get only new jobs on a schedule. Export JSON, CSV or Excel to Sheets, Make or Zapier. Optional full details. No login.",
    "version": "0.1",
    "x-build-id": "gRpYGKygwVf0Gbcsp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~gupy-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-gupy-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~gupy-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-gupy-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~gupy-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-gupy-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": {
          "searchTerms": {
            "title": "Job titles or keywords",
            "type": "array",
            "description": "One search per line, for example desenvolvedor, enfermeiro or vendedor. Several keywords run in one go and a job that matches more than one is saved once. Leave empty to list every open job.",
            "default": [
              "desenvolvedor"
            ],
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States",
            "type": "array",
            "description": "Only jobs located in these Brazilian states. Remote jobs have no state, so use the Work model field to find them.",
            "items": {
              "type": "string",
              "enum": [
                "Acre",
                "Alagoas",
                "Amapá",
                "Amazonas",
                "Bahia",
                "Ceará",
                "Distrito Federal",
                "Espírito Santo",
                "Goiás",
                "Maranhão",
                "Mato Grosso",
                "Mato Grosso do Sul",
                "Minas Gerais",
                "Pará",
                "Paraíba",
                "Paraná",
                "Pernambuco",
                "Piauí",
                "Rio de Janeiro",
                "Rio Grande do Norte",
                "Rio Grande do Sul",
                "Rondônia",
                "Roraima",
                "Santa Catarina",
                "São Paulo",
                "Sergipe",
                "Tocantins"
              ],
              "enumTitles": [
                "Acre (AC)",
                "Alagoas (AL)",
                "Amapá (AP)",
                "Amazonas (AM)",
                "Bahia (BA)",
                "Ceará (CE)",
                "Distrito Federal (DF)",
                "Espírito Santo (ES)",
                "Goiás (GO)",
                "Maranhão (MA)",
                "Mato Grosso (MT)",
                "Mato Grosso do Sul (MS)",
                "Minas Gerais (MG)",
                "Pará (PA)",
                "Paraíba (PB)",
                "Paraná (PR)",
                "Pernambuco (PE)",
                "Piauí (PI)",
                "Rio de Janeiro (RJ)",
                "Rio Grande do Norte (RN)",
                "Rio Grande do Sul (RS)",
                "Rondônia (RO)",
                "Roraima (RR)",
                "Santa Catarina (SC)",
                "São Paulo (SP)",
                "Sergipe (SE)",
                "Tocantins (TO)"
              ]
            },
            "default": []
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "City names written as Gupy spells them, for example Campinas or Belo Horizonte. A job in any of the listed cities matches.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Work model",
            "type": "array",
            "description": "Remote, hybrid or on site. Pick several to match any of them.",
            "items": {
              "type": "string",
              "enum": [
                "remote",
                "hybrid",
                "on-site"
              ],
              "enumTitles": [
                "Remoto (remote)",
                "Híbrido (hybrid)",
                "Presencial (on site)"
              ]
            },
            "default": []
          },
          "jobTypes": {
            "title": "Contract type",
            "type": "array",
            "description": "Hiring model such as CLT, PJ, internship or apprentice. Pick several to match any of them. Leave empty for all contract types.",
            "items": {
              "type": "string",
              "enum": [
                "vacancy_type_effective",
                "vacancy_legal_entity",
                "vacancy_type_internship",
                "vacancy_type_apprentice",
                "vacancy_type_trainee",
                "vacancy_type_temporary",
                "vacancy_type_autonomous",
                "vacancy_type_freelancer",
                "vacancy_type_associate",
                "vacancy_type_outsource",
                "vacancy_type_intermittent",
                "vacancy_type_parter",
                "vacancy_type_summer",
                "vacancy_type_volunteer",
                "vacancy_type_talent_pool"
              ],
              "enumTitles": [
                "Efetivo (CLT, permanent)",
                "Pessoa Jurídica (PJ, contractor)",
                "Estágio (internship)",
                "Aprendiz (apprentice)",
                "Trainee",
                "Temporário (temporary)",
                "Autônomo (self-employed)",
                "Freelancer",
                "Associado (associate)",
                "Terceirizado (outsourced)",
                "Intermitente (intermittent)",
                "Parceiro (partner)",
                "Estágio de verão (summer)",
                "Voluntário (volunteer)",
                "Banco de talentos (talent pool)"
              ]
            },
            "default": []
          },
          "excludeTalentPool": {
            "title": "Hide talent-pool listings",
            "type": "boolean",
            "description": "Gupy mixes thousands of evergreen \"banco de talentos\" pages (\"Faça parte da nossa equipe\") in with real openings. On by default so you only pay for real vacancies. Turn off to include them, or pick the talent-pool contract type above.",
            "default": true
          },
          "onlyOpenToPwd": {
            "title": "Open to people with disabilities (PcD)",
            "type": "boolean",
            "description": "Only jobs the employer opened to candidates with disabilities. Applied by Gupy itself, so every row you get matches.",
            "default": false
          },
          "onlyFeedbackCompanies": {
            "title": "Only companies that give feedback",
            "type": "boolean",
            "description": "Only employers that carry Gupy's \"Empresa que dá feedback\" badge, meaning they answered at least 90 percent of candidates in the last three months. Useful when you want employers that actually reply.",
            "default": false
          },
          "companies": {
            "title": "Company names",
            "type": "array",
            "description": "Only jobs from these employers. Write the company name exactly as it appears on its Gupy career page, for example Grupo Boticário. Each company is searched separately.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postedWithin": {
            "title": "Posted within",
            "enum": [
              "any",
              "24h",
              "3d",
              "7d",
              "14d",
              "30d"
            ],
            "type": "string",
            "description": "Only jobs published inside this time window. Combined with newest first ordering, the run stops as soon as it reaches older jobs, so it is fast and cheap for daily checks.",
            "default": "any"
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest"
            ],
            "type": "string",
            "description": "Newest first is the default and the only order used when a Posted within window is set.",
            "default": "newest"
          },
          "includeDetails": {
            "title": "Add full job details",
            "type": "boolean",
            "description": "Opens each job page to add responsibilities, requirements, benefits, the selection steps, full workplace address with postal code, the clean company name, company website and social links. Slower, one extra page per job.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "The most jobs saved in the whole run. Large exports are split automatically by state and contract type, so they can reach past the 10,000 rows a single Gupy search shows. The free plan is limited to 25 per run.",
            "default": 25
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional. Give this search a name to remember it between runs. The next run saves only jobs that were not there last time, which makes it a daily feed of new vacancies. Leave empty for a normal run.",
            "default": ""
          },
          "monitorOnlyNew": {
            "title": "Save only new jobs",
            "type": "boolean",
            "description": "With a monitor name, skip jobs already seen. Switch off to get every job with an isNew flag.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Runs connect directly by default. If Gupy refuses, the Actor switches to a proxy by itself.",
            "default": {
              "useApifyProxy": 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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}