# QBCC Licence Search Scraper - Queensland Builders & Trades (`scrapersdelight/qbcc-qld-licensee-register-scraper`) Actor

Every QBCC-licensed Queensland builder and trade contractor: ABN, ACN, business address, licence classes, status, trading names, revenue category - plus optional directors, licensed-since date and insured building-work record. 111,000+ licensees. $0.0016 per licensee.

- **URL**: https://apify.com/scrapersdelight/qbcc-qld-licensee-register-scraper.md
- **Developed by:** [Scrapers Delight](https://apify.com/scrapersdelight) (community)
- **Categories:** Lead generation, Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.60 / 1,000 per licensee 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?

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

## QBCC Licence Search Scraper — Queensland Builders & Trades

Every licensee on the **Queensland Building and Construction Commission (QBCC) licensee register**, as one
clean row per licensee: name, **trading names**, **ABN**, **ACN**, **business address with suburb and
postcode**, every licence class with its grade, **status (Active / Suspended)** and condition flag, and the
QBCC **Maximum Revenue category** (a size signal). **111,853 licensees** on the register on 2026-09-23 —
82,455 of them builders or trade contractors you can hire, 101,506 with a Queensland address.

Optionally, the Actor also reads each licensee's **QBCC licence search certificate** (the "full history"
issued under s.99 of the QBCC Act) and turns it into data: **company directors and secretaries**, the
**nominee supervisor** with their own licence number, the **licensed-since date** of every class, the six
**disciplinary answers**, conditions with their full text, direction orders to rectify defective work, and
the licensee's **record of insured residential construction work — jobs and insured value per financial
year**. That last table is the one no directory has: it tells you which builders are actually building
homes, and how much.

**Who uses it:** Queensland building-supply distributors and manufacturer reps, trade and home-warranty-
adjacent insurers, tradie software (job management, quoting, payments), contractor-marketing agencies,
and anyone checking that a Queensland contractor is licensed for the work it is quoting.

**What QBCC does not publish:** a phone number or an e-mail address. Neither the open data nor the live
register carries one, so no row here has them. You get the ABN/ACN, the business address on the register,
and — with the certificate on — the directors' names.

### Why one row per licensee matters

QBCC's open data is **one row per licence × licence class × grade** — 204,313 rows for 111,853 licensees on
2026-09-23; a builder holding six classes is six rows. A scraper that emits file rows bills you six times for
the same builder. This Actor folds each licence number into **one row** with its classes as a list, and
checks the fold rather than assuming it:

- name, business address, ABN, ACN, licence type and financial category must agree across a licence's rows
  (measured over the whole register: 0 of 111,853 licences break this); a licence that ever does is withheld
  and listed in the run summary, and more than 1% failing fails the run;
- a class is the (grade, class) pair — 21,701 licensees hold classes under two different grades — and the one
  duplicated (licence, class, grade) row in the file is collapsed;
- licence numbers are paged by key, never by offset, and a number seen twice fails the run;
- a run that reads to the end is **floor-asserted against the register's own count** for your filters
  (`COUNT(DISTINCT licence number)` on the same query); a short read fails loudly instead of shipping a quietly
  smaller list.

### Quick start

Plumbers (20 newest licensees) — the demo input:

```json
{ "licenceClasses": ["Plumbing and Drainage"], "maxResults": 20 }
```

Builders on the Gold Coast (Surfers Paradise, Southport, Robina postcodes), with directors and work record:

```json
{ "licenceGrades": ["Builder Licence"], "postcodes": ["4217", "4215", "4226"], "includeLicenceHistory": true, "maxResults": 500 }
```

Every Queensland company licensed for air-conditioning, in a Maximum Revenue category of $3M+:

```json
{ "licenceClasses": ["Air-conditioning"], "licenseeTypes": ["Company"], "queenslandOnly": true,
  "financialCategories": ["2", "3", "4", "5", "6", "7"], "maxResults": 2000 }
```

A weekly **new-licensee feed** (schedule it; the first run saves the baseline):

```json
{ "onlyNewSinceLastRun": true, "stateKey": "all-qld-new", "maxResults": 2000 }
```

Look up specific licences:

```json
{ "licenceNumbers": ["1000004", "658141"], "includeLicenceHistory": true }
```

### Example output

A real row from a live run on 2026-09-23 (build 0.1.1, certificate on), unedited except the long
`licenceClassHistory` array shortened to its first entry:

