# Indeed Jobs Scraper | Worldwide Job Data (`datascraperes/indeed-jobs-scraper`) Actor

Scrape public Indeed job listings worldwide with keyword, country, location, date, job type, remote status, and Indeed Apply filters.

- **URL**: https://apify.com/datascraperes/indeed-jobs-scraper.md
- **Developed by:** [DataScraperES](https://apify.com/datascraperes) (community)
- **Categories:** Jobs, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / 1,000 indeed offer returneds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

Collect public Indeed job listings by keyword and country, with optional location, date, job-type, remote, and Indeed Apply filters. Each unique offer is returned as a structured Dataset item with available descriptions, compensation, employer details, and application URLs.

### What this Actor does

- Searches one Indeed country site per run with up to 50 keyword phrases.
- Applies optional location, publication-age, job-type, remote-only, and Indeed Apply filters.
- Returns up to 1,000 unique jobs per keyword and up to 50,000 items per run.
- Formats job descriptions as Markdown, HTML, or plain text.
- Optionally extracts public email addresses visible in job descriptions.
- Deduplicates offers across keywords while preserving the search phrase associated with each delivered item.
- Stores run-level counts, limits, failures, and billing reconciliation in the `SUMMARY` record.

### Use cases

- Source public vacancies for recruitment research.
- Compare hiring demand across keywords, locations, and countries.
- Monitor remote, contract, internship, and part-time opportunities.
- Analyze compensation and employer information when published.
- Build job-search alerts with Apify Tasks and Schedules.
- Export listings into spreadsheets, databases, CRMs, or internal dashboards.

### How to use

1. Open the Actor's **Input** tab.
2. Add one or more phrases under **Search keywords**.
3. Select a supported country and, optionally, enter a location.
4. Adjust the result limits and filters.
5. Click **Start**.
6. Open **Dataset** to inspect or export the job listings.

The Actor searches a single country site per run. Create separate runs when you need several countries.

### Input

| Field | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `keywords` | `string[]` | Yes | — | One to 50 job-search phrases. Blank and duplicate phrases are removed. |
| `country` | string | Yes | `"usa"` | Indeed country site, such as `usa`, `uk`, `canada`, `australia`, `germany`, `france`, `india`, `brazil`, `mexico`, or `spain`. |
| `location` | string or `null` | No | `null` | City, region, postal code, or another location understood by Indeed. |
| `distanceMiles` | integer | No | `50` | Search radius from 0 to 500 miles. |
| `maxItemsPerQuery` | integer | No | `25` | Maximum unique jobs per keyword, from 1 to 1,000. |
| `maxTotalItems` | integer | No | `5000` | Global Dataset limit across all keywords, from 1 to 50,000. |
| `offset` | integer | No | `0` | Results to skip per keyword, from 0 to 900. Offset plus `maxItemsPerQuery` cannot exceed 1,000. |
| `datePostedHours` | integer | No | `0` | Only jobs published within this many hours, from 0 to 720. Use `0` for any age. |
| `jobType` | string | No | `"any"` | `any`, `fullTime`, `partTime`, `contract`, or `internship`. |
| `remoteOnly` | boolean | No | `false` | Keep only listings identified as remote. |
| `easyApplyOnly` | boolean | No | `false` | Keep only jobs marked for Indeed Apply. |
| `descriptionFormat` | string | No | `"markdown"` | Return descriptions as `markdown`, `html`, or `plain`. |
| `includeEmails` | boolean | No | `false` | Extract public email addresses found in descriptions. |

This is the exact input used for the complete output example:

```json
{
  "keywords": [
    "software engineer"
  ],
  "country": "usa",
  "distanceMiles": 50,
  "maxItemsPerQuery": 25,
  "maxTotalItems": 5000,
  "offset": 0,
  "datePostedHours": 0,
  "jobType": "any",
  "remoteOnly": false,
  "easyApplyOnly": false,
  "descriptionFormat": "markdown",
  "includeEmails": false,
  "location": null
}
```

### Output

The default Dataset contains one item per unique delivered job. Every successful item includes the search context, job identity, available employer and compensation data, the requested description format, and a retrieval timestamp.

| Field | Description |
| --- | --- |
| `success`, `status`, `source` | Result state and source identifier. |
| `searchKeyword`, `searchCountry`, `searchLocation` | Search context that produced the item. |
| `jobId`, `jobUrl`, `directJobUrl` | Job identity, Indeed listing URL, and direct application URL when available. |
| `title`, `companyName` | Public job title and employer name. |
| `companyUrl`, `companyDirectUrl` | Indeed company page and public company website when available. |
| `location`, `locationDisplay`, `isRemote` | Structured location, displayed location, and remote flag. |
| `jobTypes`, `postedDate` | Published job types and posting date when available. |
| `description`, `emails` | Job description in the selected format and optional public emails. |
| `compensation` | Published salary or compensation structure when available. |
| `companyIndustry`, `companyAddresses`, `companyEmployees`, `companyRevenue` | Available employer metadata. |
| `companyDescription`, `companyLogoUrl` | Available employer description and logo. |
| `scrapedAt` | Timestamp recorded when the item was collected. |

This is the complete Dataset item from a real successful run:

```json
{
  "success": true,
  "status": "success",
  "source": "indeed",
  "searchKeyword": "software engineer",
  "searchCountry": "Usa",
  "searchLocation": null,
  "jobId": "in-463d1019d5b79ae6",
  "jobUrl": "https://www.indeed.com/viewjob?jk=463d1019d5b79ae6",
  "directJobUrl": "https://wonder.wd1.myworkdayjobs.com/WG/job/Spyce/Sr-Software-Engineer--Back-End-_JR101230-1",
  "title": "Sr. Software Engineer (Back End)",
  "companyName": "Wonder",
  "companyUrl": "https://www.indeed.com/cmp/Wonder-c9247c04",
  "companyDirectUrl": "http://www.wonder.com",
  "location": {
    "country": "US",
    "city": "Charlestown",
    "state": "MA"
  },
  "locationDisplay": "Charlestown, MA, US",
  "isRemote": false,
  "jobTypes": [
    "fulltime"
  ],
  "postedDate": "2026-08-19",
  "description": "**About Wonder**\n\nEverything’s on the menu at Wonder. Except compromise.\n\nWonder is the mealtime platform built to feed every craving in one order. With Wonder, you can mix and match hundreds of dishes from 20+ exclusive restaurants in a single order, so everyone gets exactly what they’re craving. Enjoy everything from tacos to Thai with $0 delivery fees, plus dine-in or pick up at a Wonder location near you. Each dish is made to order on-site by our culinary team and served hot.\n\nBehind the scenes, Wonder owns and operates every step of the dining experience, from recipe development to the technology that powers our experience, allowing us to deliver quality, variety, and consistency at scale.\n\n*Join us as we work to make great food more accessible.*\n\n**About Wonder & Wonder Robotics**\n\nEverything’s on the menu at Wonder. Except compromise.\n\nThe Wonder app is the premiere platform to feed every craving, all in one order. Our 25+ award-winning restaurant partners span every cuisine you can think of, from Greek to Thai, and come from the minds of the best chefs in the industry—Bobby Flay, José Andrés, Marcus Samuelsson, and more.\n\nWithin Wonder, the Robotics team is a core pillar of our innovation strategy. We build the automation solutions that help make Wonder’s 'no-compromise' promise possible at scale. Our mission is to use robotics to enable incredible variety and culinary authenticity. By reimagining the kitchen environment, we improve the daily experience of our team members and ensure every customer receives a perfect meal, every time.\n\nThe best in the business are coming to Wonder, working every day to make us the destination for every mealtime moment. Join a team of technology, culinary, and logistics pioneers, backed by top-tier venture capitalists, and help us make great food more accessible.\n\n**About The Opportunity**\n\nWe’re looking for a product-minded Senior Software Engineer to join our backend team to build the brains of our automated restaurants and the foundation upon which our robotic systems rely. In this role, you will help design and implement the expansion of our current systems to accommodate new robotic solutions while maintaining the reliability and performance of our live production restaurants.\n\nYou will work primarily with Elixir and the Phoenix framework to construct real-time distributed systems that serve as critical facilitators between our cloud-based infrastructure, on-site robotic hardware, frontend applications, and the rest of Wonder software. You will partner with cross-functional teams to design and deploy high-impact features, help guide technical discussions, and mentor other engineers.\n\n**The Impact You Will Make**\n\n* Orchestrate the Kitchen: Design and implement solutions that manage complex state across multiple distributed systems and guarantee zero data loss in mission-critical workflows, particularly around order fulfillment, robotic communication and human-machine interaction.\n* Bridge Cloud and Hardware: Design new infrastructure that spans the cloud and on-premise resources, including event-driven architectures, Postgres databases, WebSocket protocols, and containerized applications.\n* Produce High Quality Software: Uphold reliability, advocate for iterative review and testing procedures, manage the release process, and continue to monitor performance.\n* Guide Technical Outcomes: Plan how to build new features by considering product requirements, assessing tradeoffs and collaborating with peers, and specify the tasks needed to complete a project.\n* Improve Processes: bring industry-best practices to the team, automate repetitive tasks, and have a learn-forward attitude.\n* Communicate Effectively: Write thorough and clear specs, fill gaps in documentation, and provide, seek and incorporate feedback.\n\n**What You Bring to the Table**\n\n* Bachelor’s or Master’s degree in Computer Science or a related field.\n* 5+ years of professional software engineering experience building highly concurrent, distributed systems and shipping them to production.\n* Strong system design skills, a product-focused mindset, and a track record of owning features end-to-end.\n* Proficiency in Elixir, including OTP, and the Phoenix framework.\n* Proficiency with PostgreSQL and relational database design.\n* Experience designing, building, and consuming WebSocket events, REST APIs, webhooks, and other message-based systems.\n* Experience designing and deploying infrastructure using Infrastructure as Code. We use Terraform.\n* A pragmatic approach to problem solving and the ability to troubleshoot complex technical obstacles.\n* Excellent communication and interpersonal skills, including the ability to facilitate technical discussions with product, design, and operations partners.\n\nThis role requires a minimum of 3 days a week in the office, with additional days as needed based on project demands.\n\nThis role is based in our Boston office in Charlestown, MA.\n\nBoston: $176,000 - $183,500\n\nWonder uses geographic-specific salary structures, which means the salary offered may vary depending on where the job is located. The final salary offer will take into account various factors, such as the candidate's skills, education, training, credentials, and experience.\n\n**Benefits**\n\nThe benefits applicable to this role include a competitive compensation package with equity and a 401(k). We also offer a choice of medical, dental, and vision plans, company paid short and long term disability coverage, paid time off including flexible time off for exempt employees, paid vacation for non-exempt employees, and paid sick leave in compliance with applicable law in addition to paid parental leave, discounted meals and exclusive perks across the Wonder family of brands.\n\nEligibility, effective dates, and available plan options vary by employment classification and location. To learn more about benefits for this role, visit our Careers page here.\n\n**A Final Note**\n\nAt Wonder, we build the best teams by hiring with an objective lens — evaluating people for their potential while championing diversity, equity, and inclusion. We do not discriminate based on race, color, religion, gender identity or expression, sexual orientation, national origin, age, military service eligibility, veteran status, marital status, disability, or any other protected class. As part of our commitment to fair and compliant hiring practices, Wonder participates in the federal government's E-Verify program to confirm employment eligibility. If you need an accommodation during the interview process, please let your recruiter know.\n\n**We look forward to hearing from you! We'll contact you via email or text to schedule interviews and share information about your candidacy**.",
  "emails": null,
  "compensation": {
    "interval": "yearly",
    "min_amount": 176000,
    "max_amount": 183500,
    "currency": "USD"
  },
  "companyIndustry": null,
  "companyAddresses": "New York, NY",
  "companyEmployees": "501 to 1,000",
  "companyRevenue": "Decline to state",
  "companyDescription": "Join us in pioneering a new category of dining called “Fast-Fine”, and revolutionizing the way people eat.",
  "companyLogoUrl": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/91b59a2dc80c0d621e082997108f4aa1",
  "scrapedAt": "2026-08-19T19:43:38.941479Z"
}
```

Run-level information is stored separately in the default Key-Value Store under `SUMMARY`, including query counts, failures, retries, duplicate totals, output-limit state, charge-limit state, and accepted charge events.

### Pricing

This Actor uses pay-per-event pricing:

| Event | Price | Charged when |
| --- | ---: | --- |
| `indeed-offer` | USD 0.001 per offer (USD 1 per 1,000) | One unique public Indeed job offer is written to the default Dataset. |

Duplicate offers, failed searches, and results that are not written do not trigger this event. If the maximum total charge is reached, the Actor stops emitting additional billable items. The current Pricing tab on the Actor page is authoritative.

### API and integrations

Run the Actor through Apify Console, API, CLI, Tasks, Schedules, or webhooks. Dataset results can be exported as JSON, JSONL, CSV, Excel, XML, or RSS.

API request:

```bash
curl -X POST "https://api.apify.com/v2/acts/datascraperes~indeed-jobs-scraper/runs?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["software engineer"],"country":"usa","distanceMiles":50,"maxItemsPerQuery":25,"maxTotalItems":5000,"offset":0,"datePostedHours":0,"jobType":"any","remoteOnly":false,"easyApplyOnly":false,"descriptionFormat":"markdown","includeEmails":false,"location":null}'
```

JavaScript client:

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('datascraperes/indeed-jobs-scraper').call({
  "keywords": [
    "software engineer"
  ],
  "country": "usa",
  "distanceMiles": 50,
  "maxItemsPerQuery": 25,
  "maxTotalItems": 5000,
  "offset": 0,
  "datePostedHours": 0,
  "jobType": "any",
  "remoteOnly": false,
  "easyApplyOnly": false,
  "descriptionFormat": "markdown",
  "includeEmails": false,
  "location": null
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

Python client:

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("datascraperes/indeed-jobs-scraper").call(
    run_input={
  "keywords": [
    "software engineer"
  ],
  "country": "usa",
  "distanceMiles": 50,
  "maxItemsPerQuery": 25,
  "maxTotalItems": 5000,
  "offset": 0,
  "datePostedHours": 0,
  "jobType": "any",
  "remoteOnly": False,
  "easyApplyOnly": False,
  "descriptionFormat": "markdown",
  "includeEmails": False,
  "location": None
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)
```

### Related Actors

| Actor | Best for |
| --- | --- |
| [Glassdoor Jobs Scraper | Global Job Listings](https://apify.com/datascraperes/glassdoor-jobs-scraper) | Finding global Glassdoor listings with descriptions, compensation, employer data, and application links. |
| [LinkedIn Jobs Scraper – No Login](https://apify.com/datascraperes/linkedin-jobs-scraper) | Adding public LinkedIn job listings with workplace, experience, applicant, and Easy Apply filters. |
| [LinkedIn Company Profile Scraper - No Login](https://apify.com/datascraperes/linkedin-company) | Enriching employers found in job results with public company profiles and organization details. |

### Limits and data quality

- A run accepts up to 50 unique keywords and searches one country site.
- `maxItemsPerQuery` is a ceiling, not a guarantee. Source availability and filters can reduce the number returned.
- The global output limit is 50,000 items, but the user's maximum total charge can stop output earlier.
- Jobs are deduplicated across keywords using stable public identifiers or URLs.
- A run can be `partial` when some keyword searches succeed and others fail; successful Dataset items remain available.
- Listings can change or disappear, and optional salary, description, employer, email, date, location, or application fields can be `null` or empty.
- Remote-only and Indeed Apply filters depend on the public labels available for each listing.
- The Actor does not access private accounts, applications, or information behind a login.

### Frequently asked questions

#### Can I search several countries in one run?

No. Use one country per run and create separate Tasks or runs for additional countries.

#### Why did I receive fewer jobs than requested?

The requested values are maximums. The source may expose fewer matching public listings, and filters, duplicates, output limits, or a maximum charge can reduce the total.

#### Are duplicate jobs charged more than once?

No. Only unique offers actually written to the Dataset trigger `indeed-offer`.

#### Can I receive plain text instead of Markdown?

Yes. Set `descriptionFormat` to `plain`; use `html` to preserve HTML instead.

#### Does the Actor always return salaries and direct application links?

No. Those fields are returned only when published and available for the individual listing.

#### Can I schedule recurring searches?

Yes. Save the input as an Apify Task and connect it to an Apify Schedule.

### Responsible use

Use the Actor only for lawful processing of public job information. Follow applicable laws, privacy requirements, Indeed's terms, and the rights of employers and applicants. Do not use results for spam, harassment, discrimination, or unlawful automated decisions.

### Support

If a run fails or returns unexpected data, open an issue from the Actor page. Include the run URL, non-sensitive input, and expected behavior, but never publish API tokens or other secrets.

# Actor input Schema

## `keywords` (type: `array`):

One job search phrase per item. Duplicate phrases are removed before the run.

## `country` (type: `string`):

Indeed country site for this run. Examples: usa, uk, canada, australia, germany, france, india, japan, brazil, mexico, or any country documented in the README.

## `location` (type: `string`):

Optional city, region, postal code, or free-text location understood by Indeed. Leave empty to search the selected country site without a location constraint.

## `distanceMiles` (type: `integer`):

Radius applied when a location is provided. Indeed accepts a radius in miles.

## `maxItemsPerQuery` (type: `integer`):

Maximum unique jobs collected for each keyword. This is a limit, not a guaranteed result count.

## `maxTotalItems` (type: `integer`):

Global output safety limit across all keywords. The Actor stops scheduling more work once this limit is reached.

## `offset` (type: `integer`):

Skip this many Indeed results before writing jobs for every keyword. Use 0 for the first page of results.

## `datePostedHours` (type: `integer`):

Return jobs published within this many hours. Use 0 for any age. This filter cannot be combined with jobType, remoteOnly, or easyApplyOnly because of the Indeed search contract.

## `jobType` (type: `string`):

Optional Indeed job-type filter. Use Any to include all types.

## `remoteOnly` (type: `boolean`):

Return only jobs whose public Indeed attributes or description indicate remote work. Cannot be combined with datePostedHours, jobType, or easyApplyOnly.

## `easyApplyOnly` (type: `boolean`):

Return only jobs marked as eligible for Indeed Apply. Cannot be combined with datePostedHours, jobType, or remoteOnly.

## `descriptionFormat` (type: `string`):

Format for the public job description returned in each Dataset item.

## `includeEmails` (type: `boolean`):

Extract public email addresses from job descriptions. Disabled by default; no email is included unless explicitly enabled.

## Actor input object example

```json
{
  "keywords": [
    "software engineer"
  ],
  "country": "usa",
  "location": null,
  "distanceMiles": 50,
  "maxItemsPerQuery": 25,
  "maxTotalItems": 5000,
  "offset": 0,
  "datePostedHours": 0,
  "jobType": "any",
  "remoteOnly": false,
  "easyApplyOnly": false,
  "descriptionFormat": "markdown",
  "includeEmails": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "keywords": [
        "software engineer"
    ],
    "country": "usa",
    "distanceMiles": 50,
    "maxItemsPerQuery": 25,
    "maxTotalItems": 5000,
    "offset": 0,
    "datePostedHours": 0,
    "jobType": "any",
    "remoteOnly": false,
    "easyApplyOnly": false,
    "descriptionFormat": "markdown",
    "includeEmails": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("datascraperes/indeed-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "keywords": ["software engineer"],
    "country": "usa",
    "distanceMiles": 50,
    "maxItemsPerQuery": 25,
    "maxTotalItems": 5000,
    "offset": 0,
    "datePostedHours": 0,
    "jobType": "any",
    "remoteOnly": False,
    "easyApplyOnly": False,
    "descriptionFormat": "markdown",
    "includeEmails": False,
}

# Run the Actor and wait for it to finish
run = client.actor("datascraperes/indeed-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "keywords": [
    "software engineer"
  ],
  "country": "usa",
  "distanceMiles": 50,
  "maxItemsPerQuery": 25,
  "maxTotalItems": 5000,
  "offset": 0,
  "datePostedHours": 0,
  "jobType": "any",
  "remoteOnly": false,
  "easyApplyOnly": false,
  "descriptionFormat": "markdown",
  "includeEmails": false
}' |
apify call datascraperes/indeed-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datascraperes/indeed-jobs-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kW5fRHMNPBfdMss73/builds/qJRXeP3bSny6hozQQ/openapi.json
