Home

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. 1

    Pick the right surface

    LinkedIn URL lists → batch LinkedIn routes. Arbitrary pages → Web crawl (small sets). Other platforms → parallel typed GETs.

  2. 2

    Chunk and backoff

    Stay within documented maxUnits. For parallel fan-out, keep concurrency sensible and retry only transient failures.

  3. 3

    Store requestId per row

    When one URL in a batch looks wrong, you need the id for that attempt — not a vague timestamp.

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.