# OpenAlex Scraper (`solidcode/openalex-scraper`) Actor

\[💰 $7.0 / 1K] Extract scholarly works, authors, institutions, journals, publishers, funders, and topics from OpenAlex. Search by keyword, narrow by year, country, open access, and citations, or pull specific records by ID, DOI, or ORCID.

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

## Pricing

from $7.00 / 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

## OpenAlex Scraper

Pull the world's scholarly record from OpenAlex at scale — papers, authors, institutions, journals, publishers, funders, and topics, complete with reconstructed abstracts, citation counts, open-access status, and ORCID/ROR/ISSN identifiers. Search by keyword, narrow with structured filters, or look records up directly by OpenAlex ID, DOI, ORCID, or ROR. Built for researchers, bibliometric analysts, R\&D and competitive-intelligence teams, and grant offices who need a clean, structured slice of the 250-million-work OpenAlex catalog without hand-writing raw filter syntax or stitching pages together one at a time.

### Why This Scraper?

- **All 7 OpenAlex catalogs in one actor** — works (papers, books, datasets), authors, institutions, journals & sources, publishers, funders, and topics. Flip one dropdown to switch catalogs; every run lands as a clean dataset.
- **250 million+ works and 90 million+ author profiles** — the full OpenAlex corpus, including 100,000+ institutions and thousands of journals, publishers, and funders, all searchable by keyword.
- **Reconstructed abstracts** — OpenAlex ships abstracts as an inverted index, not readable text; this actor rebuilds each one into a plain, ready-to-read paragraph on the work row.
- **Direct lookup by OpenAlex ID, DOI, ORCID, or ROR** — paste a mixed list of identifiers or openalex.org URLs and pull those exact records, correctly routed to the right catalog.
- **Structured filters, no query syntax** — publication date range, a 40-country picker, open-access-only toggle, and a minimum-citation threshold, each mapped to the correct catalog field so you never waste a billed result on a broken filter.
- **Four sort orders** — most-cited, newest-first, relevance (best with a keyword), and most-works, so you surface high-impact papers or catch the freshest publications on demand.
- **Rich work rows** — title, ordered authors with affiliations and ORCIDs, journal, publication year, citation count, field-weighted citation impact, open-access status with a free full-text link, DOI, topics, keywords, SDGs, and funders.
- **Entity metrics built in** — every author, institution, and journal row carries works count, cited-by count, h-index, i10-index, and its ORCID, ROR, or ISSN.
- **Up to 100,000 results per run** — with an optional polite-pool email for faster throughput and deep result sets handled automatically.

### Use Cases

**Literature Review & Discovery**

- Build a ranked reading list on a new topic with most-cited works first
- Pull every open-access paper in a field with a free full-text link on each row
- Reconstruct abstracts across hundreds of papers to skim without opening each one
- Assemble a bibliography by pasting a batch of DOIs

**Bibliometrics & Research Analytics**

- Track citation counts and field-weighted citation impact across a topic over time
- Analyze author productivity with works count, h-index, and i10-index
- Map an institution's output and total citations for scientometric studies
- Compare journals by works count and open-access share

**Competitive Intelligence & R\&D**

- Monitor what a target institution or research group is publishing on a topic
- Detect emerging sub-fields from a burst of recent, highly cited work
- Benchmark a competitor's patent-adjacent academic output by author or affiliation
- Surface the funders backing research in your domain

**Grant & Funding Research**

- Find the funders active in a research area and quantify their output
- Assemble prior-work bibliographies to justify a new grant proposal
- Identify highly cited authors to recruit as collaborators or reviewers
- Scope a novel research question by mapping citation gaps in the literature

**Institutional Benchmarking**

- Rank institutions in a country by works count and total citations
- Profile a university's authors, top topics, and h-index distribution
- Compare open-access adoption across peer institutions
- Look up any institution directly by its ROR identifier

**Academic Tools & Lead Generation**

- Power a discovery or recommendation feature with structured scholarly data
- Enrich an existing paper database with citation metrics and open-access links
- Build author-disambiguation pipelines keyed on ORCID
- Feed a research dashboard with fresh, scheduled catalog pulls

