Credits
How SocialCrawl's credit-based billing works — tiers, welcome bonus, refunds, and free cache hits
Credits
SocialCrawl uses a credit-based, pay-as-you-go billing model. Every request costs credits based on the endpoint's tier. No time-based rate limits — just a concurrency ceiling of 50 simultaneous requests per API key.
How much does each request cost?
| Tier | Cost | Endpoints | Typical use |
|---|---|---|---|
| Standard | 1 credit | 176 | Profiles, posts, comments, basic search |
| Advanced | 5 credits | 90 | Trending feeds, ad libraries, audience analytics |
| Premium | 10 credits | 18 | Video transcripts, age/gender detection |
For the cost of every individual endpoint — including bundle endpoints like /v1/search/everywhere that use a flat fee — see Endpoint pricing.
Welcome bonus
Every new account receives 100 free credits on signup — enough to try every standard endpoint without attaching a payment method. The bonus appears in your transaction history as a bonus entry.
How do I check my credit balance?
Three ways, depending on context:
-
Every API response includes
credits_remainingand anX-Credits-Remainingheader -
Meta endpoint —
GET /v1/credits/balance(0 credits, API-key auth) returns the balance plus a summary of recent deductions:{ "success": true, "platform": "meta", "endpoint": "/v1/credits/balance", "data": { "balance": 8432, "recent_deductions": { "last_24h": 128, "last_7d": 1043 } }, "credits_used": 0, "credits_remaining": 8432, "request_id": "req-abc123", "cached": false } -
Dashboard — Usage and Activity Logs pages show balance, history, and per-endpoint breakdowns
Are cache hits free?
Yes. A response served from cache ("cached": true, X-Cache: HIT) costs 0 credits: no transaction row is written and your balance is unchanged. We already paid the upstream cost when we fetched the original, so charging you again for the same data would be double-billing.
Caching is on by default and is the single biggest lever for keeping your bill down. For the freshness windows per data type, the shared-across-account model, and how to force a guaranteed-live fetch when you need one, see the Caching page.
When are credits refunded?
Credits are automatically refunded when a paid request cannot complete successfully:
| Scenario | Status | Refund |
|---|---|---|
| Upstream platform error | 502 UPSTREAM_ERROR | ✅ |
| Circuit breaker open | 503 SERVICE_UNAVAILABLE | ✅ |
| Internal server error | 500 INTERNAL_ERROR | ✅ |
| Empty upstream body (nonexistent handle, etc.) | 404 RESOURCE_NOT_FOUND | ✅ |
Client-side errors (400/401/402/404 ENDPOINT_NOT_FOUND) | 4xx | No charge to refund |
| 405 / 409 / 422 | 4xx | No charge to refund |
Refunds happen atomically inside the router — your balance is restored before the error envelope returns.
Idempotent retries don't double-charge
If you send an Idempotency-Key header, we guarantee a single charge per key. Replayed requests return the original response verbatim, deduct 0 new credits, and include X-Idempotent-Replay: true. See Response Schema for headers and the Error Handling page for conflict behaviour.
Topping up
Buy credit packs in Dashboard → Billing. Packs are one-time purchases (no subscriptions):
| Plan | Credits | Price |
|---|---|---|
| Free | 100 | £0 (signup bonus) |
| Starter | 2,500 | £15 |
| Growth | 20,000 | £49 |
| Pro | 150,000 | £299 |
| Enterprise | Custom | Contact us |
Credits do not expire. Every purchase, deduction, refund, and bonus is recorded on your transaction history.
Pagination
One rule for every list endpoint. Send `pagination.next_cursor` back as `cursor` and stop when `has_more` is false. Identical on all 123 paginatable endpoints, every platform.
Caching
How SocialCrawl caches responses, why cache hits are free, freshness windows per data type, the shared-cache model, and how to force a live fetch with Cache-Control:no-cache
