# TendersOnTime Scraper (`solidcode/tendersontime-scraper`) Actor

\[💰 $0.9 / 1K] Extract government tenders, RFPs and bids from TendersOnTime — title, TOT reference, country, posting date, deadline, days left, contract value and currency. Filter by keyword, 248 countries, 16 trade blocs, dates and value. Active tenders plus archives back to 2017.

- **URL**: https://apify.com/solidcode/tendersontime-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.90 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## TendersOnTime Scraper

Pull government tender, RFP, and bid notices from TendersOnTime at scale — titles, TOT reference numbers, countries, posting dates, closing deadlines, days remaining, and published contract values, across 248 countries and 16 trade blocs. Search 1.27 million open tenders or dig into 33+ million archived notices going back to 2017. Built for bid managers, proposal teams, government-contract consultants, and B2G market analysts who need to spot the right public tender while there is still time to respond — without checking dozens of national portals one by one.

### Why This Scraper?

- **1.27 million live tenders plus 33+ million archived notices** — search everything currently open, or switch to one of three archive windows (2025–2026, 2021–2024, 2020 and earlier) for market history and win/loss research going back to 2017.
- **291 place selections: 248 countries, 27 regions, 16 trade blocs** — target a single country, a sub-region like Western Africa or South-Eastern Asia, or an economic group such as the European Union, GCC, ASEAN, BRICS, MENA, ECOWAS, COMESA, SAARC, CIS, or G20. No hand-built search links.
- **NCB vs ICB competition filter** — isolate the 731,789 International Competitive Bidding notices that accept foreign suppliers, or restrict to National Competitive Bidding when you only want domestic opportunities.
- **Exact-phrase matching that measurably cuts noise** — searching "water treatment" as a loose keyword returns 1,735 tenders; flip exact matching on and you get the 1,318 that actually contain the phrase.
- **`daysToDeadline` computed on every row** — bid urgency arrives as a plain integer, so you can sort or filter a spreadsheet straight down to what closes this week. No date math required.
- **Deadline window and posting window filter independently** — pull "closes between 1 and 5 September" for pipeline planning, or "posted in the last 24 hours" for a clean daily lead delta, or both at once.
- **Contract-value threshold with three comparisons** — more than, less than, or equal to any figure, so a team that only bids above $1M never pays for rows below it.
- **Exact lookup by TOT reference number or pasted tender link** — refresh the tenders you already track without re-running a search, and paste links in either the `/tenders-details/…` or country-path format.
- **Four sort orders and an exact result cap** — "Deadline soonest" for triage, "Newest first" for daily monitoring, and a `maxResults` cap honoured to the row: ask for 7 and you get exactly 7. 300 notices land in about four seconds, 1,700+ in around thirty.
- **Multiple keywords in one run, deduplicated** — search "solar", "photovoltaic" and "battery storage" together and every keyword contributes its share of your result cap, with a `searchKeyword` column on each row telling you which one matched. A tender that answers two keywords is billed and delivered once.

### Use Cases

**Bid Discovery & Pipeline Building**

- Surface every open tender matching your keywords across all 248 covered countries in one run
- Triage by days remaining and work only the notices you can still realistically win
- Screen by contract value before assigning a proposal writer to a bid
- Keep a watchlist of specific tenders by reference number and refresh their deadlines daily

**Market Intelligence & Sizing**

- Measure how many tenders a country or bloc floats per month using the posting-date window
- Compare public procurement volume across the EU, GCC, ASEAN, and BRICS from a single dataset
- Chart demand for a category — "solar", "water treatment", "road construction" — from 2017 to today
- Size a new geography before committing sales or delivery resources to it

**Competitive & Win/Loss Analysis**

- Reconstruct what was tendered and when using the 2021–2024 archive window
- Benchmark your pricing against historic published contract values in the same country
- Identify which markets publish International Competitive Bidding notices you are eligible for
- Spot recurring buyers by filtering on purchaser names such as "ministry", "railway", or "municipal"

**Lead Generation & B2G Sales**