### Getting Started

#### Simple Keyword Search

The simplest possible run — the top 100 most-cited papers on a topic:

```json
{
    "entity": "works",
    "searchQuery": "machine learning"
}
```

#### Look Up Specific Records by ID, DOI, or ORCID

Paste a mixed list of identifiers — each is routed to the right catalog automatically:

```json
{
    "entity": "works",
    "ids": [
        "W2741809807",
        "10.7717/peerj.4375",
        "https://openalex.org/W2755950973"
    ]
}
```

For an author lookup, switch `entity` to `authors` and paste ORCIDs or author IDs.

#### Filtered Works Search (Date + Country + Open Access + Sort)

Recent, open-access, US-affiliated papers on a topic, newest first:

```json
{
    "entity": "works",
    "searchQuery": "large language models",
    "fromPublicationDate": "2023-01-01",
    "toPublicationDate": "2025-12-31",
    "countryCode": "US",
    "openAccessOnly": true,
    "sortBy": "publication_date",
    "maxResults": 500
}
```

#### Institution Profiles by Country

Pull the most-published institutions in a country with their citation metrics:

```json
{
    "entity": "institutions",
    "countryCode": "GB",
    "minCitations": 100000,
    "sortBy": "works_count",
    "maxResults": 200
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `entity` | select | `Works (papers, books, datasets)` | Which catalog to pull from: Works, Authors (researcher profiles), Institutions (universities & labs), Journals & sources, Publishers, Funders, or Topics. |
| `searchQuery` | string | `machine learning` | Full-text search. Matches titles and abstracts for works; names for every other catalog. Leave blank to browse everything and rely on the filters. |
| `ids` | string\[] | `[]` | Fetch specific records directly — OpenAlex IDs, openalex.org URLs, DOIs, ORCIDs, or ROR IDs. Must match the catalog above. When set, the keyword and filters are ignored. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `fromPublicationDate` | string | `""` | Works only — include works published on or after this date (YYYY-MM-DD). |
| `toPublicationDate` | string | `""` | Works only — include works published on or before this date (YYYY-MM-DD). |
| `countryCode` | select | `Any country` | Restrict to one of 40 countries. Matches an author's institution country for works, and the entity's own country for authors and institutions. Ignored for publishers, funders, and topics. |
| `openAccessOnly` | boolean | `false` | Only freely readable records. Applies to works and journals & sources. |
| `minCitations` | integer | `0` | Only records cited at least this many times. Applies to works, authors, institutions, journals, publishers, and funders. |
| `advancedFilter` | string | `""` | Power users only — a raw OpenAlex filter string merged with the filters above (e.g. `type:article`). Leave blank if you're using the friendly filters. |

#### Results

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `sortBy` | select | `Most cited` | Order results: Most cited, Newest first (works only), Relevance (best with a keyword), or Most works (authors/sources/etc.). |
| `maxResults` | integer | `100` | Cap on records to collect. Set to `0` for as many as the catalog returns. Ignored when you fetch specific IDs — those are always all collected. |
| `email` | string | `""` | Optional. Providing an email uses OpenAlex's faster polite pool. It's only sent to OpenAlex and never stored. |

### Output

Every run produces one of two row shapes. Works produce a rich paper row (with a reconstructed abstract); the other six catalogs produce a uniform profile row. Pick the matching view — **Works** or **Authors / Institutions / Sources / etc.** — in the dataset tab.

#### Works (`entity: "works"`)

```json
{
    "id": "https://openalex.org/W2741809807",
    "doi": "https://doi.org/10.7717/peerj.4375",
    "title": "The state of OA: a large-scale analysis of the prevalence and impact of Open Access articles",
    "publicationYear": 2018,
    "publicationDate": "2018-02-13",
    "type": "article",
    "language": "en",
    "authors": ["Heather Piwowar", "Jason Priem", "Vincent Larivière"],
    "authorships": [
        {
            "name": "Heather Piwowar",
            "orcid": "https://orcid.org/0000-0003-1613-5981",
            "position": "first",
            "institutions": ["Impactstory"],
            "countries": ["US"]
        }
    ],
    "sourceName": "PeerJ",
    "sourceId": "https://openalex.org/S1983995261",
    "volume": "6",
    "issue": null,
    "pages": "e4375",
    "isOpenAccess": true,
    "oaStatus": "gold",
    "oaUrl": "https://peerj.com/articles/4375.pdf",
    "citedByCount": 1245,
    "fwci": 18.7,
    "referencedWorksCount": 68,
    "primaryTopic": "Scholarly Communication and Bibliometrics",
    "topics": ["Scholarly Communication and Bibliometrics", "Open Access Publishing"],
    "concepts": ["Open access", "Bibliometrics"],
    "keywords": ["open access", "scholarly publishing"],
    "sdgs": ["Quality education"],
    "funders": ["National Science Foundation"],
    "abstract": "Despite growing interest in Open Access to scholarly literature, there is an unmet need for large-scale, up-to-date, and reproducible studies...",
    "url": "https://openalex.org/W2741809807",
    "scrapedAt": "2026-07-03T14:30:00Z"
}
```

##### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | OpenAlex work ID (openalex.org URL) |
| `doi` | string | DOI URL |
| `title` | string | Work title |
| `publicationYear` | number | Year of publication |
| `publicationDate` | string | Publication date (YYYY-MM-DD) |
| `type` | string | Work type (article, book-chapter, dataset, …) |
| `language` | string | Language code |
| `abstract` | string | Readable abstract, reconstructed from the inverted index |
| `url` | string | openalex.org work link |
| `scrapedAt` | string | ISO timestamp of extraction |

##### Authors & Source

| Field | Type | Description |
|-------|------|-------------|
| `authors` | string\[] | Author display names, in order |
| `authorships` | object\[] | Per-author detail: `name`, `orcid`, `position`, `institutions`, `countries` |
| `sourceName` | string | Host journal or source name |
| `sourceId` | string | OpenAlex source ID |
| `volume` | string | Volume |
| `issue` | string | Issue |
| `pages` | string | Page range |

##### Metrics, Topics & Open Access

| Field | Type | Description |
|-------|------|-------------|
| `citedByCount` | number | Number of works citing this one |
| `fwci` | number | Field-weighted citation impact |
| `referencedWorksCount` | number | Number of works this one cites |
| `isOpenAccess` | boolean | Open-access status |
| `oaStatus` | string | gold / green / hybrid / bronze / closed |
| `oaUrl` | string | Best free full-text link |
| `primaryTopic` | string | Top topic name |
| `topics` | string\[] | All topic names |
| `concepts` | string\[] | Concept names |
| `keywords` | string\[] | Keyword names |
| `sdgs` | string\[] | Sustainable Development Goals |
| `funders` | string\[] | Funder names |

#### Authors / Institutions / Sources / etc. (`entity: "authors"` and the other five)

```json
{
    "id": "https://openalex.org/A5023888391",
    "entityType": "authors",
    "displayName": "Yann LeCun",
    "countryCode": "US",
    "worksCount": 412,
    "citedByCount": 289734,
    "hIndex": 148,
    "i10Index": 389,
    "orcid": "https://orcid.org/0000-0002-6212-3560",
    "ror": null,
    "issn": null,
    "issnL": null,
    "hostOrganizationName": null,
    "description": null,
    "homepageUrl": "http://yann.lecun.com",
    "topics": ["Machine Learning", "Computer Vision"],
    "keywords": ["deep learning", "neural networks"],
    "domain": "Physical Sciences",
    "field": "Computer Science",
    "subfield": "Artificial Intelligence",
    "ids": {
        "openalex": "https://openalex.org/A5023888391",
        "orcid": "https://orcid.org/0000-0002-6212-3560"
    },
    "url": "https://openalex.org/A5023888391",
    "scrapedAt": "2026-07-03T14:30:00Z"
}
```

##### Profile & Metrics

| Field | Type | Description |
|-------|------|-------------|
| `id` | string | OpenAlex entity ID |
| `entityType` | string | Which catalog the row is from |
| `displayName` | string | Entity name |
| `countryCode` | string | Country code, where applicable |
| `worksCount` | number | Number of works |
| `citedByCount` | number | Total citations |
| `hIndex` | number | h-index (authors, institutions, sources) |
| `i10Index` | number | i10-index (authors, institutions, sources) |
| `url` | string | openalex.org entity link |
| `scrapedAt` | string | ISO timestamp of extraction |

##### Identifiers & Classification

| Field | Type | Description |
|-------|------|-------------|
| `orcid` | string | ORCID (authors) |
| `ror` | string | ROR ID (institutions) |
| `issn` | string\[] | ISSNs (journals & sources) |
| `issnL` | string | Linking ISSN (journals & sources) |
| `hostOrganizationName` | string | Parent organization (journals, publishers) |
| `description` | string | Short description, where available |
| `homepageUrl` | string | Homepage link |
| `topics` | string\[] | Top topic names, where applicable |
| `keywords` | string\[] | Keyword names, where applicable |
| `domain` | string | Top-level domain (topics) |
| `field` | string | Field (topics) |
| `subfield` | string | Subfield (topics) |
| `ids` | object | Every external identifier OpenAlex holds for the record |

### Tips for Best Results

- **Use ORCIDs for author disambiguation** — two researchers can share a name, but an ORCID pins the exact person. Paste ORCIDs into the `ids` list for clean, unambiguous author profiles.
- **Set `sortBy` to Newest for scheduled runs** — pair `publication_date` sorting with a `fromPublicationDate` to pick up only fresh works on each run, ideal for topic-monitoring automations.
- **Add a keyword when sorting by relevance** — Relevance ordering needs a search term to rank against; without one it falls back to most-cited.
- **Provide your email for faster throughput** — the `email` field puts requests in OpenAlex's polite pool, which is quicker for large runs. It's sent only to OpenAlex.
- **Reach for the advanced filter for concept and topic IDs** — power users can target specific OpenAlex topic, concept, or institution IDs through `advancedFilter` (e.g. `type:article,authorships.institutions.ror:...`), merged with the friendly filters.
- **Mind which filters apply to which catalog** — the date range is works-only, open-access applies to works and journals, and country is ignored for publishers, funders, and topics. The scraper skips inapplicable filters instead of returning nothing.
- **Start with a small `maxResults` to test** — try 50 to confirm the catalog and filters match your needs, then raise the cap for the full pull.

### Pricing

**From $7.00 per 1,000 results** — a flat rate for every scholarly record you collect, whether it's a rich work row with a reconstructed abstract or an author, institution, or journal profile. 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.84 | $0.79 | $0.75 | $0.70 |
| 1,000 | $8.40 | $7.90 | $7.50 | $7.00 |
| 10,000 | $84.00 | $79.00 | $75.00 | $70.00 |
| 100,000 | $840.00 | $790.00 | $750.00 | $700.00 |

A "result" is any row in the output dataset — one work, author, institution, journal, publisher, funder, or topic. 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 on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

OpenAlex is an open, free catalog of the global research system, and its data is released into the public domain under a CC0 license. This actor is designed for legitimate academic research, bibliometrics, literature review, and market intelligence. Users remain responsible for complying with applicable laws and for using the data responsibly — attribute sources where appropriate, respect the usage terms of any full-text linked from a record, and do not use extracted data for spam, harassment, or any illegal purpose.

# Actor input Schema

## `entity` (type: `string`):

The kind of record to collect. 'Works' are papers, books, and datasets. Pick 'Authors' for researcher profiles, 'Institutions' for universities and labs, 'Journals & sources' for where works are published, or 'Publishers', 'Funders', or 'Topics' for the other catalogs.

## `searchQuery` (type: `string`):

Full-text search. For works it matches titles and abstracts; for authors, institutions, and the other catalogs it matches names. Example: 'machine learning', 'CRISPR', 'Yann LeCun', 'Stanford University'. Leave blank to browse everything and rely on the filters below.

## `ids` (type: `array`):

Fetch specific records directly. Paste OpenAlex IDs (e.g. 'W2741809807', 'A5023888391'), OpenAlex URLs, DOIs (e.g. '10.7717/peerj.4375'), or ORCIDs / ROR IDs. Must match the catalog chosen above. When you use this, the keyword and filters are ignored — these records are always fetched. Up to 100,000 identifiers are processed per run.

## `fromPublicationDate` (type: `string`):

Only include works published on or after this date (YYYY-MM-DD). Leave blank for no lower bound. Ignored for authors, institutions, and the other catalogs.

## `toPublicationDate` (type: `string`):

Only include works published on or before this date (YYYY-MM-DD). Leave blank for no upper bound. Ignored for authors, institutions, and the other catalogs.

## `countryCode` (type: `string`):

Restrict to a country. For works this matches an author's institution country; for authors and institutions it matches their country. Leave blank for all countries. Ignored for publishers, funders, and topics.

## `openAccessOnly` (type: `boolean`):

Only include records that are open access — freely readable. For works this is the paper's OA status; for journals & sources it is the source's OA status. Ignored for authors, institutions, publishers, funders, and topics.

## `minCitations` (type: `integer`):

Only include records cited at least this many times. Great for surfacing high-impact works or influential authors. Leave at 0 for no minimum. Applies to works, authors, institutions, journals, publishers, and funders.

## `advancedFilter` (type: `string`):

Power users only. A raw OpenAlex filter string, merged with the filters above. Example: 'type:article,authorships.institutions.ror:https://ror.org/00f54p054'. See the OpenAlex docs for the full filter list. Leave blank if you are using the friendly filters above.

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

How to order results. 'Most cited' surfaces high-impact records; 'Newest' is best for scheduled runs picking up fresh records; 'Relevance' works best together with a search keyword.

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

Hard cap on how many records to collect. Default 100 — increase for bigger runs, or set to 0 for as many as the catalog returns (an internal safety cap of 100,000 still prevents runaway pagination). Results come back in pages of 200, so the actual count is rounded up to the next multiple of 200 (e.g. 10 returns 200; 250 returns 400). Ignored when you fetch specific IDs/URLs — those are always all collected (up to 100,000).

## `email` (type: `string`):

Optional. Providing an email puts requests in OpenAlex's faster 'polite pool'. It is only sent to OpenAlex and never stored. Leave blank to run without it.

## Actor input object example

```json
{
  "entity": "works",
  "searchQuery": "machine learning",
  "ids": [],
  "countryCode": "",
  "openAccessOnly": false,
  "minCitations": 0,
  "sortBy": "cited_by_count",
  "maxResults": 100
}
```

# Actor output Schema

## `works` (type: `string`):

Papers, books, and datasets — title, authors, publication year, journal, citation count, open-access status, and link.

## `entities` (type: `string`):

Profile rows for authors, institutions, journals & sources, publishers, funders, or topics — name, country, works count, citation count, and identifiers.

# 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 = {
    "entity": "works",
    "searchQuery": "machine learning",
    "ids": [],
    "fromPublicationDate": "",
    "toPublicationDate": "",
    "countryCode": "",
    "openAccessOnly": false,
    "minCitations": 0,
    "advancedFilter": "",
    "sortBy": "cited_by_count",
    "maxResults": 100,
    "email": ""
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/openalex-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 = {
    "entity": "works",
    "searchQuery": "machine learning",
    "ids": [],
    "fromPublicationDate": "",
    "toPublicationDate": "",
    "countryCode": "",
    "openAccessOnly": False,
    "minCitations": 0,
    "advancedFilter": "",
    "sortBy": "cited_by_count",
    "maxResults": 100,
    "email": "",
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/openalex-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 '{
  "entity": "works",
  "searchQuery": "machine learning",
  "ids": [],
  "fromPublicationDate": "",
  "toPublicationDate": "",
  "countryCode": "",
  "openAccessOnly": false,
  "minCitations": 0,
  "advancedFilter": "",
  "sortBy": "cited_by_count",
  "maxResults": 100,
  "email": ""
}' |
apify call solidcode/openalex-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solidcode/openalex-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/hHytU81dJoHZg5JMu/builds/DVff7pcWepFdRgiji/openapi.json
