# ScienceDirect Search Scraper | 2$/1k Cheap (`trev0n/sciencedirect-search-scraper`) Actor

Extract academic articles from ScienceDirect.com — title, DOI, authors, journal, abstract, keywords, dates, open-access status and PDF links. Search by keyword, author, journal, year and article type, or paste a search URL. Ideal for literature reviews and bibliometrics.

- **URL**: https://apify.com/trev0n/sciencedirect-search-scraper.md
- **Developed by:** [Paweł](https://apify.com/trev0n) (community)
- **Categories:** Developer tools, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 90.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## 🔬 ScienceDirect Search Scraper

🎯 **Turn any ScienceDirect search into a clean, structured dataset of academic articles — in seconds, at scale.**

This scraper collects research articles and papers from the [ScienceDirect.com](https://www.sciencedirect.com) (Elsevier) search results. For every result you get the **title, DOI, authors, journal, publication date, open-access status, citation details and PDF link** — ready for literature reviews, meta-analyses, bibliometrics and research databases.

### 🚀 What Does It Do?

This scraper automatically searches ScienceDirect and collects **structured, ready-to-use data** for every matching article in the search results. No manual browsing, copy-pasting or page-flipping — just set your filters and hit Start.

💡 **Two ways to run it:**

1. **🔍 Discovery Mode** — Enter keywords plus optional filters (author, journal, year, article type, open access) and the scraper builds the search, pages through every result and collects the articles.
2. **📋 Direct URL Mode** — Already have a ScienceDirect search you like? Paste its search URL and the scraper pages through every matching result for you.

### 👥 Who Is This For?

| 🏢 Use Case                                 | 💬 How It Helps                                                                              |
| ------------------------------------------- | -------------------------------------------------------------------------------------------- |
| 🎓 **Researchers & PhD students**           | Build a complete corpus for a systematic literature review without hours of manual searching |
| 📊 **Bibliometrics & scientometrics teams** | Export thousands of citation records for trend, co-author and impact analysis                |
| 🤖 **AI / NLP engineers**                   | Assemble large metadata datasets to train and evaluate models                                |
| 🏥 **Pharma & R&D analysts**                | Track new publications in a field, journal or by a competitor's authors                      |
| 📚 **Librarians & info specialists**        | Deliver curated reading lists and current-awareness alerts to faculty                        |
| ✍️ **Science writers & journalists**        | Find the latest open-access papers on any topic, fast                                        |

### ✨ Features

- 🔍 **Keyword & advanced search** — Search by topic, title, author, journal, volume, issue and page
- 📅 **Year & date filtering** — One year, a list of years, or an inclusive range
- 🏷️ **Article-type filters** — Research articles, reviews, book chapters, data articles, conference abstracts and more
- 🔓 **Open-access filter** — Restrict to freely readable open-access and open-archive articles
- 🔃 **Sort control** — Relevance or newest-first
- 📚 **Rich search metadata** — Title, DOI, authors, journal, ISSN, dates, volume/issue, pages and article type for every result
- 🔗 **DOI & PDF links** — Every record includes its DOI and a direct PDF link where available
- 🧹 **Smart Deduplication** — Never get the same article twice, even across many result pages
- ⚡ **Fast & Scalable** — Collect anywhere from a handful to thousands of articles per run
- 📤 **Export Anywhere** — Download results as JSON, CSV, Excel, or push to Google Sheets, Zapier, Make, or your CRM

### 🎛️ Filters & Options

| Option                       | What It Does                                                 |
| ---------------------------- | ------------------------------------------------------------ |
| 🔎 **Search query**          | Main query across the search index                           |
| 🏷️ **Title contains**        | Restrict to articles whose title contains your words         |
| 👤 **Author(s)**             | Filter by author name                                        |
| 📕 **Publication title**     | Restrict to a specific journal or book                       |
| 🔢 **Volume / Issue / Page** | Pinpoint a specific volume, issue or page                    |
| 📅 **Year(s)**               | Single year, comma list, or range like `2020-2025`           |
| 🗂️ **Article types**         | Limit to research articles, reviews, data articles, and more |
| 🔓 **Open access only**      | Keep only freely readable articles                           |
| 🔃 **Sort by**               | Relevance or date (newest first)                             |
| 🔗 **Start URLs**            | Optionally provide specific ScienceDirect search URLs        |
| 🔢 **Max items**             | Control how many articles to extract per run                 |
| 📑 **Max pages per search**  | Cap how many result pages to page through per search         |
| ⚙️ **Max concurrency**       | Control how many pages are processed in parallel             |
| 🌐 **Proxy configuration**   | Route requests through Apify's proxy service                 |

### 📦 What You Get (Output Fields)

Every article includes:

#### Bibliographic

| Field         | Example                                                       |
| ------------- | ------------------------------------------------------------- |
| title         | `A Machine Learning Algorithm to Estimate the Probability...` |
| doi           | `10.1016/j.jhsa.2025.01.021`                                  |
| authors       | `["Anne Eva J. Bulstra"]`                                     |
| journalName   | `The Journal of Hand Surgery`                                 |
| journalUrl    | `https://www.sciencedirect.com/science/journal/03635023`      |
| issn          | `03635023`                                                    |
| volumeIssue   | `Volume 50, Issue 6`                                          |
| pages         | `711-720`                                                     |
| publishedDate | `June 2025`                                                   |
| onlineDate    | `2025-06-03T00:00:00.000Z`                                    |
| articleType   | `Research article`                                            |
| contentType   | `JL`                                                          |
| language      | `en`                                                          |

#### Access & Links

| Field        | Example                                                                             |
| ------------ | ----------------------------------------------------------------------------------- |
| isOpenAccess | `false`                                                                             |
| pdfUrl       | `https://www.sciencedirect.com/science/article/pii/S036350232500036X/pdfft?pid=...` |
| articleUrl   | `https://www.sciencedirect.com/science/article/pii/S036350232500036X`               |
| pii          | `S036350232500036X`                                                                 |
| searchUrl    | `https://www.sciencedirect.com/search?qs=machine+learning&show=100`                 |
| scrapedAt    | `2026-07-01T08:10:34.590Z`                                                          |

### 📊 Example Output

```json
{
    "doi": "10.1016/j.jhsa.2025.01.021",
    "title": "A Machine Learning Algorithm to Estimate the Probability of a True Scaphoid Fracture After Wrist Trauma",
    "articleUrl": "https://www.sciencedirect.com/science/article/pii/S036350232500036X",
    "pii": "S036350232500036X",
    "articleType": "Research article",
    "contentType": "JL",
    "journalName": "The Journal of Hand Surgery",
    "journalUrl": "https://www.sciencedirect.com/science/journal/03635023",
    "issn": "03635023",
    "publishedDate": "June 2025",
    "onlineDate": "2025-06-03T00:00:00.000Z",
    "volumeIssue": "Volume 50, Issue 6",
    "pages": "711-720",
    "authors": ["Anne Eva J. Bulstra"],
    "language": "en",
    "isOpenAccess": false,
    "pdfUrl": "https://www.sciencedirect.com/science/article/pii/S036350232500036X/pdfft?pid=1-s2.0-S036350232500036X-main.pdf",
    "searchUrl": "https://www.sciencedirect.com/search?qs=machine+learning&show=100",
    "scrapedAt": "2026-07-01T08:10:34.590Z"
}
````

### 📋 Dataset Views

The Apify Console gives you **3 ready-made table views** to quickly browse your results:

| View                 | What It Shows                                                      |
| -------------------- | ------------------------------------------------------------------ |
| 📊 **Overview**      | Title, authors, journal, date, open-access flag, DOI and link      |
| 📚 **Bibliographic** | Full citation metadata — journal, ISSN, volume/issue, pages, dates |
| 📋 **Full Details**  | Every single field — the complete dataset                          |

### ❓ FAQ

**🤔 Can I scrape a search I already built on the website?**
Yes — just paste the ScienceDirect search URL into Start URLs and the scraper will page through every result for you.

**🤔 What data do I get for each article?**
You get rich search-listing metadata — title, DOI, authors, journal, ISSN, volume/issue, pages, publication and online dates, article type, language, open-access status, and the article and PDF links. Detail-page-only fields such as abstract, keywords and author affiliations are not collected.

**🤔 Can it collect open-access PDFs?**
The scraper returns the direct PDF link for every article where one is available, and you can filter to open-access articles only.

**🤔 How many articles can I collect?**
From a few up to thousands per run — set the Max items limit to whatever you need.

**🤔 Can I export the data?**
Yes — JSON, CSV, Excel, XML, HTML, RSS. You can also push data directly to Google Sheets, Zapier, Make, or any webhook/API endpoint.

**🤔 How often should I run this?**
For fresh data, run daily or weekly. You can schedule automatic runs on Apify with just a few clicks.

**🤔 Does it work with proxies?**
Yes — residential proxies are recommended for the best results. The scraper works with Apify's built-in proxy service.

### 🛠️ Need Custom Filters or Features?

**I'm happy to customize this scraper for your specific needs!** 🤝

Whether you need:

- 🎯 Additional filters (subject area, affiliation country, citation count, specific journals)
- 📊 Extra data fields or custom output formats (RIS / BibTeX export, reference lists)
- 🔄 Integration with your CRM, Google Sheets, reference manager or database
- ⏰ Scheduled scraping with automatic deduplication and current-awareness alerts
- 🌐 Scraping from other academic platforms alongside ScienceDirect

👉 **Don't hesitate to reach out via private message** — I respond quickly and I'm always open to building exactly what you need. No request is too small or too specific!

### ⚖️ Legal & Ethical Use

This scraper collects **only publicly available information** from ScienceDirect search results. It does not access paywalled full text, bypass authentication, or use any institutional credentials. Please use the data responsibly and in compliance with applicable laws and ScienceDirect's terms of service.

# Actor input Schema

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

Keywords to search across title, abstract and author-specified keywords (the main ScienceDirect search box). Example: "machine learning" or "CRISPR gene editing". Leave empty if you use Start URLs.

## `title` (type: `string`):

Restrict to articles whose title contains these words.

## `authors` (type: `string`):

Filter by author name, e.g. "Y. LeCun".

## `publicationTitle` (type: `string`):

Restrict to a specific journal, book or publication title, e.g. "The Lancet".

## `volume` (type: `string`):

Filter by journal volume(s), e.g. "75" or "75,76".

## `issue` (type: `string`):

Filter by issue number.

## `page` (type: `string`):

Filter by article page number.

## `years` (type: `string`):

Filter by publication year(s). A single year ("2025"), a comma list ("2023,2024,2025") or an inclusive range ("2020-2025").

## `articleTypes` (type: `array`):

Limit to one or more article types. Leave empty for all types.

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

Return only articles that are open access or in an open archive (freely readable).

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

Sort search results by relevance (default) or newest first.

## `startUrls` (type: `array`):

Optional. Paste full ScienceDirect search URLs (e.g. https://www.sciencedirect.com/search?qs=RPG\&years=2025). Overrides the keyword filters above.

## `maxItems` (type: `integer`):

Maximum number of articles to collect across all searches.

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

Safety cap on how many result pages to page through per search.

## `maxConcurrency` (type: `integer`):

How many search sessions to run in parallel. Keep low (1-2) to stay under the radar.

## `maxRequestRetries` (type: `integer`):

How many times to retry a page that does not clear the bot challenge.

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

ScienceDirect (Elsevier/Akamai) blocks datacenter IPs. Residential proxies are strongly recommended.

## `headless` (type: `boolean`):

Run the browser headless. ScienceDirect blocks headless Chromium (CPE00001), so leave this OFF — headed clears the bot wall.

## Actor input object example

```json
{
  "searchQuery": "machine learning",
  "openAccessOnly": false,
  "sortBy": "relevance",
  "startUrls": [],
  "maxItems": 100,
  "maxPagesPerSearch": 40,
  "maxConcurrency": 1,
  "maxRequestRetries": 4,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "headless": false
}
```

# Actor output Schema

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

No description

# 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 = {
    "searchQuery": "machine learning"
};

// Run the Actor and wait for it to finish
const run = await client.actor("trev0n/sciencedirect-search-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQuery": "machine learning" }

# Run the Actor and wait for it to finish
run = client.actor("trev0n/sciencedirect-search-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 '{
  "searchQuery": "machine learning"
}' |
apify call trev0n/sciencedirect-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ScienceDirect Search Scraper | 2$/1k Cheap",
        "description": "Extract academic articles from ScienceDirect.com — title, DOI, authors, journal, abstract, keywords, dates, open-access status and PDF links. Search by keyword, author, journal, year and article type, or paste a search URL. Ideal for literature reviews and bibliometrics.",
        "version": "1.0",
        "x-build-id": "MR9eZY5KF1oTA1g4k"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/trev0n~sciencedirect-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-trev0n-sciencedirect-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/trev0n~sciencedirect-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-trev0n-sciencedirect-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/trev0n~sciencedirect-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-trev0n-sciencedirect-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "searchQuery": {
                        "title": "Search keywords",
                        "type": "string",
                        "description": "Keywords to search across title, abstract and author-specified keywords (the main ScienceDirect search box). Example: \"machine learning\" or \"CRISPR gene editing\". Leave empty if you use Start URLs."
                    },
                    "title": {
                        "title": "Title contains",
                        "type": "string",
                        "description": "Restrict to articles whose title contains these words."
                    },
                    "authors": {
                        "title": "Author(s)",
                        "type": "string",
                        "description": "Filter by author name, e.g. \"Y. LeCun\"."
                    },
                    "publicationTitle": {
                        "title": "Journal or book title",
                        "type": "string",
                        "description": "Restrict to a specific journal, book or publication title, e.g. \"The Lancet\"."
                    },
                    "volume": {
                        "title": "Volume(s)",
                        "type": "string",
                        "description": "Filter by journal volume(s), e.g. \"75\" or \"75,76\"."
                    },
                    "issue": {
                        "title": "Issue",
                        "type": "string",
                        "description": "Filter by issue number."
                    },
                    "page": {
                        "title": "Page",
                        "type": "string",
                        "description": "Filter by article page number."
                    },
                    "years": {
                        "title": "Year(s)",
                        "type": "string",
                        "description": "Filter by publication year(s). A single year (\"2025\"), a comma list (\"2023,2024,2025\") or an inclusive range (\"2020-2025\")."
                    },
                    "articleTypes": {
                        "title": "Article types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Limit to one or more article types. Leave empty for all types.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "FLA",
                                "REV",
                                "ABS",
                                "BC",
                                "CH",
                                "CRP",
                                "PRP",
                                "SCO",
                                "DAT",
                                "VID",
                                "EDI",
                                "COR",
                                "DIS",
                                "ERR",
                                "NWS",
                                "PGL",
                                "BRV",
                                "SSU",
                                "MIS",
                                "RPL",
                                "ENC"
                            ],
                            "enumTitles": [
                                "Research articles",
                                "Review articles",
                                "Abstracts",
                                "Book chapters",
                                "Chapters",
                                "Case reports",
                                "Conference abstracts",
                                "Short communications",
                                "Data articles",
                                "Video articles",
                                "Editorials",
                                "Correspondence",
                                "Discussion",
                                "Errata",
                                "News",
                                "Practice guidelines",
                                "Book reviews",
                                "Short surveys",
                                "Mini reviews / Other",
                                "Replication studies",
                                "Encyclopedia"
                            ]
                        }
                    },
                    "openAccessOnly": {
                        "title": "Open access & open archive only",
                        "type": "boolean",
                        "description": "Return only articles that are open access or in an open archive (freely readable).",
                        "default": false
                    },
                    "sortBy": {
                        "title": "Sort results by",
                        "enum": [
                            "relevance",
                            "date"
                        ],
                        "type": "string",
                        "description": "Sort search results by relevance (default) or newest first.",
                        "default": "relevance"
                    },
                    "startUrls": {
                        "title": "Start URLs (search URLs)",
                        "type": "array",
                        "description": "Optional. Paste full ScienceDirect search URLs (e.g. https://www.sciencedirect.com/search?qs=RPG&years=2025). Overrides the keyword filters above.",
                        "default": [],
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 5000,
                        "type": "integer",
                        "description": "Maximum number of articles to collect across all searches.",
                        "default": 100
                    },
                    "maxPagesPerSearch": {
                        "title": "Max pages per search",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Safety cap on how many result pages to page through per search.",
                        "default": 40
                    },
                    "maxConcurrency": {
                        "title": "Max concurrency",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many search sessions to run in parallel. Keep low (1-2) to stay under the radar.",
                        "default": 1
                    },
                    "maxRequestRetries": {
                        "title": "Max retries per page",
                        "minimum": 1,
                        "maximum": 10,
                        "type": "integer",
                        "description": "How many times to retry a page that does not clear the bot challenge.",
                        "default": 4
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "ScienceDirect (Elsevier/Akamai) blocks datacenter IPs. Residential proxies are strongly recommended.",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    },
                    "headless": {
                        "title": "Run headless",
                        "type": "boolean",
                        "description": "Run the browser headless. ScienceDirect blocks headless Chromium (CPE00001), so leave this OFF — headed clears the bot wall.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
