# Reed Jobs Search Scraper (`ecomscrape/reed-jobs-search-scraper`) Actor

Automate Reed.co.uk job data extraction with our advanced scraper. Extract job titles, salaries, locations & descriptions into CSV/JSON formats. Perfect for recruiters, HR professionals & businesses. 99% accuracy, bulk processing & seamless integration. Transform recruitment workflows today!

- **URL**: https://apify.com/ecomscrape/reed-jobs-search-scraper.md
- **Developed by:** [ecomscrape](https://apify.com/ecomscrape) (community)
- **Categories:** Jobs, Automation, Developer tools
- **Stats:** 8 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link:
[My profile](https://apify.com/ecomscrape)

## What Can Reed.co.uk Jobs Search Scraper Do?

In today's competitive job market, accessing comprehensive employment data from leading platforms like Reed.co.uk has become crucial for recruitment agencies, HR professionals, job aggregators, and market researchers. Reed.co.uk stands as the UK's #1 job site with over 200,000 available positions, serving more than 11 million monthly users who make almost 100,000 applications daily. The platform features vacancies from over 30,000 recruiters annually, making it an invaluable source of UK employment market intelligence.

The challenge lies in efficiently extracting and organizing this vast amount of job data for analysis, competitive research, or automated job aggregation services. Manual data collection from such a large-scale platform would be time-consuming, error-prone, and practically impossible to maintain at scale. This is where a specialized Reed.co.uk jobs scraper becomes an essential tool for businesses and professionals who need reliable access to UK job market data.

### Comprehensive Reed.co.uk Jobs Search Scraper Overview

Our Reed.co.uk Jobs Search Scraper is a sophisticated data extraction tool designed specifically to navigate and extract job listings from Reed's extensive database. The scraper handles the complexities of modern web scraping, including dynamic content loading, anti-bot measures, and data structure variations, ensuring consistent and reliable data extraction.

The tool excels in its ability to process multiple search query URLs simultaneously, making it ideal for large-scale data collection projects. Whether you're tracking specific job categories, monitoring salary trends across different regions, or building comprehensive job databases, this scraper provides the robust functionality needed for professional applications.

Key advantages include automated pagination handling, comprehensive data field extraction, proxy support for undetected scraping, and configurable retry mechanisms. The scraper is particularly valuable for recruitment consultancies, HR analytics firms, job board aggregators, and market research organizations that require systematic access to UK employment data.

### Input Configuration and Requirements

Example url 1: https://www.reed.co.uk/jobs/jobs-in-london?sortBy=displayDate\&pageno=2

Example url 2: https://www.reed.co.uk/jobs/jobs-in-east-london

Example url 3: https://www.reed.co.uk/jobs/jobs-in-harrow

Example Screenshot of jobs information page:

![](https://i.ibb.co/ycqs7cGL/Screenshot-from-2025-07-01-23-53-05.png)

#### Input Format

The scraper accepts configuration through a JSON object with several key parameters:

##### Scrape with URLs:

```json
{
  "max_retries_per_url": 2, // Maximum number of retry attempts for each URL
  "proxy": { // Proxy configuration to avoid bot detection
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "GB" // Choose a country that matches your target data location
  },
  "max_items_per_url": 20, // Total number of items you want to scrape
  "urls": [ // Job listing page URLs to scrape
    "https://www.reed.co.uk/jobs/jobs-in-london?sortBy=displayDate&pageno=2",
    "https://www.reed.co.uk/jobs/jobs-in-harrow",
    "https://www.reed.co.uk/jobs/jobs-in-east-london"
  ],
  "ignore_url_failures": true // Continue scraping even if some URLs fail
}
```

**The `urls` parameter**: List of job listing page URLs that you want to scrape. You can add URLs one by one, or use the Bulk edit section to add a prepared list.

**The `ignore_url_failures` parameter**: If set to `true`, the scraper will continue running even if some URLs fail to be scraped after reaching the maximum number of retries. This ensures that one problematic URL doesn't stop your entire scraping job.

*When you provide a list of URLs for scraping, all options in the "Scrape with search filters" section will be disabled. The system will only collect data from the URLs you specified.*

##### Scrape with Search Filters:

```json
{
  "max_retries_per_url": 2, // Maximum number of retry attempts for each search filter
  "proxy": { // Proxy configuration to avoid bot detection
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "GB" // Choose a country that matches your target data location
  },
  "max_items_per_url": 20, // Total number of items you want to scrape
  "keyword": "software engineer", // Search keyword to find jobs
  "location": "London", // Location to search for jobs
  "job_type": "permanent", // Filter by job type
  "distance": "10", // Filter by distance from location
  "posted_date": "lastweek", // Filter by posting date
  "page": 1 // Starting page number for search results
}
```

**The `keyword` parameter**: The search keyword to find jobs (e.g., "software engineer", "accountant", "nurse", "manager").

**The `location` parameter**: Enter the location to search for jobs (e.g., "London", "Manchester", "Birmingham", "Leeds").

**The `job_type` parameter**: Filter jobs by employment type:

- `"permanent"` - Permanent positions
- `"temporary"` - Temporary positions
- `"contract"` - Contract positions
- `"full-time"` - Full-time positions
- `"part-time"` - Part-time positions

**The `distance` parameter**: Filter jobs by distance from the specified location:

- `"0"` - 0 miles (exact location)
- `"1"` - 1 mile
- `"3"` - 3 miles
- `"5"` - 5 miles
- `"10"` - 10 miles
- `"15"` - 15 miles
- `"20"` - 20 miles
- `"30"` - 30 miles
- `"50"` - 50 miles

**The `posted_date` parameter**: Filter jobs by posting date:

- `""` - Any time
- `"today"` - Last 24 hours
- `"lastthreedays"` - Last 3 days
- `"lastweek"` - Last week
- `"lasttwoweeks"` - Last 2 weeks

**The `page` parameter**: Starting page number for scraping, useful for continuing interrupted scrapes or targeting specific result ranges.

*When using search filters for scraping, you need to leave the `urls` field empty (or set it to `null`) in the "Scrape with URLs" configuration.*

##### General Options:

**The `max_items_per_url` parameter**: Limits the number of job listings extracted from each listing page or search results page. The default value is 20, providing a manageable batch size while allowing for comprehensive data collection.

**The `max_retries_per_url` parameter**: Sets the maximum number of retry attempts for each URL or search filters if the scrape is detected as a bot or the page fails to load. The default value is 2, providing a good balance between thoroughness and efficiency.

**The `proxy` parameter**: Proxy configuration is essential for maintaining anonymity and avoiding detection. The residential proxy option ensures that your scraping activities appear as legitimate browsing, reducing the risk of being blocked or rate-limited. You should choose a country that matches the location of the website you're scraping (e.g., UK/GB for reed.co.uk).

**Output:**

You get the output from the Reed.co.uk Jobs Search Query Scraper stored in a tab. The following is an example of the Information Fields collected after running the Actor.

```json
[ // List of jobs information
  {
    "job_id": 55331095,
    "job_title": "Behaviour Mentor",
    "job_type": 4,
    "job_description": "Are you passionate about making a real impact in secondary education? We're an established agency working with Wandsworth secondary schools, and Tradewind Recruitment are looking to onboard Pastoral Administrators for the upcoming academic year, starting September. If you're ready to support school pastoral teams and help create a safe, supportive environment for students-and build your career-let's chat! What You'll Do: Provide essential administrative support to the pastoral team, managing records and student information Coordinate communication between staff, students, and parents regarding behaviour, attendance, and welfare Help organise pastoral meetings, interventions, and events Assist with monitoring student attendance, behaviour logs, and welfare referrals What You'll Bring: Strong organisational skills and attention to detail Experience (or willingness to learn) in an educational or pastoral environment Excellent communication and interpersonal skills A proactive, discreet, and supportive approach to working with young people and school staff How We Support You: Competitive daily rates: 90- 110, depending on experience Full-time, term-time roles with leading Wandsworth secondary schools Ongoing training and professional development opportunities Friendly agency support-fast placement, clear communication, and respect for your preferences DBS checks handled quickly and professionally Why Join Us: Pastoral Administrators are crucial in maintaining the smooth running of pastoral care in London secondary schools. Agencies like ours help place dedicated professionals exactly where they're needed most!",
    "date_created": "2025-07-01T17:24:05",
    "date_updated": "2025-07-01T17:24:05",
    "display_date": "2025-07-01T17:24:05",
    "expiry_date": "2025-08-12T23:55:00",
    "display_location_name": "South West London",
    "county_location": "London",
    "featured_label": false,
    "external_url": "",
    "is_full_time": true,
    "is_part_time": false,
    "is_priority": false,
    "is_promoted": false,
    "is_top_job": false,
    "ou_id": 427940,
    "ou_name": "Tradewind Recruitment",
    "ou_type": 1,
    "ou_tier_id": 2,
    "profile_id": 12807,
    "salary_currency_id": 1,
    "salary_description": 0,
    "salary_from": 91,
    "salary_to": 110,
    "salary_type": 2,
    "taxonomy_level1": "Mentor",
    "taxonomy_level2": "Behaviour Mentor",
    "remote_working_option": "NotSpecified",
    "is_training_job": false,
    "is_early_bird": false,
    "is_easy_apply": true,
    "eligible_uk_only": false,
    "has_applied": false,
    "is_withdrawn": null,
    "is_draft": false,
    "is_in_saved_jobs_list": false,
    "is_ats_direct_apply": false,
    "is_hidden": false,
    "toggle_description": false,
    "profile_name": "Tradewind Recruitment",
    "profile_url": "tradewind-recruitment",
    "url": "https://www.reed.co.uk/jobs/behaviour-mentor/55331095",
    "ou_url": "https://www.reed.co.uk/jobs/tradewind-recruitment/p12807",
    "logo_image": "https://resources.reed.co.uk/profileimages/logos/thumbs/profile-12807.gif",
    "from_url": "https://www.reed.co.uk/jobs/jobs-in-london?sortBy=displayDate&pageno=2"
  }, // ... Many other jobs details
]
```

### Detailed Output Data Structure

#### Core Job Information Fields

The scraper extracts over 40 distinct data fields from each job listing, providing comprehensive information for analysis and application. Understanding each field's purpose is crucial for effective data utilization.

**Primary Identifiers**: `Job ID` serves as the unique identifier for each listing, while `Profile ID` and `OU ID` (Organizational Unit ID) help track job relationships and employer hierarchies. These fields are essential for database management and avoiding duplicate entries.

**Job Details**: `Job Title`, `Job Type`, and `Job Description` provide the core content information. `Job Type` typically indicates whether the position is permanent, temporary, contract, or part-time. The description contains the full job posting content, including requirements and responsibilities.

**Temporal Data**: Multiple date fields track the job lifecycle - `Date Created` shows when the job was first posted, `Date Updated` indicates the last modification, `Display Date` shows when it appeared in search results, and `Expiry Date` indicates when the listing will be removed. This temporal information is valuable for analyzing job posting patterns and market trends.

**Location Intelligence**: `Display Location Name` and `County Location` provide geographical context, while `Remote Working Option` indicates flexibility in work arrangements. This data is crucial for location-based analysis and understanding regional employment patterns.

**Compensation Details**: `Salary Currency ID`, `Salary Description`, `Salary From`, `Salary To`, and `Salary Type` provide comprehensive compensation information. These fields enable salary range analysis, market rate research, and compensation benchmarking across different roles and locations.

#### Advanced Classification and Features

**Job Categorization**: `Taxonomy Level 1` and `Taxonomy Level 2` provide standardized job classification, enabling systematic analysis across job categories and industries. This hierarchical classification system helps in building job recommendation engines and market analysis tools.

**Priority and Visibility Indicators**: Boolean fields like `Is Priority`, `Is Promoted`, `Is Top Job`, `Is Featured`, and `Is Early Bird` indicate the job's visibility status on the platform. These fields help understand employer marketing strategies and job posting economics.

**Application and Engagement Metrics**: `Is Easy Apply`, `Is ATS Direct Apply`, `Has Applied`, `Is In Saved Jobs List` provide insights into job accessibility and user engagement levels. This information is valuable for understanding application conversion patterns.

**Employer Information**: `OU Name`, `OU Type`, `OU Tier ID`, `Profile Name`, `Profile URL`, and `Logo Image` provide comprehensive employer details. This data enables employer analysis, company research, and professional networking applications.

### Implementation Guide and Best Practices

#### Configuration Setup

**Step 1: Choose Your Scraping Approach**

**Option A - URL-Based Configuration:**
Begin by configuring your input parameters based on your specific data collection requirements. Navigate to Reed.co.uk and use the website's search and filtering features to find relevant job listings. Construct your URLs carefully using Reed.co.uk's search parameters. Include sorting options like `sortBy=displayDate` for the most recent listings, or `sortBy=salary` for compensation-focused research. Always test your URLs manually before adding them to the scraper configuration. Copy the complete URLs with all filter parameters.

**Option B - Filter-Based Configuration:**
Define your search criteria using the built-in filters:

- Set `keyword` for specific job titles or roles (e.g., "software engineer", "nurse", "accountant")
- Enter `location` to target specific areas (e.g., "London", "Manchester", "Birmingham")
- Select `job_type` to filter by employment type (permanent, temporary, contract, full-time, part-time)
- Set `distance` to define search radius from location (0-50 miles)
- Choose `posted_date` to filter by job posting recency (today, last 3 days, last week, last 2 weeks)
- Set `page` to start from a specific results page

**Step 2: Set Data Limits**
For comprehensive market research, set `max_items_per_url` to a higher value (50-100 items) but monitor your proxy usage and request frequency. For focused searches, 10-20 items typically provide sufficient data while maintaining efficient resource usage.

**Step 3: Configure Proxy and Retry Settings**
Set `max_retries_per_url` (recommended: 2-3) and configure UK (GB) residential proxies for optimal performance with Reed.co.uk. Enable `ignore_url_failures` for robust scraping.

**Best Practices:**

**Method Selection:**

- Use URL-based scraping for complex searches with multiple filters or specific sorting requirements
- Use filter-based scraping for simpler keyword and location searches with standard filtering options
- Combine both approaches: use filters for broad job discovery, then URLs for targeted extraction

**Filter Optimization:**

**Location Strategy:**

- Use specific city names in `location` (e.g., "London", "Edinburgh", "Cardiff")
- Combine with `distance` to broaden or narrow the search area:
  - 0-5 miles for hyperlocal searches
  - 10-15 miles for city-wide searches
  - 20-30 miles for regional searches
  - 50 miles for broader coverage

**Job Type Strategy:**

- Use `job_type: "permanent"` for full-time career positions
- Use `job_type: "contract"` for project-based work
- Use `job_type: "temporary"` for short-term assignments
- Use `job_type: "full-time"` or `"part-time"` for schedule-specific searches

**Recency Filtering:**

- Use `posted_date: "today"` for real-time job tracking
- Use `posted_date: "lastthreedays"` for catching recent opportunities
- Use `posted_date: "lastweek"` for weekly job market analysis
- Use `posted_date: "lasttwoweeks"` for broader time coverage
- Leave empty for comprehensive historical data

**Advanced Filter Combinations:**

- Local permanent jobs: `keyword: "accountant", location: "Manchester", job_type: "permanent", distance: "10", posted_date: "lastweek"`
- Recent contract work: `keyword: "IT consultant", location: "London", job_type: "contract", distance: "15", posted_date: "lastthreedays"`
- Part-time opportunities: `keyword: "customer service", location: "Birmingham", job_type: "part-time", distance: "5", posted_date: "today"`
- Regional full-time: `keyword: "engineer", location: "Leeds", job_type: "full-time", distance: "30", posted_date: "lasttwoweeks"`

**Distance Optimization:**

- Start with smaller distance values (5-10 miles) for specific locations
- Increase distance (20-50 miles) if results are limited
- Use distance: "0" for exact location matches only
- Consider commute patterns when setting distance for major cities

**Use Cases:**

- **Daily Job Monitoring**: `posted_date: "today"` with specific keywords and locations
- **Weekly Market Analysis**: `posted_date: "lastweek"` for comprehensive tracking
- **Location Comparison**: Run same keyword across different `location` and `distance` combinations
- **Contract vs Permanent Analysis**: Compare results using different `job_type` filters
- **Commute-Based Search**: Use `distance` to find jobs within commutable range

#### Handling Common Challenges

Network reliability can impact scraping performance, especially during peak hours when Reed.co.uk experiences high traffic. The retry mechanism helps handle temporary failures, but consider spacing your scraping sessions to avoid concentrated load on the target servers.

Data consistency may vary between different job listings, as employers have flexibility in how they structure their postings. Some optional fields like `Remote Working Option` or specific salary details may not be populated for all jobs. Implement proper data validation in your processing pipeline to handle missing values appropriately.

Rate limiting is crucial for maintaining long-term scraping access. Reed.co.uk, like most major job boards, monitors for automated access patterns. Use the provided proxy rotation features and avoid scraping the same URLs repeatedly within short time windows.

### Business Applications and Strategic Value

#### Time Efficiency and Automation

Manual job data collection from Reed.co.uk would require hundreds of hours for comprehensive market analysis. The scraper reduces this to automated background processing, freeing human resources for analysis and decision-making. Organizations can schedule regular data collection to maintain current market intelligence without ongoing manual effort.

#### Market Intelligence Applications

Recruitment agencies can monitor competitor job postings, analyze salary trends across different sectors, and identify emerging skill requirements in specific markets. HR departments can benchmark their job postings against market standards and optimize their recruitment strategies based on successful posting patterns.

#### Business Intelligence Integration

The structured output format enables seamless integration with business intelligence tools, CRM systems, and analytics platforms. Organizations can build automated reporting systems that track job market trends, monitor specific companies' hiring patterns, and identify business opportunities in the recruitment sector.

### Conclusion and Implementation

The Reed.co.uk Jobs Search Scraper provides professional-grade access to the UK's most comprehensive job database, enabling systematic data collection for business intelligence, market research, and competitive analysis. With its robust configuration options, comprehensive data extraction capabilities, and built-in reliability features, the tool serves as an essential resource for organizations requiring systematic access to UK employment market data.

Ready to transform your approach to job market intelligence? Implement this scraper to gain competitive advantages through data-driven insights into the UK employment landscape.

## Related Actors

- [**Reed.co.uk Jobs Details Scraper**](https://apify.com/ecomscrape/reed-jobs-details-scraper): Your comprehensive tool for extracting valuable jobs information from Reed.co.uk extensive directory platform.

## Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about Reed.co.uk Jobs Search Query Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Jobs list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped after the maximum number of retries is reached.

## `keyword` (type: `string`):

Enter the keyword to search for items

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

Enter the location to search for items

## `job_type` (type: `string`):

Filter items by Job Type (e.g., permanent, temporary, contract, full-time, part-time)

## `distance` (type: `string`):

Filter items by Distance from Location

## `posted_date` (type: `string`):

Filter items by Posted Date

## `page` (type: `integer`):

Specify the page number to start scraping from

## `max_items_per_url` (type: `integer`):

Limit the number of items per URL or search filters you want to scrape

## `max_retries_per_url` (type: `integer`):

Limit the number of retries for each URL or search filters if the scrape is detected as a bot or the page fails to load

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.reed.co.uk/jobs/jobs-in-london?sortBy=displayDate&pageno=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "urls": [
        "https://www.reed.co.uk/jobs/jobs-in-london?sortBy=displayDate&pageno=2"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ecomscrape/reed-jobs-search-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 = {
    "urls": ["https://www.reed.co.uk/jobs/jobs-in-london?sortBy=displayDate&pageno=2"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ecomscrape/reed-jobs-search-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 '{
  "urls": [
    "https://www.reed.co.uk/jobs/jobs-in-london?sortBy=displayDate&pageno=2"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ecomscrape/reed-jobs-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ecomscrape/reed-jobs-search-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/aAydIybVHojMybnur/builds/kU4FSLaOWnfyiE2N6/openapi.json
