{
  "openapi": "3.0.1",
  "info": {
    "title": "Sólides Vagas Brazil Jobs Scraper",
    "description": "Brazil job postings from Sólides Vagas (vagas.solides.com.br): title, employer, city/state, salary in BRL when shown, CLT/PJ/internship, on-site/remote/hybrid, seniority, area, posted date. Keyword and location filters. No personal data. Unofficial; not affiliated with Sólides.",
    "version": "0.1",
    "x-build-id": "BgJnTpm4n8V9N0rTE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jpopendata~brazil-jobs-solides/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jpopendata-brazil-jobs-solides",
        "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/jpopendata~brazil-jobs-solides/runs": {
      "post": {
        "operationId": "runs-sync-jpopendata-brazil-jobs-solides",
        "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/jpopendata~brazil-jobs-solides/run-sync": {
      "post": {
        "operationId": "run-sync-jpopendata-brazil-jobs-solides",
        "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": {
          "keywords": {
            "title": "Keywords (job titles)",
            "type": "array",
            "description": "Job titles or words to search for, one per line, in Portuguese, e.g. \"vendedor\", \"auxiliar administrativo\", \"analista de dados\", \"enfermeiro\". Each keyword is searched separately and every record carries its keyword. Use \"*\" for all jobs. Up to 50 per run. If empty, the Quick start keywords are used.",
            "default": [
              "vendedor",
              "auxiliar administrativo"
            ],
            "items": {
              "type": "string"
            }
          },
          "locations": {
            "title": "Locations (state or city)",
            "type": "array",
            "description": "Optional. Brazilian states or cities, one per line: a state code (\"SP\", \"MG\"), a state name (\"Minas Gerais\") or a city as \"City - UF\" (\"Campinas - SP\", \"Rio de Janeiro - RJ\"). Accents are optional. A bare name that is both a state and a city (\"São Paulo\") means the state. Leave empty for all of Brazil.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "workplaceType": {
            "title": "Workplace type",
            "type": "string",
            "description": "any (default), presencial (on-site), remoto (remote) or hibrido (hybrid). English words work too.",
            "default": "any"
          },
          "contractTypes": {
            "title": "Contract types",
            "type": "array",
            "description": "Optional, any of: clt (permanent employee), pj (contractor), estagio (internship), aprendiz (apprentice), temporario (temporary), autonomo (self-employed), freelancer, cooperado. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "seniorities": {
            "title": "Seniority levels",
            "type": "array",
            "description": "Optional, any of: estagio (intern), junior, pleno (mid-level), senior, especialista (specialist), principal. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "occupationArea": {
            "title": "Occupation area",
            "type": "string",
            "description": "Optional, one of the site's areas: administrativo, agronegocio, comercial, compras, comunicacao, design, educacao, engenharia, financeiro, juridico, logistica, marketing, primeiro-emprego, producao, recursos-humanos, saude, tecnologia, turismo. English names work too (sales, finance, technology, health, HR). Leave empty for all areas.",
            "default": ""
          },
          "maxItemsPerKeyword": {
            "title": "Max jobs per keyword",
            "type": "integer",
            "description": "Job records kept per keyword (1..5000; values outside are clamped). One request returns one page of 14 jobs, so 140 jobs need 10 requests per keyword.",
            "default": 14
          },
          "maxApiRequests": {
            "title": "Max requests (whole run)",
            "type": "integer",
            "description": "Hard budget of page requests to vagas.solides.com.br for the whole run (1..500; clamped), shared fairly between keywords. Requests are strictly serial with at least 1.5 s spacing. If the budget runs out, the run still SUCCEEDS with the jobs found so far and complete=false in RUN_SUMMARY (key-value store).",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. vagas.solides.com.br answers Apify datacenter IPs directly (tested 2026-10-04), so no proxy is used by default. If you set one (e.g. RESIDENTIAL, country BR), the run keeps a single sticky session (one IP) — never rotation.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}