```json
{
  "licenceNumber": "15642641",
  "licenseeName": "McFarlane Air Pty Ltd",
  "tradingNames": ["MCFARLANE AIR"],
  "licenseeType": "Company",
  "licenceStatus": "Active",
  "abn": "52 701 661 252",
  "acn": "701 661 252",
  "businessAddress": "9 COLEUS CT ANNANDALE QLD 4814",
  "street": "9 Coleus Ct",
  "suburb": "ANNANDALE",
  "state": "QLD",
  "postcode": "4814",
  "isQueenslandAddress": true,
  "licenceClassNames": ["Mechanical Services - Air-conditioning and Refrigeration (Limited Design)"],
  "licenceGrades": ["Trade Contractor Licence"],
  "licenceClasses": [
    { "className": "Mechanical Services - Air-conditioning and Refrigeration (Limited Design)", "classCode": "MSAL",
      "grade": "Trade Contractor Licence", "status": "Active", "condition": false }
  ],
  "classCount": 1,
  "isBuilder": false,
  "isTradeContractor": true,
  "hasSuspendedClass": false,
  "hasLicenceCondition": false,
  "financialCategoryCode": "SCT1",
  "financialCategory": "Self Certification - Trade",
  "maximumRevenueBand": "Self-Certification 1 - up to $200,000",
  "maximumRevenueCategory": "Self-Certification 1 - up to $200,000",
  "givenNames": null,
  "surname": null,
  "registerAddress": "9 Coleus Ct, ANNANDALE, QLD 4814",
  "addressShownOnRegister": true,
  "registerDetailStatus": "ok",
  "historyStatus": "ok",
  "firstLicensedDate": "2026-09-15",
  "keyPersonnel": [
    { "startDate": "2026-08-23", "name": "McFarlane, Christopher", "position": "Director", "address": "Townsville QLD 4813" }
  ],
  "nominees": [
    { "startDate": "2026-09-15", "endDate": null, "name": "McFarlane, Christopher", "licenceNumber": "15187420",
      "address": "Townsville QLD 4813", "current": true }
  ],
  "disciplinary": {
    "directionsToRectify": false, "disciplinaryAction": false, "convictions": false,
    "infringementNotices": false, "demeritPoints": false, "exclusionsDisqualificationsOrBan": false
  },
  "hasDisciplinaryRecord": false,
  "directionOrdersTotal": 0,
  "insuranceClaimsRecorded": false,
  "conditions": [],
  "residentialWork": [],
  "residentialJobsTotal": 0,
  "residentialJobsLast3FinancialYears": 0,
  "residentialValueLast3FinancialYearsAud": 0,
  "latestResidentialWorkYear": null,
  "licenceClassHistory": [
    { "className": "Mechanical Services - Air-conditioning and Refrigeration (Limited Design)", "commencementDate": "2026-09-15",
      "recordsShown": true, "periods": [ { "dateFrom": "2026-09-15", "dateTo": null, "type": "Trade Contractor Licence",
      "status": "Active", "reason": "New Application", "current": true } ], "conditions": [] }
  ],
  "licenceRecordId": "0cEOc000000F61tMAC",
  "historyPdfUrl": "https://my.qbcc.qld.gov.au/myQBCC/apex/QBCCLicenseeDocument?id=0cEOc000000F61tMAC",
  "registerSearchUrl": "https://my.qbcc.qld.gov.au/myQBCC/s/qbcc-licensee-register",
  "source": "QBCC licensee register (open data, data.qld.gov.au, CC-BY 4.0) + my.qbcc.qld.gov.au",
  "openDataSnapshot": "23/09/2026",
  "scrapedAt": "2026-09-23T07:07:54.004Z"
}
```

An established builder's work record looks like this (licence 658141, from the same certificate parser):

```json
"residentialWork": [
  { "financialYear": "2026/2027", "jobs": 1,  "insuredValueAud": 35000 },
  { "financialYear": "2025/2026", "jobs": 12, "insuredValueAud": 5607047 },
  { "financialYear": "2024/2025", "jobs": 10, "insuredValueAud": 4410640 }
],
"residentialJobsLast3FinancialYears": 23
```

### Output fields

**Identity and contact (always):**

