The batch finishes. You pay for what arrived.

apihq makes pay-per-result data APIs (Apify Actors) that turn public YouTube, Google Play, and App Store data into pipeline-ready JSON.
An invalid or unavailable input returns a typed success: false row — billed $0 — and the run keeps going.

23,500+Play reviews delivered
7,000+Transcripts delivered
6,300+Comments delivered

Delivered through apihq's data APIs · Apify console, 2026-07-20

Example run / youtube-transcript / rows 35–39 of 50

One failed input. No failed batch.

#INPUTRESULTCHARGE
35dQw4w9WgXcQtranscript$0.0030
36jNQXAC9IVRwtranscript$0.0030
3700000000000PLAYABILITY$0.0000
DATASET ROWsuccess: false
ERROR CODEPLAYABILITY
BILLED$0.0000
38kJQP7kiw5Fktranscript$0.0030
399bZkp7q19f0transcript$0.0030
49delivered rows
1typed failure
$0.147total charged
SUCCEEDEDrun status

Your script worked. Then you deployed it.

YouTube commonly blocks datacenter IP ranges, so the library that ran fine on your laptop starts throwing RequestBlocked from the cloud. One captionless video raises at item 4,732 and takes the night's batch with it. The fix lands on you, at the worst hour.

apihq exists for exactly this moment. The fetch becomes a contract: delivered rows are billed, failures come back typed and free, and the batch keeps going.

Pay-per-result data APIs for YouTube, Google Play, and the App Store

apihq makes seven data APIs with one failure contract. They are Apify Actors — cloud tasks you call by API — that fetch public YouTube, Google Play, and Apple App Store data as JSON rows, and you pay only for the rows that arrive.

Send video IDs, channel handles, or app IDs. Successful results are billed at $3.00 per 1,000 transcripts, $0.50 per 1,000 videos, $0.40 per 1,000 shorts, $0.40 per 1,000 comments, $0.20 per 1,000 results, $0.08 per 1,000 reviews, and $0.08 per 1,000 reviews. Invalid or unavailable inputs become unbilled success: false rows in the same dataset, so one bad item does not take the batch down.

Platforms
YouTube · Google Play · App Store
Price
from $0.08 / 1,000 rows
Failed item
$0.0000
APIINPUTOUTPUTPRICEFAILURE
YouTubeTranscriptsvideo IDtranscripts$0.0030/transcriptNO_CAPTIONS · $0
YouTubeChannel videosURL / @handlevideos$0.0005/videoCHANNEL_NOT_FOUND · $0
YouTubeShortsURL / @handleshorts$0.0004/shortNO_SHORTS · $0
YouTubeCommentsvideo IDcomments$0.0004/commentCOMMENTS_DISABLED · $0
YouTubeSearchkeywordresults$0.0002/resultNO_RESULTS · $0
Google PlayPlay reviewspackage namereviews$0.00008/reviewNO_REVIEWS · $0
App StoreApp Store reviewsapp ID / URLreviews$0.00008/reviewNO_REVIEWS · $0

Prices are per delivered result on Apify, with platform compute included. A failed item is retained as a coded row and is not charged.

Failure is a result, not an exception.

Every apihq actor returns an undeliverable item as a typed success: false row in the dataset, billed $0. Branch once on success. Stable codes tell you what happened; request_id traces the exact attempt.

Every error code, in one reference →

dataset rows
// one batch, one dataset — branch on "success"

{ "success": true,
  "video_id": "jNQXAC9IVRw",
  "transcript": [ ... ] }            // billed  $0.0030

{ "success": false,
  "video_id": "00000000000",
  "code": "PLAYABILITY",
  "status_code": 403,
  "request_id": "req_911f37d2e556" } // billed  $0.0000
Apify API · Python · Node.js · webhooksOpen API reference →

What a batch actually costs

Most per-request APIs bill the attempt. apihq bills the row. Three worked examples, at list prices:

A 200-video channel, as a corpus
$0.64

200 videos listed ($0.10) plus 180 transcripts delivered ($0.54). The 20 captionless videos return typed rows and cost $0.

A batch of only dead IDs
$0.00

Every row comes back success: false with a stable code. Nothing delivered, nothing billed.

One failure in a 5,000-row run
$0.0000 for the miss

Row 4,732 arrives typed, with a request_id for support. The other 4,999 keep flowing.

Keep the pipeline. Remove the maintenance shift.

apihq is for the point where a local extraction script becomes an unattended production job. The JSON workflow stays yours; the actors handle retries, proxies, upstream changes, and per-item failures.

No new subscription

The actors run on your existing Apify account, free tier included. Charges appear on your Apify invoice.

No YouTube Data API key

Send a public video ID or channel handle directly. None of your YouTube Data API quota is consumed.

Use the integrations you have

Call from the Apify API, Python or Node.js SDKs, Make, Zapier, n8n, Slack, or webhooks.

Set a hard spend limit

Apify Run Limits stop the actor cleanly at your cap and preserve the results already delivered.

What these APIs do not do

They read caption tracks that already exist. They do not transcribe audio.

They read public data only. Private, members-only, and age-gated items return an unbilled failure row.

Each actor performs one focused job. Use a general browser automation tool for open-ended crawling.

Frequently asked questions

What is apihq?
A family of pay-per-result data APIs (Apify Actors, cloud tasks you call by API) that turn public platform data into pipeline-ready JSON. You pay only for delivered results; an invalid or unavailable item returns an unbilled success: false row while the actor continues the batch.
Do I need a YouTube Data API key?
No. The actors read YouTube's public data directly. You don't provision a Google key, and none of your YouTube Data API quota is consumed.
How is it billed?
Per delivered result, on your existing Apify account: $3.00 per 1,000 transcripts, $0.50 per 1,000 videos, $0.40 per 1,000 shorts, $0.40 per 1,000 comments, $0.20 per 1,000 results, $0.08 per 1,000 reviews, and $0.08 per 1,000 reviews. Failed items cost $0, and platform compute is included in the per-result price.
Can I use it from Python or Node.js?
Yes. Call the actors through the Apify API or the official apify-client SDKs for Python and Node.js. Make, Zapier, n8n, and webhooks are supported through Apify's official integrations.
What happens when an item can't be fetched?
It lands in the same dataset as a success:false record with a stable machine-readable code, a human-readable error, and a request_id. It is not charged and the run still succeeds.
Is apihq affiliated with YouTube, Google, or Apple?
No. The actors read publicly available data only and are not endorsed by or affiliated with YouTube, Google, or Apple.

Paste one video ID. Inspect the row.

Start in the Apify console, or copy the Python or Node.js example. The first run costs under a cent on your existing Apify account — no new subscription, no YouTube Data API key.