- Build a weekly lead list from newest-first tenders posted in the last seven days
- Route notices to regional sales teams automatically using the country and country-code fields
- Focus reps on tenders above a minimum value so no time is spent on sub-scale opportunities
- Feed qualified tender leads straight into a CRM with reference number and source link attached

**Monitoring & Alerting**

- Run a daily posting-window pull so every row is genuinely new since your last run
- Alert your team when a tracked tender drops below a set number of days remaining
- Watch a named buyer's activity over time and react the day a new notice appears
- Push matching tenders into Slack, email, or a spreadsheet the moment a run finishes

### Getting Started

#### Newest Tenders Worldwide

The simplest run — the 50 most recently posted open tenders anywhere:

```json
{
    "maxResults": 50
}
```

#### Keyword Search Across a Trade Bloc

Countries and blocs are picked by name from a dropdown in the Apify interface. In JSON they appear as their matching selection codes — `pol_2009` is the European Union. The two keywords share the 200-row cap, so each one contributes about 100 rows, and anything one keyword cannot fill is handed to the other:

```json
{
    "keywords": ["solar", "photovoltaic"],
    "countries": ["pol_2009"],
    "exactKeywords": true,
    "maxResults": 200
}
```

#### Deadline Triage for Bids You Can Still Win

Tenders closing in a specific window, worth over 1,000,000, soonest deadline first:

```json
{
    "keywords": ["water treatment"],
    "deadlineFrom": "2026-09-01",
    "deadlineTo": "2026-09-30",
    "tenderValue": 1000000,
    "tenderValueCondition": "more_than",
    "sortBy": "Bid_Deadline_1 ASC",
    "maxResults": 100
}
```

#### Refresh Tenders You Already Track

Paste tender links, reference numbers, or both — one row comes back per tender, with `daysToDeadline` recalculated. A link and its reference number point to the same tender, so you are only ever charged for it once:

```json
{
    "tenderUrls": [
        "https://www.tendersontime.com/tenders-details/supply-and-delivery-various-agricultural-items-8b90e8f/",
        "https://www.tendersontime.com/india/details/repair-maintenance-and-installation-8b8c713/"
    ],
    "totRefNumbers": ["146327315", "146345615"]
}
```

#### Full-Featured Example

International bidding opportunities from ministries in the Gulf, posted this month, sorted by deadline:

