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

What a call costs

The actions you pay for, as Apify prices them.

ActionCostPer
Compute unit (1 GB RAM x 1 hour)$0.20 Free/Starter, $0.16 Scale, $0.13 BusinessCU
Residential proxy$8 Free/Starter, $7.5 Scale, $7 BusinessGB
Datacenter proxy5/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 Business1,000 SERPs
Unblocker$1.5 Free/Starter, $1.25 Scale, $1 Business1,000 requests
Add-on concurrent run$5run
Add-on Actor RAM$1GB
Store Actorsset per Actor (pay-per-event, e.g. per result) or pay-per-usageper Actor page
Show all 10 priced actionsHide the rest
ActionCostPer
Personal training add-on$150hour
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/GBas 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 included
Plan 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 included
Plan 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 included
Plan 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 included
Plan 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).

LimitFreeStarterScaleBusiness
Max Concurrent Runs532128256
Max Ram16 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 GB512 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

WhatWhere
Documentationdocs.apify.com
API referencedocs.apify.com/api/v2.md
OpenAPI specdocs.apify.com/api/openapi.json
llms.txtdocs.apify.com/llms.txt
Changelogdocs.apify.com/api/client/js/docs/changelog.md
Base URLhttps://api.apify.com
MCP serverhttps://mcp.apify.com
SDKsapify-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 ('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; 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.

Before you build

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

  • Confirm the API is on your planThe Free plan includes API access. Free tier: Free plan $0/month with $5 of platform usage.
  • Keep the key out of your codeAPI key. It is sent as: header (Authorization: Bearer <token>, recommended) or query (?token=, less secure).
  • Design around the rate limitGlobal 250,000 requests/minute per user (per IP if unauthenticated).
  • Know the catch before you scalerun-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.

Read from apify.com/pricing.md, docs.apify.com/api/v2.md and docs.apify.com/api/v2.md. Verified 25 Oct 2026.

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

Base URL: 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.*

16 endpoints
MethodPathWhat it doesCost
GET/POST/PUT/DELETE/v2/actors, /v2/actors/{actorId}, /v2/actors/{actorId}/validate-inputList, create, read, update, delete Actors; validate an inputfree (API call); platform usage only when runs execute
GET/POSTasync/v2/actors/{actorId}/runsStart an Actor run (async) or list its runsActor'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-itemsRun an Actor and wait for its OUTPUT or dataset items in the same HTTP responsesame as a normal run
GET/PUT/DELETE/POST/v2/actor-runs, /v2/actor-runs/{runId}, /abort, /metamorph, /reboot, /resurrect, /chargeInspect, abort, metamorph, reboot or resurrect runsfree
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, rebootfree 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, /webhooksSaved Actor configurations (tasks) and running themas 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.jsonManage Actor source versions, env vars and builds; get a build's generated OpenAPIbuilds consume compute units
GET/POST/PUT/DELETE/v2/datasets, /v2/datasets/{datasetId}, /items, /statisticsDatasets: 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/unlockRequest queues for crawler URL frontiersstorage operations billed as platform usage
GET/POST/PUT/DELETE/v2/webhooks, /{webhookId}, /test, /dispatches; /v2/webhook-dispatchesWebhooks on run/build events (e.g. ACTOR.RUN.SUCCEEDED)free
GET/POST/PUT/DELETE/v2/schedules, /{scheduleId}, /logCron schedules for Actors and tasksfree
GET/v2/storeSearch Apify Store Actorsfree
GET/PUT/v2/users/me, /v2/users/{userId}, /v2/users/me/usage/monthly, /v2/users/me/limitsAccount, monthly usage and spending limits (can set max monthly usage)free
GET/v2/logs/{buildOrRunId}Raw log of a run or buildfree
GET/POST/PUT/DELETE/v2/browser-info, /v2/tools/encode-and-sign, /v2/tools/decode-and-verifyUtility toolsfree