---
title: "Apify API: pricing, rate limits & MCP | ONEGTMLAB"
description: "Apify API: Cloud platform and marketplace of ready-made scrapers ('Actors') you run by API, with built-in storage, proxies, schedules, webhooks and an…"
canonical: https://www.onegtmlab.dev/tool-directory/research-and-scraping/apify
---

# Apify API: pricing, rate limits & MCP | ONEGTMLAB

[](/)

[

Book a call

](/book)

![](/_astro/apify.BGdNuL2e.svg)

API review

# Apify API review

Cloud platform and marketplace of ready-made scrapers ('Actors') you run by API, with built-in storage, proxies, schedules, webhooks and an MCP server. Best for scraping sites that have no API via pay-per-result Store Actors.

Verified 25 Oct 2026 · 16 endpoints listed · Official MCP server

[

See pricing

](#pricing)[

Apify API docs

](https://docs.apify.com/api/v2.md)

At a glance

Category

Scraping, Data platform

Pricing model

Usage-based

Free tier

Free plan $0/month with $5 of platform usage

Entry price

$1/mo, billed monthly Creator

Auth

API key

Official MCP

Yes

Best for

Scraping sites that have no API via pay-per-result Store Actors

[apify.com ↗](https://apify.com)[Pricing page ↗](https://apify.com/pricing.md)

## What a call costs

The actions you pay for, as Apify prices them.

Action

Cost

Per

Compute unit (1 GB RAM x 1 hour)

$0.20 Free/Starter, $0.16 Scale, $0.13 Business

CU

Residential proxy

$8 Free/Starter, $7.5 Scale, $7 Business

GB

Datacenter proxy

5/30/200/500 IPs included; then $1 (Starter), $0.8 (Scale), $0.6 (Business)

IP

Google SERP proxy

$2.5 Free/Starter, $2 Scale, $1.7 Business

1,000 SERPs

Unblocker

$1.5 Free/Starter, $1.25 Scale, $1 Business

1,000 requests

Add-on concurrent run

$5

run

Add-on Actor RAM

$1

GB

Store Actors

set per Actor (pay-per-event, e.g. per result) or pay-per-usage

per Actor page

Show all 10 priced actionsHide the rest

Action

Cost

Per

Personal training add-on

$150

hour

Storage and data transfer (in-app Pricing tab, Free plan)

dataset $0.005 / 1,000 writes; key-value store $0.05 / 1,000 writes; request queue $0.01 / 1,000 writes; timed storage $1 and $4 per 1,000 GB-hours; external transfer $0.20/GB, internal $0.05/GB

as stated

## Pricing, plan by plan

US dollars, as Apify's pricing page shows them on 25 Oct 2026. Monthly and annual billing are shown apart.

Free tier Free plan $0/month with $5 of platform usage; blocked (not billed) when exhausted until next cycle; no credit card

### Free

$0

Free

$5 platform usage/month; CU $0.20

API includedPlan details

none - account blocked until next cycle

### Starter

$19/mo

billed monthly

$17/mo

billed annually

$19 platform usage/month; CU $0.20; Bronze Store discount

API includedPlan details

pay-as-you-go, billed on next invoice up to your usage limit

### Scale

$199/mo

billed monthly

$179/mo

billed annually

$199 platform usage/month; CU $0.16; Silver Store discount

API includedPlan details

pay-as-you-go

### Business

$999/mo

billed monthly

$899/mo

billed annually

$999 platform usage/month; CU $0.13; Gold Store discount

API includedPlan details

pay-as-you-go

### Creator

$1/mo

billed monthly

$1/mo

monthly billing only

one-time $500 platform usage for first 6 months; Store limited to universal Actors

API included

### Enterprise

Custom quote

custom

API included

## Rate limits

Global 250,000 requests/minute per user (per IP if unauthenticated).

Limit

Free

Starter

Scale

Business

Max Concurrent Runs

5

32

128

256

Max Ram

16 GB (combined and per run)

64 GB combined across running jobs (pricing page; limits page 65,536 MB combined); max 32 GB for a single run (limits page)

256 GB

512 GB

More on limitsLess

Default 60 req/s per resource (one Actor, run, dataset, store); higher on some endpoints: 35 (request-queue batch, head/lock), 100 (KV ZIP download), 200 (KV record CRUD, list keys), 350 (request CRUD, lock ops), 400 (run Actor, run task async/sync, metamorph, push dataset items). 429 rate-limit-exceeded: retry with exponential backoff. Each response carries X-RateLimit-Limit.

## How to get an API key

Apify uses API key. The steps below follow Apify's own docs.

1.  Create a Apify account. The Free plan includes API access.
2.  Apify Console > Settings > API & Integrations (console.apify.com/account#/integrations)
3.  Send it with every request: header (Authorization: Bearer <token>, recommended) or query (?token=, less secure).
4.  Make a first call: Search Apify Store Actors. Keep the key in an environment variable, never in the command.
    
    ```
    curl -X GET "https://api.apify.com/v2/store" \
      -H "Authorization: Bearer $APIFY_API_KEY"
    ```
    

## Where the docs live

What

Where

Documentation

[docs.apify.com](https://docs.apify.com)

API reference

[docs.apify.com/api/v2.md](https://docs.apify.com/api/v2.md)

OpenAPI spec

[docs.apify.com/api/openapi.json](https://docs.apify.com/api/openapi.json)

llms.txt

[docs.apify.com/llms.txt](https://docs.apify.com/llms.txt)

Changelog

[docs.apify.com/api/client/js/docs/changelog.md](https://docs.apify.com/api/client/js/docs/changelog.md)

Base URL

`https://api.apify.com`

MCP server

`https://mcp.apify.com`

SDKs

apify-client (JavaScript), apify-client (Python), Apify SDK (JS/Python) for building Actors, Apify CLI

## Strengths and limits

### Where it fits

-   Scraping sites that have no API (LinkedIn, Instagram, YouTube, Google Maps) via pay-per-result Store Actors
-   Async batch jobs: start a run, get a webhook, read the dataset
-   Agents that need to discover and run scrapers through MCP
-   Running your own scraper code without managing servers or proxies

### Where it falls short

-   Fixed, predictable per-record pricing across vendors (each Actor sets its own price, and Actors change or break)
-   Long-running synchronous calls (run-sync times out at 300 s with HTTP 408)
-   Use cases needing a vendor-maintained data contract; most Store Actors are third-party

### Worth knowing

-   run-sync and run-sync-get-dataset-items return HTTP 408 if the run exceeds 300 s; use async runs + webhook for anything slow (openapi.json).
-   Prepaid monthly usage does not roll over; Free plan is blocked (not billed) once $5 is used (apify.com/pricing.md).
-   Store Actor prices are set by each developer; check pay-per-event vs pay-per-usage on the Actor page and read chargedEventCounts, not usageTotalUsd on a just-started run.
-   Unnamed storages are deleted when the plan's retention period expires; on Free your 10 most recent runs are kept 4 months. Name a storage to keep it indefinitely.
-   Pricing FAQ says reading a finished run's dataset counts as platform usage, while our 2026-10-05 note calls dataset reads free; treat re-reads as near-free, not zero.

5 moreShow fewer

-   Plan on 5 (live app wins).
-   MCP server excludes full-permission Actors from search and execution (docs.apify.com/mcp.md).
-   Third-party Actors break without notice: apple\_yang transcript actor failed for every reel on 2026-10-24.
-   The canonical prefix is /v2/actors/...; /v2/acts/... (used in many older examples and in our own scripts) is deprecated but still routes to the same handler. Source: [docs.apify.com/api/v2.md](https://docs.apify.com/api/v2.md) ('Legacy /v2/acts/ URL prefix')
-   An AI agent can pay for runs with no Apify account via x402 / MPP at agi.apify.com (temporary token with a spend cap); MCP per-request payments (e.g. Skyfire) work only with pay-per-event Actors. Source: [apify.com/pricing.md](https://apify.com/pricing.md); [docs.apify.com/mcp.md](https://docs.apify.com/mcp.md)

### Our take

We run Apify actors in our standard workflows: LinkedIn company pages for company qualification (about $0.0035 per company), LinkedIn profile posts (pay per event, $0.002 per post) and Instagram reel transcripts for our own content research (about $0.01 per reel). Two things we learned: the profile-posts actor returns reposts under the original author, so we split them out on the repostedBy field, and on a pay-per-event actor the run's usage total can show only the start event, so we read the charged event counts instead. On the Free plan, the $5 monthly usage cap returns HTTP 402 once it is spent.

## Who should use it

Use Apify for

Scraping sites that have no API (LinkedIn, Instagram, YouTube, Google Maps) via pay-per-result Store Actors

Look elsewhere for

Fixed, predictable per-record pricing across vendors (each Actor sets its own price, and Actors change or break)

## If Apify is not the answer

Other Research and scraping tools in this directory, each with its own review.

[

![](/_astro/brightdata.D3o9R6mQ_Z2nLIVf.webp)

Bright Data

Research and scraping

From $499/moOfficial MCP

Best for structured records from big platforms via maintained Scraper APIs, pay only per delivered record.

Bright Data API review →](/tool-directory/research-and-scraping/brightdata)[

![](/_astro/firecrawl.BlOy6k5j_ZIB9lf.webp)

Firecrawl

Research and scraping

Free planOfficial MCP

Best for full-site URL inventories.

Firecrawl API review →](/tool-directory/research-and-scraping/firecrawl)

## Before you build

Four things to settle first, each read off Apify's own pages.

-   **Confirm the API is on your plan**The Free plan includes API access. Free tier: Free plan $0/month with $5 of platform usage.
    
-   **Keep the key out of your code**API key. It is sent as: header (Authorization: Bearer <token>, recommended) or query (?token=, less secure).
    
-   **Design around the rate limit**Global 250,000 requests/minute per user (per IP if unauthenticated).
    
-   **Know the catch before you scale**run-sync and run-sync-get-dataset-items return HTTP 408 if the run exceeds 300 s; use async runs + webhook for anything slow (openapi.json).
    

## Want us to build it for you?

Tell us what you want Apify to do in your stack. We will show you how we would wire it into your data, outbound or CRM, and what we would check first.

[

Book a call

](/book)[

See case studies

](/case-studies)

Read from [apify.com/pricing.md](https://apify.com/pricing.md), [docs.apify.com/api/v2.md](https://docs.apify.com/api/v2.md) and [docs.apify.com/api/v2.md](https://docs.apify.com/api/v2.md#rate-limiting). Verified 25 Oct 2026.

All 16 endpointsFor developers: method, path, what it does and what it costs.

**Base URL:** `https://api.apify.com`

**Bulk and async:** async runs + datasets; batch request-queue endpoints; maxItems / maxTotalChargeUsd caps per run

**Webhooks:** ACTOR.RUN.CREATED/SUCCEEDED/FAILED/ABORTED/TIMED\_OUT/RESURRECTED, ACTOR.BUILD.\*

Filter endpoints

16 endpoints

Method

Path

What it does

Cost

GET/POST/PUT/DELETE

`/v2/actors, /v2/actors/{actorId}, /v2/actors/{actorId}/validate-input`

List, create, read, update, delete Actors; validate an input

free (API call); platform usage only when runs execute

GET/POSTasync

`/v2/actors/{actorId}/runs`

Start an Actor run (async) or list its runs

Actor's own price (pay-per-event or pay-per-usage) + platform usage

GET/POST

`/v2/actors/{actorId}/run-sync, /v2/actors/{actorId}/run-sync-get-dataset-items`

Run an Actor and wait for its OUTPUT or dataset items in the same HTTP response

same as a normal run

GET/PUT/DELETE/POST

`/v2/actor-runs, /v2/actor-runs/{runId}, /abort, /metamorph, /reboot, /resurrect, /charge`

Inspect, abort, metamorph, reboot or resurrect runs

free

GET/POST/PUT/DELETE

`/v2/actors/{actorId}/runs/last/... and /v2/actor-tasks/{actorTaskId}/runs/last/...`

Shortcuts to the last run's dataset, key-value store, request queue, log, abort, metamorph, reboot

free API call; storage reads count as platform usage per pricing FAQ

GET/POST/PUT/DELETEasync

`/v2/actor-tasks, /v2/actor-tasks/{actorTaskId}, /input, /runs, /run-sync, /run-sync-get-dataset-items, /webhooks`

Saved Actor configurations (tasks) and running them

as the underlying Actor

GET/POST/PUT/DELETEasync

`/v2/actors/{actorId}/versions, /versions/{versionNumber}/env-vars, /v2/actors/{actorId}/builds; /v2/actor-builds, /{buildId}, /abort, /log, /v2/actors/{actorId}/builds/{buildId}/openapi.json`

Manage Actor source versions, env vars and builds; get a build's generated OpenAPI

builds consume compute units

GET/POST/PUT/DELETE

`/v2/datasets, /v2/datasets/{datasetId}, /items, /statistics`

Datasets: read/write result items (JSON, CSV, XLSX, etc.)

storage operations billed as platform usage

GET/POST/PUT/DELETE

`/v2/key-value-stores, /{storeId}, /keys, /records, /records/{recordKey}`

Key-value stores (INPUT, OUTPUT, screenshots, files)

storage operations billed as platform usage

GET/POST/PUT/DELETE

`/v2/request-queues, /{queueId}, /requests, /requests/batch, /head, /head/lock, /requests/{requestId}/lock, /requests/unlock`

Request queues for crawler URL frontiers

storage operations billed as platform usage

GET/POST/PUT/DELETE

`/v2/webhooks, /{webhookId}, /test, /dispatches; /v2/webhook-dispatches`

Webhooks on run/build events (e.g. ACTOR.RUN.SUCCEEDED)

free

GET/POST/PUT/DELETE

`/v2/schedules, /{scheduleId}, /log`

Cron schedules for Actors and tasks

free

GET

`/v2/store`

Search Apify Store Actors

free

GET/PUT

`/v2/users/me, /v2/users/{userId}, /v2/users/me/usage/monthly, /v2/users/me/limits`

Account, monthly usage and spending limits (can set max monthly usage)

free

GET

`/v2/logs/{buildOrRunId}`

Raw log of a run or build

free

GET/POST/PUT/DELETE

`/v2/browser-info, /v2/tools/encode-and-sign, /v2/tools/decode-and-verify`

Utility tools

free

[](/)

© 2026 ONEGTMLAB Private Limited. All rights reserved.

COMPANY

[

Why Us

](/#why-us)[

Process

](/#timeline)[

Blogs

](/blogs)[

About

](/about)[

Clients

](/clients)[

Free resources

](/free-resources)[

Newsletter

](/newsletter)

Services

[

GTM Engineering

](/ai-gtm-engineering)[

Account-Based Marketing

](/services/account-based-marketing)[

Paid Media

](/services/paid-media)[

Content Engineering

](/linkedin-personal-branding)[

RevOps

](/services/revops)[

SEO, AEO & GEO

](/services/seo-aeo-geo)[

All services

](/services)

![](/_astro/wordmark-3d.CMEfGdYr.svg)