```json
{
    "keywords": ["road construction", "highway"],
    "countries": ["pol_2010", "103514"],
    "exactKeywords": false,
    "status": "1",
    "competition": "ICB",
    "purchaserName": "ministry",
    "postedFrom": "2026-07-01",
    "postedTo": "2026-07-31",
    "sortBy": "Bid_Deadline_1 ASC",
    "maxResults": 500
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `keywords` | string\[] | `[]` | Words or phrases to search for, e.g. "solar", "water treatment", "road construction". Each keyword runs as its own search and the results are combined into one list with duplicates removed, sharing your "Max Results" allowance between them. Leave empty to browse the newest tenders across every country. |
| `tenderUrls` | string\[] | `[]` | Paste TendersOnTime tender page links to pull those exact tenders. Useful for refreshing tenders you are already tracking. Copy the link straight from the tender page so it keeps its ending reference code. These are looked up before any keyword search, and your "Max Results" setting also limits how many of them are collected. |
| `totRefNumbers` | string\[] | `[]` | Look up tenders by their TendersOnTime reference number (the "TOT Ref. No." shown on every tender, e.g. 146327315). One tender is returned per number. These are looked up before any keyword search, and your "Max Results" setting also limits how many of them are collected. |

#### Where & What Kind

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `countries` | select (multi) | `[]` | Limit results to these places. Pick individual countries, a whole continent or sub-region, or an economic group such as the European Union, GCC or BRICS. 291 options in total. Leave empty to search worldwide. |
| `exactKeywords` | boolean | `false` | Only return tenders containing your keyword as an exact phrase. Off by default, which finds more results by matching the individual words too. |
| `status` | select | `Active tenders (open now)` | Which set of tenders to search. "Active" covers open tenders that have not closed yet. The three archive options — 2025–2026, 2021–2024, and 2020 and earlier — search historical tenders, which is useful for market research and win/loss analysis. |
| `competition` | select | `Any competition type` | Restrict to National Competitive Bidding (open to domestic suppliers) or International Competitive Bidding (open to foreign suppliers). This narrows which tenders are returned; the bidding type itself is not published in the results, so there is no matching output column. |
| `purchaserName` | string | *(empty)* | Only return tenders floated by buyers whose name contains this text, e.g. "ministry", "railway", "municipal". This narrows which tenders are returned; the buyer's name itself is not published in the results, so there is no matching output column. |

#### Dates & Value

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `deadlineFrom` | date | *(empty)* | Only include tenders closing on or after this date (YYYY-MM-DD). Use with "Deadline To" to find tenders you still have time to bid on. |
| `deadlineTo` | date | *(empty)* | Only include tenders closing on or before this date (YYYY-MM-DD). |
| `postedFrom` | date | *(empty)* | Only include tenders published on or after this date (YYYY-MM-DD). Handy for daily or weekly lead pulls. |
| `postedTo` | date | *(empty)* | Only include tenders published on or before this date (YYYY-MM-DD). |
| `tenderValue` | integer | *(unset)* | Filter by the estimated contract value, compared using the condition below. Leave empty for no value filter. Note that many tenders publish no value at all ("Refer Document") and are excluded once you set this. |
| `tenderValueCondition` | select | `More than` | How to compare the tender value above: More than, Equal to, or Less than. Ignored when no tender value is set. |

#### Sorting & Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | select | `Newest first (most recently posted)` | Order results are collected in. Four options: Newest first, Oldest first, Deadline soonest, Deadline latest. "Deadline soonest" is the most useful for finding tenders you can still bid on; "Newest first" is best for daily lead monitoring. |
| `maxResults` | integer | `50` | Maximum number of tenders to return in total, across every keyword, reference number and pasted link. This is an exact cap — you never receive or pay for more than this. The highest value accepted is 50,000 tenders per run; 0 means "no cap" and also collects up to that same 50,000. |

### Output

One flat row per tender notice — 14 fields, every one verified against live data.

```json
{
    "totRefNumber": "146345615",
    "title": "Supply, installation and commissioning of a 5 MW solar photovoltaic power plant including 33 kV evacuation works",
    "url": "https://www.tendersontime.com/tenders-details/supply-installation-and-commissioning-5-mw-solar-photovoltaic-power-plant-8b90e8f/",
    "country": "India",
    "countryCode": "IN",
    "postingDate": "2026-07-31T20:45:52Z",
    "deadline": "2026-08-25T00:00:00Z",
    "daysToDeadline": 24,
    "tenderValue": 1168000.0,
    "tenderValueText": "INR 1168000",
    "currency": "INR",
    "status": "active",
    "searchKeyword": "solar",
    "scrapedAt": "2026-08-01T09:12:04Z"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `totRefNumber` | string | TendersOnTime reference number — the tender's unique identifier, and the key to look it up again later |
| `title` | string | The tender's published summary line, describing what is being procured |
| `url` | string | Direct link to the tender page on TendersOnTime |
| `country` | string | Country of the purchasing authority, e.g. "India", "United Kingdom" |
| `countryCode` | string | Two-letter ISO country code, e.g. "IN", "GB" |
| `postingDate` | string | When the tender was published, ISO 8601 with a `Z` suffix |
| `deadline` | string | Bid submission deadline, ISO 8601 with a `Z` suffix |
| `daysToDeadline` | number | Whole days between now and the deadline, counted in UTC. Negative once the deadline has passed. `null` for the small number of tenders published without a real closing date |
| `tenderValue` | number | Estimated contract value as a number, on the notices that publish a figure |
| `tenderValueText` | string | The value exactly as published, e.g. "INR 1168000" or "Refer Document". Present on every notice that publishes a value line |
| `currency` | string | Currency code matching `tenderValue`, e.g. "INR", "USD", "EUR". Set on the same rows as `tenderValue`, and `null` on the same rows too |
| `status` | string | Which set the tender came from: `active`, `archive-2025-2026`, `archive-2021-2024`, or `archive-2020-and-earlier`. A tender fetched directly by reference number or link belongs to no chosen set, so it reads `active` while it is still open and `null` once it has closed — use `daysToDeadline` to tell the two apart |
| `searchKeyword` | string | The keyword that matched this tender, so you can tell which search produced it. `null` for browse runs and direct lookups |
| `scrapedAt` | string | ISO 8601 timestamp of when the row was collected |

### Tips for Best Results

- **Pair International Competitive Bidding with a trade bloc.** Setting `competition` to ICB and `countries` to the EU, GCC, or ASEAN gives you exactly the cross-border opportunities a foreign supplier is eligible to bid on — the highest-signal filter combination in this actor.
- **Use the posting-date window for a daily delta.** Set `postedFrom` to yesterday and schedule the run each morning. Every row that comes back is new since your last pull, so there is nothing to de-duplicate on your side.
- **Sort by "Deadline soonest" when you are triaging.** Combine it with a `deadlineFrom`/`deadlineTo` window to get a clean worklist of everything closing in the next two weeks, ordered by urgency.
- **Turn on exact matching for two-word keywords.** Common word pairs like "water treatment" pull in a lot of loose matches; exact-phrase mode trimmed that search from 1,735 tenders to 1,318 — roughly a quarter less noise.
- **Know when a value figure exists.** About 37% of notices publish a parseable amount, which lands in `tenderValue` and `currency`. The rest publish text such as "Refer Document", which always ships in `tenderValueText`, so nothing is lost. Setting a `tenderValue` filter excludes the text-only notices — leave it empty when you want maximum coverage.
- **"Active" is not a recency filter.** It means "not yet closed", and includes notices posted as far back as 2017. If you only want recent postings, add a `postedFrom` date rather than relying on status alone.
- **Start small, then scale.** Run with `maxResults` at 20–50 to confirm the filter combination returns what you expect, then raise it. The cap is exact, so a test run never costs more than the number you asked for.

### Pricing

**From $0.90 per 1,000 results** — pay only for the tender rows you actually receive, with the exact `maxResults` cap guaranteeing you are never billed for a rounded-up page. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows the total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.105 | $0.100 | $0.095 | $0.090 |
| 1,000 | $1.05 | $1.00 | $0.95 | $0.90 |
| 10,000 | $10.50 | $10.00 | $9.50 | $9.00 |
| 100,000 | $105.00 | $100.00 | $95.00 | $90.00 |

A "result" is one tender row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications when new tenders appear
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate public-procurement research, bid discovery, market intelligence, and B2G sales work. Tender notices are published by government and public-sector bodies for the express purpose of attracting bidders. Users are responsible for complying with applicable laws and TendersOnTime's terms of service, and for verifying tender details and deadlines against the official issuing authority before submitting any bid. Do not use extracted data for spam, harassment, or any illegal purpose.

# Actor input Schema

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

Words or phrases to search for, e.g. 'solar', 'water treatment', 'road construction'. Each keyword runs as its own search and the results are combined into one list with duplicates removed, sharing your 'Max Results' allowance between them. Leave empty to browse the newest tenders across every country.

## `tenderUrls` (type: `array`):

Paste TendersOnTime tender page links (e.g. https://www.tendersontime.com/india/details/some-tender-8b8c713/) to pull those exact tenders. Useful for refreshing tenders you are already tracking. Copy the link straight from the tender page so it keeps its ending reference code. These are looked up before any keyword search, and your 'Max Results' setting also limits how many of them are collected.

## `totRefNumbers` (type: `array`):

Look up tenders by their TendersOnTime reference number (the 'TOT Ref. No.' shown on every tender, e.g. 146327315). One tender is returned per number. These are looked up before any keyword search, and your 'Max Results' setting also limits how many of them are collected.

## `countries` (type: `array`):

Limit results to these places. Pick individual countries, a whole continent or sub-region, or an economic group such as the European Union, GCC or BRICS. Leave empty to search worldwide.

## `exactKeywords` (type: `boolean`):

Only return tenders containing your keyword as an exact phrase. Off by default, which finds more results by matching the individual words too.

## `status` (type: `string`):

Which set of tenders to search. 'Active' covers open tenders that have not closed yet. The archive options search historical tenders, which is useful for market research and win/loss analysis.

## `competition` (type: `string`):

Restrict to National Competitive Bidding (open to domestic suppliers) or International Competitive Bidding (open to foreign suppliers). Leave as 'Any' to include both. This narrows which tenders are returned; the bidding type itself is not published in the results.

## `purchaserName` (type: `string`):

Only return tenders floated by buyers whose name contains this text, e.g. 'ministry', 'railway', 'municipal'. This narrows which tenders are returned; the buyer's name itself is not published in the results.

## `deadlineFrom` (type: `string`):

Only include tenders closing on or after this date (YYYY-MM-DD). Use with 'Deadline To' to find tenders you still have time to bid on.

## `deadlineTo` (type: `string`):

Only include tenders closing on or before this date (YYYY-MM-DD).

## `postedFrom` (type: `string`):

Only include tenders published on or after this date (YYYY-MM-DD). Handy for daily or weekly lead pulls.

## `postedTo` (type: `string`):

Only include tenders published on or before this date (YYYY-MM-DD).

## `tenderValue` (type: `integer`):

Filter by the estimated contract value, compared using the option below. Leave empty for no value filter. Note that many tenders publish no value at all ('Refer Document') and are excluded once you set this.

## `tenderValueCondition` (type: `string`):

How to compare the tender value above. Ignored when no tender value is set.

## `sortBy` (type: `string`):

Order results are collected in. 'Deadline soonest' is the most useful for finding tenders you can still bid on; 'Newest first' is best for daily lead monitoring.

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

Maximum number of tenders to return in total, across every keyword, reference number and pasted link. This is an exact cap — you never receive or pay for more than this. The highest value accepted is 50,000 tenders per run; 0 means 'no cap' and also collects up to that same 50,000.

## Actor input object example

```json
{
  "keywords": [],
  "tenderUrls": [],
  "totRefNumbers": [],
  "countries": [],
  "status": "1",
  "tenderValueCondition": "more_than",
  "sortBy": "Posting_Date DESC",
  "maxResults": 50
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of tenders with the headline fields: title, country, posting date, deadline, days left, value and link.

## `details` (type: `string`):

Every field on each tender, including the TOT reference number, country code, numeric value with currency, tender status and the keyword that matched.

# 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": [],
    "tenderUrls": [],
    "totRefNumbers": [],
    "countries": [],
    "exactKeywords": false,
    "status": "1",
    "competition": "",
    "purchaserName": "",
    "deadlineFrom": "",
    "deadlineTo": "",
    "postedFrom": "",
    "postedTo": "",
    "tenderValueCondition": "more_than",
    "sortBy": "Posting_Date DESC",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/tendersontime-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": [],
    "tenderUrls": [],
    "totRefNumbers": [],
    "countries": [],
    "exactKeywords": False,
    "status": "1",
    "competition": "",
    "purchaserName": "",
    "deadlineFrom": "",
    "deadlineTo": "",
    "postedFrom": "",
    "postedTo": "",
    "tenderValueCondition": "more_than",
    "sortBy": "Posting_Date DESC",
    "maxResults": 50,
}

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

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [],
  "tenderUrls": [],
  "totRefNumbers": [],
  "countries": [],
  "exactKeywords": false,
  "status": "1",
  "competition": "",
  "purchaserName": "",
  "deadlineFrom": "",
  "deadlineTo": "",
  "postedFrom": "",
  "postedTo": "",
  "tenderValueCondition": "more_than",
  "sortBy": "Posting_Date DESC",
  "maxResults": 50
}' |
apify call solidcode/tendersontime-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/tendersontime-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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