Quickstart
Make your first call, understand what comes back, and know where to look next.
You need two things to make a call: the base URL and your API key. Everything else is one endpoint name and a JSON body.
Your first request
This asks for a TikTok creator's profile. Swap in your own key and run it.
curl -X POST 'https://scrape.crawlzo.com/v1/scrapers/tiktok-user-info-v4' \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"unique_id": "nasa"}'If the key is valid you get a 200 back in a couple of seconds, with the
profile under data.
What comes back
Every endpoint returns the same outer shape. Only the contents of data change
from one endpoint to the next.
{
"request_id": "req_8f2c1d94e7b0",
"success": true,
"status": { "code": "OK", "message": "Scrape completed.", "retryable": false },
"error": null,
"meta": {
"client_id": "client_abc123",
"scraper": "tiktok-user-info-v4",
"billable": true,
"duration_ms": 1566
},
"data": { }
}Read success to decide whether you got an answer. Read status.retryable to
decide whether trying again could change that. The response envelope
guide covers each field, and errors and retries covers what
to do when success is false.
Calls take seconds, not milliseconds
These endpoints read live pages from the platforms themselves. A fast one answers in about a second, a slow one can take thirty. Set your client timeout to at least 120 seconds and treat the call as a background job rather than something you block a web request on.
Median across all endpoints is roughly 3 seconds. Per-endpoint timings are on each endpoint's page, measured on the request shown in its example.
Where to go next
If you are wiring this into something real, read errors and retries before you write your retry loop. The single most expensive mistake is retrying a request that can never succeed.
If you are pulling more than one page of anything, read pagination. Cursors behave differently across platforms and one of them expires.
If you are comparing fields across platforms, read nulls and zeros.
A null in a metric field is a deliberate statement, not a gap in the data.