Bulk and multi-URL social data
Most Social Fetch routes are one entity per request — that is the right model for live product lookups. Where we ship true multi-URL batch inputs (LinkedIn and Web crawl), you pass a list, get per-URL results, and pay per URL. Everywhere else, fan out parallel GETs against the same key across 17 platforms (137 operations).
What bulk means here
Social Fetch is a synchronous REST API. We do not run overnight Actor jobs or drop warehouse datasets. Bulk means either (1) documented multi-URL query params on specific routes, or (2) your own parallel callers against single-URL endpoints with credits as the ceiling.
There is no published RPS cap on paid metered routes beyond credit balance. Guidance is to stay under roughly 500 concurrent requests for reliability — that is advice, not a hard throttle.
Native multi-URL routes
LinkedIn people profiles, organizations, and jobs accept multiple URLs in one request — up to 50 profile URLs, 50 organization URLs, and 50 job URLs. Pricing is per URL requested; see each operation page for the credit rate.
Web crawl accepts up to 5 public URLs in one synchronous call and returns per-page results under the same credit wallet as social routes. It is for bounded URL sets, not unbounded site mirrors.
Patterns that work in production
Batch where the docs say so
Use LinkedIn multi-URL and Web crawl when you already have a list. Do not invent undocumented urls[] params on TikTok or Instagram profile GETs.
Parallel single-URL elsewhere
For Instagram, TikTok, YouTube, and most other routes, fire concurrent GETs. Each response still carries its own requestId and creditsCharged.
Paginate lists, do not bulk-scrape feeds
Profile video and post list routes use cursors. Walk pages; do not expect a single call to dump an entire creator archive.
Respect completed-attempt billing
A finished not_found in a batch still consumes the credits documented for that URL. Infrastructure failures on our side do not.
How to run a bulk job
- 1
Pick the right surface
LinkedIn URL lists → batch LinkedIn routes. Arbitrary pages → Web crawl (small sets). Other platforms → parallel typed GETs.
- 2
Chunk and backoff
Stay within documented maxUnits. For parallel fan-out, keep concurrency sensible and retry only transient failures.
- 3
Store requestId per row
When one URL in a batch looks wrong, you need the id for that attempt — not a vague timestamp.
Batch docs
- LinkedIn profiles (multi-URL)
Up to 50 profile URLs per request.
- LinkedIn organizations
Up to 50 organization URLs per request.
- LinkedIn jobs
Up to 50 job URLs per request.
- Web crawl
Up to 5 URLs in one synchronous crawl.
- Credits
How packs and per-call charges work.
FAQ
Does Social Fetch have a bulk API?
Yes for specific routes: LinkedIn multi-URL profile, organization, and job lookups (up to 50 URLs) and Web crawl (up to 5 URLs). Most other platforms use one entity per request; run those in parallel.
Can I send 100 Instagram profile URLs in one call?
Not as a single multi-URL Instagram endpoint. Call GET /v1/instagram/profiles/{handle} (or the documented URL form) once per profile, concurrently if you need throughput.
How is batch pricing calculated?
Per-URL routes document credits per URL and a maxUnits cap in OpenAPI. Always trust meta.creditsCharged on the response.
Is there an async batch job queue?
No. Responses are synchronous HTTP. If you need overnight warehouse drops, run your own scheduler against the API — we do not host Actor-style job storage.
What are the rate limits for bulk fan-out?
Paid metered routes are limited by credit balance, not a published RPS tier. Stay under ~500 concurrent requests as a reliability guideline.
Does bulk cover all 17 platforms?
Multi-URL batch inputs exist where documented (LinkedIn and Web crawl today). The rest of the 137 operations are single-entity GETs you can parallelize on one API key.
Try a multi-URL LinkedIn call
100 free credits. Start with two profile URLs, then scale to your documented cap.