| Field | What it is |
|---|---|
| `licenceNumber` | QBCC licence number (the register's own id; one row per number) |
| `licenseeName` | Name as published — company name, or the individual's full name |
| `tradingNames` | Trading names on the live register (list) |
| `licenseeType` | `Company` or `Individual` |
| `abn`, `acn` | ABN and ACN exactly as QBCC publishes them (`52 701 661 252`) |
| `businessAddress` | The business address in QBCC's open data, as published |
| `street`, `suburb` | Split from the live register's comma-separated address (never guessed from the open-data string) |
| `state`, `postcode`, `isQueenslandAddress` | Read from the end of the address (`QLD 4109`, `Queensland 4019`) |
| `registerAddress`, `addressShownOnRegister` | The live register's formatted address; if QBCC marks an address hidden, it is not shipped |
| `givenNames`, `surname` | For individuals, from the live register |

**Licence (always):** `licenceClassNames`, `licenceGrades`, `licenceClasses` (each: `className`, `classCode`,
`grade`, `status`, `condition`), `classCount`, `isBuilder`, `isTradeContractor`, `licenceStatus` (`Active`,
`Partly active`, `Suspended`), `hasSuspendedClass`, `hasLicenceCondition`, `financialCategoryCode`,
`financialCategory`, `maximumRevenueBand` (the dollar band for the code), `maximumRevenueCategory` (the live
register's label).

**Certificate (with `includeLicenceHistory`):** `firstLicensedDate`, `keyPersonnel` (directors / secretaries:
start date, name, position, suburb), `nominees` (start/end date, name, licence number, suburb), `disciplinary`
(six YES/NO answers), `hasDisciplinaryRecord`, `directionOrdersTotal`, `insuranceClaimsRecorded`, `conditions`
(class, dates, type, full text), `residentialWork` (financial year, jobs, insured value), `residentialJobsTotal`,
`residentialJobsLast3FinancialYears`, `residentialValueLast3FinancialYearsAud`, `latestResidentialWorkYear`,
`licenceClassHistory` (per class: commencement date and every status period in the last 10 years).

**Provenance:** `licenceRecordId`, `historyPdfUrl` (the certificate itself), `registerSearchUrl`,
`registerDetailStatus`, `historyStatus`, `source`, `openDataSnapshot`, `scrapedAt`.

### Measured field fill

Register-wide, from SQL over the whole open-data register (111,853 licensees, 2026-09-23): name 100%,
business address 99.99% (one blank, one placeholder-only), **ABN 53.0%** (59,295), **ACN 24.8%** (27,686 —
effectively every company), financial category 100%, Queensland address 90.7%.

From live runs on build 0.1.1 (two frames, because the newest and the oldest licensees differ):

| Field | Newest 1,000 licensees (default run) | Newest 200, certificate on | Oldest-licence sample, 71 certificates |
|---|---|---|---|
| licence status | 100% | 100% | 100% |
| suburb | 100% | 100% | — |
| ABN | 48.1% | 41.5% | — |
| trading names | 5.6% | 5.5% | 9.9% |
| licensed-since date | — | 100% | 100% |
| directors (of companies) | — | 38 of 39 companies | 18 of 18 companies |
| disciplinary answers | — | 100% | 100% |
| residential work record | — | 0.5% | 76% |

New licensees have not built anything yet, so the work record is almost empty in the newest frame and
present for three-quarters of established licensees. Quote it as a range.

### Input

| Input | Default | What it does |
|---|---|---|
| `licenceClasses` | all | Class names, any-part match (`"Plumbing"` also matches Mechanical Services - Plumbing) |
| `licenceGrades` | all | Builder Licence, Trade Contractor Licence, Nominee/Site Supervisor, Building Designer, occupational |
| `licenseeTypes` | both | Company / Individual |
| `postcodes` | anywhere | 4-digit postcodes, matched at the end of the business address |
| `suburbs` | anywhere | Whole-word match in the address (a street of the same name also matches — prefer postcodes) |
| `queenslandOnly` | false | Drop the ~9% of licensees with an interstate address |
| `financialCategories` | all | Maximum Revenue category codes (SCT1, SC2, 1–7, EMR…) |
| `nameContains` | — | Case-insensitive name filter |
| `withAbnOnly` | false | Only licensees with a published ABN |
| `licenceNumbers` | — | Lookup mode |
| `sortOrder` | `newest` | Licence numbers rise over time; newest = most recently licensed first |
| `includeRegisterDetail` | true | Live-register lookup: status, trading names, suburb, condition flags |
| `includeSuspended` | false | Deliver licensees whose every class is suspended |
| `includeLicenceHistory` | false | Parse the s.99 licence search certificate |
| `onlyNewSinceLastRun`, `stateKey` | false | Monitor mode: only licence numbers not seen at your last run |
| `maxResults` | 100 | Rows to deliver and be charged for |
| `proxyConfiguration` | direct | Not needed; see below |

### Pricing

**$0.0016 per licensee delivered.** No start fee. Filters, suspended licensees you did not ask for, and
duplicates are never delivered and never charged. The live-register lookup and the licence certificate cost
nothing extra. A default run (`{}`: 100 newest licensees) costs at most $0.16; the demo input costs $0.032.

### How it works (and why it is reliable)

1. **QBCC open data** — the Licensed Contractors Register on data.qld.gov.au. The 34.8 MB CSV sits
   behind an AWS WAF challenge, but the portal's **datastore API** is not, so each page is a server-side SQL
   query: filters run at the source and a 20-row run moves a few KB instead of 35 MB. Pages are keyset-paged on
   licence number and asserted under the portal's 32,000-row response cap. Measured on build 0.1.2: a walk of
   the whole register read **111,853 of 111,853** licence numbers (**204,313 of 204,313** source rows) in 56
   queries and 88 seconds, with zero duplicates.
2. **The live register** (my.qbcc.qld.gov.au) — the same guest calls the register page makes, two per licensee:
   search by licence number (it is a prefix match, so the exact number is selected), then the licence detail.
   The page's framework id is read at run start and re-read if Salesforce rotates it mid-run.
3. **The licence certificate** — the PDF behind "Licensee's full history", parsed from positioned text: each
   table's header gives the column positions, so wrapped cells (a director's name on two lines) are rejoined to
   the right column. Parsed cleanly on 71 of 71 old-frame and 200 of 200 newest-frame certificates.

Every non-200 or non-JSON answer is a transport failure, retried — never read as "no more data". If the live
register fails for most licensees the run keeps delivering open-data rows and says so; nothing is charged twice.

**Proxy:** all three sources answered Apify's servers directly on 2026-09-23, so the default is no proxy. If
you set one that cannot start, the run falls back to direct.

### Limits of the data

- **No phone, no e-mail.** QBCC publishes neither. Use the ABN to join other sources.
- **Cancelled licences are not in the open data.** Suspended ones are (with no status column there) — the live
  register lookup supplies the status, and suspended licensees are skipped unless you ask for them. With
  `includeRegisterDetail: false` status is unknown and suspended licensees can appear.
- **Suburb** comes only from the live register; with register detail off, you get the full address plus state
  and postcode but no separate suburb.
- **Directors and nominees** carry a suburb, never a street — that is all the certificate prints.
- **The work record** counts residential work notified for home-warranty insurance only; commercial work and
  work under the insurance threshold are not in it. QBCC shows the last ~10 years.
- The open data is QBCC's snapshot (dated in `openDataSnapshot`); the live register is real time, so a licence
  cancelled today can still be in today's open data (`registerDetailStatus: "not-on-live-register"`).
- A licensee may also hold a separate individual or company licence — QBCC treats them as different licensees,
  and so does this Actor.

### Source

QBCC Licensed Contractors Register (data.qld.gov.au, dataset `qbcc-licensed-contractors-register`) and the
QBCC licensee register at my.qbcc.qld.gov.au. Source: Queensland Building and Construction Commission.

### Related

Other contractor-licence registers from the same publisher: RBQ Québec, ESA Ontario, HCRA Ontario, and
NICEIC (UK).

# Actor input Schema

## `licenceClasses` (type: `array`):

QBCC licence class names, matched on any part of the name and case-insensitive: "Plumbing" matches Plumbing and Drainage AND Mechanical Services - Plumbing; "Builder - Low Rise", "Carpentry", "Roof and Wall Cladding", "Gasfitting", "Concreting", "Waterproofing", "Air-conditioning", "Swimming Pool", "Termite", "Fire Protection". A licensee matches if it holds ANY listed class. Empty = every class.

## `licenceGrades` (type: `array`):

Licence grade as QBCC records it. Contractors who can be hired are Builder Licence and Trade Contractor Licence; supervisors and occupational licences are individuals working under a contractor. Empty = all grades.

## `licenseeTypes` (type: `array`):

Company (Pty Ltd, with ACN) or Individual (sole trader). Empty = both.

## `postcodes` (type: `array`):

4-digit postcodes of the licensee's business address, e.g. 4000 (Brisbane City), 4217 (Surfers Paradise), 4870 (Cairns). Empty = anywhere.

## `suburbs` (type: `array`):

Suburb names, e.g. Toowoomba, Sunnybank Hills. Matched as whole words anywhere in the business address, so a street of the same name also matches - use postcodes for an exact area. Empty = anywhere.

## `queenslandOnly` (type: `boolean`):

About 9% of QBCC licensees (10,347 of 111,853 on 2026-09-23) have an interstate business address (NSW border towns, national firms). Tick to keep only Queensland addresses.

## `financialCategories` (type: `array`):

QBCC's Maximum Revenue category - the most revenue the licensee may turn over in a year, set from its net tangible assets. A size signal: Category 3 and above = $12M+ builders. Empty = all.

## `nameContains` (type: `string`):

Keep licensees whose name contains this text (case-insensitive), e.g. "plumbing" or "homes".

## `withAbnOnly` (type: `boolean`):

Keep only licensees for which QBCC publishes an ABN (59,295 of 111,853 licensees, 53%, on 2026-09-23).

## `licenceNumbers` (type: `array`):

Look up specific QBCC licence numbers, e.g. 1000004. Other filters still apply. Empty = search the register.

## `sortOrder` (type: `string`):

QBCC licence numbers rise over time, so "newest" returns the most recently licensed businesses first (a licensee licensed last week is at the top), "oldest" the longest-standing.

## `includeRegisterDetail` (type: `boolean`):

Look each licensee up on QBCC's live licensee register: trading names, per-class status (Active / Suspended), condition flags, class codes, suburb, and the individual's given names / surname. Two small requests per licensee; no extra charge.

## `includeSuspended` (type: `boolean`):

QBCC's open data includes licensees whose licence is SUSPENDED (cancelled licences are not published). By default a licensee whose every class is suspended is skipped and not charged. Needs live register detail on.

## `includeLicenceHistory` (type: `boolean`):

Download and parse each licensee's QBCC licence search certificate ("full history", s.99 of the QBCC Act): company directors / secretaries and nominee supervisor, licensed-since date per class, the six disciplinary answers, conditions with their text, direction orders, and the record of insured residential construction work (jobs and value per financial year). About 1-2 seconds per licensee; no extra charge.

## `onlyNewSinceLastRun` (type: `boolean`):

Deliver only licence numbers that were not on the register at your previous run with the same state key. The first run saves the baseline (and delivers up to Max results). Schedule it daily or weekly for a new-licensee feed.

## `stateKey` (type: `string`):

Name for the saved monitor baseline. Use a different key per saved search.

## `maxResults` (type: `integer`):

Maximum licensees to deliver (and be charged for). The register holds about 112,000.

## `proxyConfiguration` (type: `object`):

Not needed: QBCC's open-data API and live register answer Apify's servers directly. Leave off (direct). If you set a proxy that cannot start, the run falls back to direct.

## Actor input object example

```json
{
  "licenceClasses": [
    "Plumbing and Drainage"
  ],
  "queenslandOnly": false,
  "withAbnOnly": false,
  "sortOrder": "newest",
  "includeRegisterDetail": true,
  "includeSuspended": false,
  "includeLicenceHistory": false,
  "onlyNewSinceLastRun": false,
  "stateKey": "default",
  "maxResults": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `items` (type: `string`):

One row per QBCC licensee: licence number, name, trading names, ABN, ACN, business address with suburb and postcode, every licence class with grade and status, Maximum Revenue category, and (optional) directors, nominee, licensed-since date, disciplinary answers and residential work record.

## `runSummary` (type: `string`):

RUN\_SUMMARY: the register's own count for your filters against unique licensees read, suspended licensees skipped, live-register and certificate lookups (ok / not found / unreachable), and the measured field fill of the rows you received.

# 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 = {
    "licenceClasses": [
        "Plumbing and Drainage"
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/qbcc-qld-licensee-register-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 = {
    "licenceClasses": ["Plumbing and Drainage"],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/qbcc-qld-licensee-register-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 '{
  "licenceClasses": [
    "Plumbing and Drainage"
  ],
  "maxResults": 20
}' |
apify call scrapersdelight/qbcc-qld-licensee-register-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/qbcc-qld-licensee-register-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/tpzdC4kRxkvSvhO3T/builds/jptsc4fxLYBe6vNHo/openapi.json
