{
  "openapi": "3.0.1",
  "info": {
    "title": "Indeed Remote Jobs Scraper",
    "description": "Scrape Indeed remote job listings posted in the last 3 days, with job title, company, salary ranges, location, job type, posted timestamp, snippet, and apply URL. Search multiple keywords and countries, require disclosed salary, and sort newest first. Pay per saved job; no login required.",
    "version": "0.1",
    "x-build-id": "Lswrm0P0bTTgap9Bc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/schnellscrapers~indeed-remote-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-schnellscrapers-indeed-remote-jobs",
        "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/schnellscrapers~indeed-remote-jobs/runs": {
      "post": {
        "operationId": "runs-sync-schnellscrapers-indeed-remote-jobs",
        "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/schnellscrapers~indeed-remote-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-schnellscrapers-indeed-remote-jobs",
        "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": {
          "searches": {
            "title": "Remote job searches",
            "type": "array",
            "description": "Run one or more remote Indeed searches. Each entry accepts `query`, `location`, `country`, `postedWithinDays` (1–14), `jobType`, `radius`, and `sort`. Remote filtering and newest-first ordering are applied automatically."
          },
          "startUrls": {
            "title": "Indeed search URLs",
            "type": "array",
            "description": "Optionally paste fully formed Indeed search URLs. The actor keeps the keyword and location, then applies the remote and freshness filters for this feed.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "position": {
            "title": "Search keyword",
            "type": "string",
            "description": "Single-search shortcut for a job title, skill, or company (for example, `data analyst`). Used only when Searches and Indeed search URLs are empty."
          },
          "query": {
            "title": "Query",
            "type": "string",
            "description": "Alias for Search keyword. Enter a role, skill, or employer name when running one remote search."
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City, state, ZIP code, or `Remote`. Leave blank for a country-wide remote search."
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter Indeed country code such as `us`, `ca`, `uk`, `de`, or `au`.",
            "default": "us"
          },
          "postedWithinDays": {
            "title": "Freshness window",
            "minimum": 1,
            "maximum": 14,
            "type": "integer",
            "description": "Keep jobs posted within this many days. Defaults to 3 so scheduled runs produce a fresh lead feed; use 1 for daily alerts.",
            "default": 3
          },
          "fromDays": {
            "title": "Freshness alias",
            "minimum": 1,
            "maximum": 14,
            "type": "integer",
            "description": "Compatibility alias for Freshness window. Use `7` for a one-week remote-job feed."
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "fulltime",
              "parttime",
              "contract",
              "temporary",
              "internship",
              "permanent"
            ],
            "type": "string",
            "description": "Restrict the single-search shortcut to one employment type: fulltime, parttime, contract, temporary, internship, or permanent."
          },
          "radius": {
            "title": "Search radius",
            "minimum": 0,
            "type": "integer",
            "description": "Distance from Location in miles for US searches or the local unit used by other Indeed domains. Remote jobs still use Indeed's location matching."
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "date",
              "relevance"
            ],
            "type": "string",
            "description": "Use `date` for newest-first hiring alerts or `relevance` for Indeed's ranking. The default is `date`.",
            "default": "date"
          },
          "includeHybrid": {
            "title": "Include hybrid jobs",
            "type": "boolean",
            "description": "Include hybrid roles alongside fully remote roles. Leave off for a strict remote-only feed.",
            "default": false
          },
          "requireSalary": {
            "title": "Require salary",
            "type": "boolean",
            "description": "Keep only listings where Indeed provides a numeric salary minimum or maximum. Jobs without disclosed pay are skipped before dataset billing.",
            "default": false
          },
          "maxItems": {
            "title": "Maximum jobs",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Hard cap on saved remote job records across all searches. Default 100; use a low value such as 20 for a quick test.",
            "default": 100
          },
          "maxItemsPerSearch": {
            "title": "Jobs per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Compatibility alias used when Max jobs is not set. Limits records across the run when only one search is supplied."
          },
          "maxPagesPerSearch": {
            "title": "Pages per search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum Indeed result pages to load per search. Each page contains about 15 cards; the default 5 pages bounds proxy use.",
            "default": 5
          },
          "includeFullDescription": {
            "title": "Full job description",
            "type": "boolean",
            "description": "Visit each matching job detail page and best-effort add plain-text and HTML descriptions. A challenged detail page leaves the job record intact with null description fields; this costs more proxy bandwidth and is off by default.",
            "default": false
          },
          "parseCompanyDetails": {
            "title": "Company Indeed URL",
            "type": "boolean",
            "description": "Best-effort backfill missing company profile URLs from detail pages. A challenged detail page leaves the existing record unchanged and this also enables the detail-page request path for the run.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "**Residential Apify Proxy is required for reliable Indeed access.** Keep the default RESIDENTIAL group unless you have an approved proxy setup.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          },
          "dryRun": {
            "title": "Dry run",
            "type": "boolean",
            "description": "Parse and filter matching jobs without writing dataset records. Logs show the accepted count; use this to check a search before a billed run.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}