# NoCowboys NZ Tradies Scraper — Phones, Websites & Ratings (`scrapersdelight/nocowboys-nz-scraper`) Actor

New Zealand trade businesses from nocowboys.co.nz: each business's own landline and mobile (E.164), website, address, categories, areas served, approval rating, rating count, licensing-board badges (LBP, EWRB, PGDB) and map pin. Filter by category + region. $4 per 1,000 businesses.

- **URL**: https://apify.com/scrapersdelight/nocowboys-nz-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

$4.00 / 1,000 per business 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

## NoCowboys NZ Tradies Scraper — Phones, Websites & Ratings

Export New Zealand **tradies and trade businesses** from [NoCowboys](https://www.nocowboys.co.nz), the original Kiwi tradie-rating site — plumbers, electricians, builders, roofers, painters, drainlayers, landscapers, heat-pump installers and 220+ more categories — with **each business's own published phone numbers** (landline, mobile, freephone, in E.164), its **website**, physical and postal address, the categories and areas it services, its NoCowboys approval rating and rating count, the date of its most recent rating, and the association / licensing-board badges it shows (Licensed Building Practitioners, Electrical Workers Registration Board, Plumbers, Gasfitters and Drainlayers Board, Master Builders, Site Safe …).

**One row = one business.** A business found by several of your searches is delivered and charged once.

**$4 per 1,000 businesses** ($0.004 per business). No start fee, no proxy cost, nothing charged for filtered-out businesses, duplicates, or pages the site could not serve.

### Who uses this

- Trade merchants and suppliers (building supplies, plumbing and electrical wholesalers) building a trade-account call list by region and trade
- Tradie software (job management, quoting, invoicing) and trade insurers sourcing NZ tradespeople to call
- Home-services agencies and lead-generation marketplaces recruiting contractors in a region
- Anyone who wants a tradie's **reputation** next to the contact: approval %, rating count, how recently customers rated them, and whether they show an LBP / EWRB / PGDB badge

### What you get — measured on real runs (2026-09-23)

**The whole directory, once:** run `u9vBigmG6HMMu3eKJ` (`allBusinesses`, 19.7 minutes) delivered and charged **18,171 businesses** — 16,298 from the searches (the site states 16,410 for all of New Zealand: 99.3%, every one of the 18 region searches read to 100% of its stated total) plus 1,878 that appear only in the site's sitemap. 998 are registered, 17,173 unregistered. Population fill:

| Field | All 18,171 | 998 registered | Notes |
|---|---|---|---|
| `phone` / `phoneE164` | **97.7%** | **99.7%** | The business's **own** number from its own page — never a number from the "registered businesses nearby" box |
| `landlinePhone` | 71.8% | 21.0% | 03/04/06/07/09 numbers |
| `mobilePhone` | 21.0% | 84.8% | NZ mobiles (02x) |
| `phones` with 2+ numbers | 1.4% | 24.9% | primary + alternative, labelled |
| `website` | **20.7%** | **75.2%** | registered: the page's Website link; unregistered: the business's own structured data (`websiteSource`) |
| `physicalAddress` | 85.1% | 35.3% | as printed; `postcode` 54.2% (only when the address ends in one) |
| `categories`, `areasServed` | 92.0% / 91.8% | 98.8% / 99.4% | what the business services, and where |
| `primaryCategory`, `locality` | 84.1% / 66.6% | 99.9% / 99.9% | from the page headline ("Electricians / Electrical Contractors in Mairangi Bay") |
| `approvalPercent`, `latestReviewDate` | 41.6% / 41.5% | 95.7% | `null` when nobody has rated the business; `ratingCount` is 100% (0 when none) |
| `primaryContact` | 5.5% | 99.5% | registered pages only |
| `about` | 5.2% | 94.3% | registered pages only |
| `associations` + board flags | 3.3% | 59.6% | LBP badge 171 businesses · EWRB 112 · PGDB 84 |
| `facebookUrl` | 2.6% | 48.0% | |
| `latitude` / `longitude` | 1.9% | 34.1% | the map pin, only on registered pages that embed a map |

**Four search frames, every business in each** (runs `UT60cLTGm1RpP13RL`, `OOhPw8SUHet0KNfBI`, `8HhsTw7MWlbqpPcPy`, `k0zs0qJaYbg4nr90L`) — plumbers × Canterbury 102/102, builders × Waikato & King Country 209/209, electricians × Auckland 550/550, and 60 profiles drawn at random from the sitemap — put phone at **98.0–99.5%**, website at **19.1–37.5%** and physical address at **70.0–95.1%**; a trade search in a city returns more registered businesses than the directory as a whole, so its website and mobile fill runs higher.

**Registered vs unregistered.** A *registered* business pays NoCowboys for a full page (contact name, website, about, badges, map). An *unregistered* business is one customers rated that never signed up — its page still prints its phone number (97.6%) and usually its address. By default you get **both** (the site's own "Show unregistered businesses" option — plumbers NZ-wide: 1,046 instead of 117); set `includeUnregistered` off for registered only. `registeredOnNoCowboys` tells you which is which.

**Coverage.** Every search states a total ("209 results."). Every search in the runs above was read to 100% of its stated total, and every run writes the stated-vs-unique numbers to the `RUN_SUMMARY` record.

**Activity.** `latestReviewDate` is the directory's own activity signal: of the 7,549 businesses that have ever been rated, 1,022 were last rated in 2025–2026 and 1,212 last in 2007. Filter on it (and on `ratingCount`) if you want businesses customers are still hiring.

### Input

| Field | Default | What it does |
|---|---|---|
| `categories` | `["plumbers-plumbing-contractors"]` | Category slugs as in `nocowboys.co.nz/search/<location>/<category>` — e.g. `electricians-electrical-contractors`, `builders`, `roofing-contractors`, `painters-painting-contractors`, `drainlayers`, `heat-pump`, `landscaping-services`, or `all-categories`. Names are normalised ("Plumbers / Plumbing Contractors" works). |
| `locations` | `["wellington"]` | `new-zealand`, a region (`auckland`, `wellington`, `canterbury`, `waikato-king-country`, `bay-of-plenty`, `otago`, `hawkes-bay`, `manawatu`, `northland`, `nelson-bays`, `southland`, `taranaki`, `gisborne`, `thames-coromandel`, `wairarapa`, `wanganui`, `marlborough`, `west-coast`) or a town/suburb slug (`paraparaumu`, `hamilton`, `tauranga` …). Every category is searched in every location. |
| `includeUnregistered` | `true` | Include businesses that never registered (still with their phone). Off = registered only. |
| `allBusinesses` | `false` | The whole directory: all categories × all of New Zealand, split region by region past the site's 7,000-result search limit, plus the businesses the site lists only in its sitemap. Set `maxResults` to 0 (about 18,000 businesses, ~20 minutes, ~$73). |
| `businessUrls` | `[]` | Specific profiles (`https://www.nocowboys.co.nz/businesses/peter-jackson-plumbing` or just `peter-jackson-plumbing`). When given, only these are fetched. |
| `requirePhone` | `false` | Skip businesses whose page shows no phone (not charged). |
| `minRatingCount` | `0` | Keep only businesses with at least this many NoCowboys ratings. Applied on the search result, before the profile is opened. |
| `minApprovalPercent` | `0` | Keep only businesses rated at least this approval % (0–100). |
| `includeReviews` | `false` | Add `recentReviews` (date, approval %, reviewer first name, excerpt), newest first. Same price. |
| `maxReviewsPerBusiness` | `10` | 1–80. |
| `maxResults` | `75` | Stop after this many businesses. 0 = no limit. |
| `maxPagesPerSearch` | `0` | Limit each search's depth (100 businesses per page). 0 = all. |
| `concurrency` | `4` | Parallel requests (1–10). |
| `requestTimeoutSecs` | `30` | Hard deadline per request; slow requests are retried. |
| `proxyConfiguration` | none | Not needed — the site answers Apify's servers directly. |

Example — every electrician and plumber in Auckland and Wellington with at least 5 ratings:

```json
{
  "categories": ["electricians-electrical-contractors", "plumbers-plumbing-contractors"],
  "locations": ["auckland", "wellington"],
  "minRatingCount": 5,
  "maxResults": 0
}
```

### Output — a real row (run u9vBigmG6HMMu3eKJ, 2026-09-23)

`areasServed`, `categories`, `categorySlugs` and `whatWeDo` are shortened here for reading (the real row lists 35 areas, 14 categories and 13 services); every other value is exactly as delivered.

```json
{
  "businessId": 91683,
  "slug": "Astero-Electrical",
  "name": "Astero Electrical",
  "registeredOnNoCowboys": true,
  "phone": "021515838",
  "phoneE164": "+6421515838",
  "phoneType": "mobile",
  "mobilePhone": "021515838",
  "mobilePhoneE164": "+6421515838",
  "landlinePhone": "094755155",
  "landlinePhoneE164": "+6494755155",
  "phones": [
    { "number": "021515838", "e164": "+6421515838", "type": "mobile", "label": "primary", "source": "profile" },
    { "number": "094755155", "e164": "+6494755155", "type": "landline", "label": "alternative", "source": "profile" }
  ],
  "phoneSource": "profile",
  "phonesUnparsed": [],
  "website": "https://www.asteroelectrical.co.nz/",
  "websiteSource": "profile",
  "facebookUrl": null,
  "instagramUrl": null,
  "linkedinUrl": null,
  "socialLinks": {},
  "primaryContact": "Eugene",
  "physicalAddress": "1 Manaia Place, Mairangi Bay, 0630",
  "postcode": "0630",
  "postalAddress": "1 Manaia Place, Mairangi Bay, 0630",
  "locality": "Mairangi Bay",
  "primaryCategory": "Electricians / Electrical Contractors",
  "categories": ["Solar power", "EV Charger Install and Maintenance", "Emergency Electricians", "Electricians / Electrical Contractors", "Alarms & Security"],
  "categorySlugs": ["solar-power", "EV Charger install and maintenance", "emergency-electricians", "electricians-electrical-contractors", "alarms-security"],
  "areasServed": ["Takapuna", "Northcote", "North Shore City and Suburbs", "Mairangi Bay", "Albany"],
  "about": "I have got over 20 years' experience in electrical business",
  "whatWeDo": ["Wiring new houses", "Re-wirng old houses", "Troubleshooting", "Solar system installation", "All electrical maintenance"],
  "availability": "This week/ASAP",
  "approvalPercent": 98.6,
  "ratingCount": 60,
  "latestReviewDate": "2026-07-13",
  "otherRatingsCount": null,
  "mediaCount": 10,
  "associations": ["Electrical Worker's Registration Board"],
  "licensedBuildingPractitioner": false,
  "electricalWorkersRegistrationBoard": true,
  "plumbersGasfittersDrainlayersBoard": false,
  "noCowboysBadges": ["Registered - serious about their reputation on NC", "Customer Preferred - well liked in the NC community", "Bronze business - over 50 ratings"],
  "latitude": -36.728382,
  "longitude": 174.754715,
  "favouritesCount": 0,
  "pageViews": 9723,
  "logoUrl": null,
  "profileUrl": "https://www.nocowboys.co.nz/businesses/Astero-Electrical",
  "foundVia": ["https://www.nocowboys.co.nz/search/new-zealand/all-categories/5?registered=1&per-page=100"],
  "scrapedAt": "2026-09-23T06:01:12.239Z"
}
```

#### Field reference

- `businessId`, `slug`, `profileUrl` — NoCowboys' own id and profile page. `slug` is the dedupe key (the site treats it case-insensitively).
- `phone`, `phoneE164`, `phoneType` — the first of the business's own numbers; `mobilePhone` / `landlinePhone` (+ E.164) — the first of each kind; `phones` — every distinct number with `type` (`mobile`, `landline`, `freephone`, or `null` for a 7-digit number printed without its area code), `label` (`primary` / `alternative`) and `source`.
- `phoneSource` — `profile` (the number shown on the page) or `structuredData` (the page shows no number but its own LocalBusiness data carries one — 3.4% of rows).
- `phonesUnparsed` — numbers the site stores in a form nobody can dial (a vanity number with its letters stripped, "0800"; two numbers welded into one, "092703078094409255"), kept exactly as printed and never put in `phone`.
- `website`, `websiteSource` — `profile` (the page's Website link, with NoCowboys' own `utm_*` tracking suffix removed) or `structuredData`.
- `physicalAddress`, `postcode`, `postalAddress` — as printed; the postcode only when the address ends in one.
- `locality`, `primaryCategory` — from the page headline; `categories` / `categorySlugs`, `areasServed` — the business's "Categories we service" and "Areas we service".
- `approvalPercent` (0–100, `null` with no ratings), `ratingCount`, `latestReviewDate` (an activity signal: a business last rated in 2012 is probably not trading the same way), `otherRatingsCount` (the page's "Other Ratings (n)" tab), `mediaCount`, `favouritesCount`, `pageViews`.
- `associations` — every association badge on the page; `licensedBuildingPractitioner`, `electricalWorkersRegistrationBoard`, `plumbersGasfittersDrainlayersBoard` — `true` when that board's badge is shown. **These are NoCowboys badges, not a check against the official register** — verify a licence on the board's own register before relying on it.
- `noCowboysBadges` — Registered, Customer Preferred, Over 10/25 ratings, Bronze/Silver/Gold business.
- `primaryContact`, `about`, `whatWeDo`, `availability`, `socialLinks` (`facebookUrl`, `instagramUrl`, `linkedinUrl`), `latitude`/`longitude`, `logoUrl` — registered pages.
- `recentReviews` (only with `includeReviews`) — `date`, `ratingPercent`, `author` (reviewer's first name as shown), `text` (the site's own excerpt, cut at ~500 characters).
- `foundVia` — the search (or sitemap / URL) that first found the business.

### How it works — and the traps it handles

- **Neighbours' phone numbers are on the page.** An unregistered business's page prints "Before hiring them, consider these registered businesses nearby" with **four other businesses' phone numbers**. The actor cuts that box out before reading anything, takes phones only from the business's own `tel:` links (and its own structured data), and **fails the run** if any delivered number is not on the business's own page or appears in its own page's neighbour box (0 across the 18,171-business directory run, 14,197 of whose pages carried the box; 2 numbers were withheld because a business's own tel link repeated a neighbour's number).
- **Searches stop at 7,000 results.** Past result 7,000 a search answers 200 with *zero* businesses while still stating its full total (16,410 for all of New Zealand), then HTTP 500. The actor walks the served window and splits a larger search region by region (or, inside a region, category by category) — it never reads the empty pages as "end of data", and reports any window stop in `RUN_SUMMARY`.
- **The search does not list every business.** Businesses filed under no region or category are only in the site's sitemap (1,878 of its 8,580 business URLs appeared in no search in the whole-directory run). `allBusinesses` adds them.
- **Registered-only by default on the site.** The site's search shows only registered businesses unless you tick "Show unregistered businesses"; the actor does that for you (`includeUnregistered`).
- **Profile pages are up to 710 KB** (a busy business prints every one of its hundreds of reviews). A page cut short under HTTP 200 is detected (it must end in `</html>`) and re-fetched; HTTP 200 with a challenge page is a failed request, never "no businesses". If more than 20% of pages fail after retries, the run stops and says so rather than shipping a partial list.
- **The same number under two businesses** happens (one owner, two listings). It is reported in `RUN_SUMMARY.phones`, not withheld — each business published it as its own.

### Pricing

Pay per event: **$0.004 per business delivered** ($4 per 1,000). A run with the default input (`maxResults` 75) costs at most $0.30. Filtered-out businesses, duplicates across your searches and unreadable pages are never charged. If you set a maximum charge for the run, the actor stops delivering exactly at your budget.

### Data limits

- **No e-mail.** NoCowboys never prints a business e-mail — contact goes through its own e-mail / SMS form. Use the `website` with a contact-page extractor if you need e-mail.
- **No NZBN.** NoCowboys pages do not show the business's NZBN or company number (0 of the pages measured).
- **Unregistered pages are thin:** phone (98%) and usually an address, but no website link, contact name, about text or badges on the page — the `website` for an unregistered business comes from the page's own structured data where the business once gave one (17.6% of unregistered businesses).
- **Stale listings exist.** The directory keeps businesses rated years ago; `latestReviewDate` (2012 on some) and `ratingCount` help you filter.
- **Board badges are the directory's, not the register's** (see Field reference).
- **A whole-directory run takes ~20 minutes** (measured 19.7 min at `concurrency` 6, 1.2 GB of pages); category × region searches take seconds.

### Source

Data is read from public pages of nocowboys.co.nz: the `/search/<location>/<category>` listings (with the site's own "Show unregistered businesses" option), `/businesses/<name>` profiles and `/sitemap.xml`.

# Actor input Schema

## `categories` (type: `array`):

NoCowboys category slugs, as in nocowboys.co.nz/search/<location>/<category>: plumbers-plumbing-contractors, electricians-electrical-contractors, builders, roofing-contractors, painters-painting-contractors, drainlayers, landscaping-services, tilers-tile-contractors, heat-pump, … (229 in total), or all-categories. Names are normalised ("Plumbers / Plumbing Contractors" → plumbers-plumbing-contractors). Each category is searched once per location.

## `locations` (type: `array`):

new-zealand, a region (auckland, wellington, canterbury, waikato-king-country, bay-of-plenty, otago, hawkes-bay, manawatu, northland, nelson-bays, southland, taranaki, gisborne, thames-coromandel, wairarapa, wanganui, marlborough, west-coast) or a town/suburb slug (paraparaumu, hamilton, tauranga, …). A business listed in several searches is delivered and charged once.

## `includeUnregistered` (type: `boolean`):

On (default) = every business customers have rated, as the site's own "Show unregistered businesses" option (plumbers NZ-wide: 1,046 instead of 117). Unregistered businesses still publish their phone number (measured 97% fill) but have no website link, contact name or map pin on the page. Off = registered (paying) businesses only.

## `allBusinesses` (type: `boolean`):

Every business on NoCowboys: all-categories for all of New Zealand, split region by region past the site's 7,000-result search limit, plus the businesses listed only in the site's sitemap (filed under no region). About 18,000 businesses. Set Max businesses to 0 for no limit.

## `businessUrls` (type: `array`):

Specific profiles to fetch, e.g. https://www.nocowboys.co.nz/businesses/peter-jackson-plumbing or just peter-jackson-plumbing. When given, only these are fetched and the search fields above are ignored.

## `requirePhone` (type: `boolean`):

Skip businesses whose page publishes no phone. Skipped businesses are never charged.

## `minRatingCount` (type: `integer`):

Keep only businesses with at least this many NoCowboys authenticated ratings. Applied to the search result before the profile is opened. Skipped businesses are never charged.

## `minApprovalPercent` (type: `number`):

Keep only businesses whose NoCowboys approval rating is at least this (0-100). Businesses with no ratings have no approval and are skipped when this is above 0. Skipped businesses are never charged.

## `includeReviews` (type: `boolean`):

Adds recentReviews: date, approval %, reviewer first name and text of the business's most recent ratings, newest first (the page's structured data carries up to 80). Same price per business.

## `maxReviewsPerBusiness` (type: `integer`):

How many recent reviews to include per business when reviews are on (1-80).

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

Stop after delivering this many businesses (cost guard). Set 0 for no limit — every business in every search.

## `maxPagesPerSearch` (type: `integer`):

Limit how deep each search goes (100 businesses per page). 0 = every page the site serves.

## `concurrency` (type: `integer`):

How many pages are fetched at once. The default is gentle on the site and fast enough for thousands of businesses.

## `requestTimeoutSecs` (type: `integer`):

Hard deadline for a single page request; a slow request is retried.

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

Not needed: nocowboys.co.nz answers Apify's servers directly (measured 2026-09-23). If you ever see blocks, choose Apify Proxy with the RESIDENTIAL group.

## Actor input object example

```json
{
  "categories": [
    "plumbers-plumbing-contractors"
  ],
  "locations": [
    "wellington"
  ],
  "includeUnregistered": true,
  "allBusinesses": false,
  "businessUrls": [],
  "requirePhone": false,
  "minRatingCount": 0,
  "minApprovalPercent": 0,
  "includeReviews": false,
  "maxReviewsPerBusiness": 10,
  "maxResults": 20,
  "maxPagesPerSearch": 0,
  "concurrency": 4,
  "requestTimeoutSecs": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `businesses` (type: `string`):

The dataset of scraped nocowboys.co.nz businesses (one item per business).

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

Measured totals: site-stated vs unique businesses per search, per-field fill, phone audit (neighbour numbers withheld), what was not charged and why.

# 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 = {
    "categories": [
        "plumbers-plumbing-contractors"
    ],
    "locations": [
        "wellington"
    ],
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapersdelight/nocowboys-nz-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 = {
    "categories": ["plumbers-plumbing-contractors"],
    "locations": ["wellington"],
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapersdelight/nocowboys-nz-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 '{
  "categories": [
    "plumbers-plumbing-contractors"
  ],
  "locations": [
    "wellington"
  ],
  "maxResults": 20
}' |
apify call scrapersdelight/nocowboys-nz-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scrapersdelight/nocowboys-nz-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/6Aw74uyh7scyE5upa/builds/aDB4hzdR5tMqj5XZl/openapi.json
