{
  "openapi": "3.0.1",
  "info": {
    "title": "Google Jobs Scraper - Latin America",
    "version": "0.1",
    "x-build-id": "TkVc2Ql9ndHglQTMt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/jgapis~google-jobs-latam-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-jgapis-google-jobs-latam-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/jgapis~google-jobs-latam-scraper/runs": {
      "post": {
        "operationId": "runs-sync-jgapis-google-jobs-latam-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/jgapis~google-jobs-latam-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-jgapis-google-jobs-latam-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",
        "required": [
          "queries"
        ],
        "properties": {
          "queries": {
            "title": "Search queries",
            "type": "array",
            "description": "Job titles or keywords, in Spanish or Portuguese (e.g. \"desarrollador python\", \"contador\", \"vendedor\", \"desenvolvedor\"). Each query is searched in every selected country/location.",
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "ISO country codes or presets. Brazil is searched in Portuguese automatically, the rest in Latin American Spanish.",
            "items": {
              "type": "string",
              "enum": [
                "LATAM_ALL",
                "LATAM_CORE",
                "SOUTH_AMERICA",
                "CENTRAL_AMERICA_CARIBBEAN",
                "ANDEAN",
                "SOUTHERN_CONE",
                "AR",
                "BO",
                "BR",
                "CL",
                "CO",
                "CR",
                "CU",
                "DO",
                "EC",
                "SV",
                "GT",
                "HN",
                "MX",
                "NI",
                "PA",
                "PY",
                "PE",
                "PR",
                "UY",
                "VE"
              ],
              "enumTitles": [
                "All Latin America (20 countries)",
                "LatAm core: CO, MX, BR, AR, CL, PE",
                "South America",
                "Central America & Caribbean",
                "Andean: BO, CO, EC, PE, VE",
                "Southern Cone: AR, CL, PY, UY",
                "Argentina (AR)",
                "Bolivia (BO)",
                "Brazil (BR)",
                "Chile (CL)",
                "Colombia (CO)",
                "Costa Rica (CR)",
                "Cuba (CU)",
                "Dominican Republic (DO)",
                "Ecuador (EC)",
                "El Salvador (SV)",
                "Guatemala (GT)",
                "Honduras (HN)",
                "Mexico (MX)",
                "Nicaragua (NI)",
                "Panama (PA)",
                "Paraguay (PY)",
                "Peru (PE)",
                "Puerto Rico (PR)",
                "Uruguay (UY)",
                "Venezuela (VE)"
              ]
            },
            "default": [
              "CO"
            ]
          },
          "locations": {
            "title": "Cities / regions (optional)",
            "type": "array",
            "description": "Optional cities or regions, e.g. \"Bogotá\", \"Medellín\". Each location replaces the country name in the search, so list cities of the selected country (use one country when you add cities). Empty = whole country.",
            "items": {
              "type": "string"
            }
          },
          "language": {
            "title": "Language",
            "enum": [
              "auto",
              "es-419",
              "es",
              "pt-BR",
              "en"
            ],
            "type": "string",
            "description": "Interface language sent to Google. Auto is recommended.",
            "default": "auto"
          },
          "maxJobsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 150,
            "type": "integer",
            "description": "Maximum jobs saved per query × location × country. Google shows ~10 jobs per results page, so the Actor runs extra related searches (e.g. \"... remoto\", \"... junior\") and de-duplicates until this number is reached or results run out.",
            "default": 30
          },
          "maxPagesPerSearch": {
            "title": "Max result pages per search",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "Upper bound of Google result pages (related searches) fetched per query × location × country.",
            "default": 8
          },
          "maxTotalJobs": {
            "title": "Max total jobs (0 = no limit)",
            "minimum": 0,
            "type": "integer",
            "description": "Stop the whole run after this many jobs.",
            "default": 0
          },
          "datePosted": {
            "title": "Date posted",
            "enum": [
              "ANY",
              "TODAY",
              "3DAYS",
              "WEEK",
              "MONTH"
            ],
            "type": "string",
            "description": "Keep only jobs posted within this period (based on Google's \"hace X días\" label; jobs without a date are dropped when a filter is set).",
            "default": "ANY"
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Keep only these employment types (empty = all).",
            "items": {
              "type": "string",
              "enum": [
                "FULL_TIME",
                "PART_TIME",
                "CONTRACTOR",
                "TEMPORARY",
                "INTERN"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contractor",
                "Temporary",
                "Internship"
              ]
            }
          },
          "remoteOnly": {
            "title": "Remote jobs only",
            "type": "boolean",
            "description": "Adds \"remoto\" to searches and keeps only jobs marked as remote / work from home.",
            "default": false
          },
          "onlyWithSalary": {
            "title": "Only jobs with salary",
            "type": "boolean",
            "description": "Keep only jobs where Google shows a salary.",
            "default": false
          },
          "includeDescription": {
            "title": "Include full description",
            "type": "boolean",
            "description": "Include the full job description and highlights (requirements, responsibilities).",
            "default": true
          },
          "resolveApplyLinks": {
            "title": "Resolve apply links",
            "type": "boolean",
            "description": "Turn Google's redirect links into the real portal/employer URLs (LinkedIn, Computrabajo, Indeed, Gupy...).",
            "default": true
          },
          "monitorMode": {
            "title": "Monitor mode (only new jobs)",
            "type": "boolean",
            "description": "Remember jobs from previous runs (in a named key-value store) and output only jobs not seen before. Ideal for scheduled daily runs.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Name for this monitor. Use different keys to keep independent histories for different schedules.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy GOOGLE_SERP group is required for reliable results (Google serves JavaScript-only pages to normal IPs). Included in all Apify plans.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "GOOGLE_SERP"
              ]
            }
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel searches.",
            "default": 5
          },
          "maxRetries": {
            "title": "Max retries per page",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Retries with a fresh proxy session when a page times out or comes back invalid.",
            "default": 4
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}