Skip to main content
Normalized endpoints use the same resource names and response schemas across seven platforms. This page documents where each platform behaves differently.

Endpoint matrix

All routes are POST /api/v1/scrape/{platform}/{resource}.

Optional parameters

These optional parameters are fully supported by the normalized endpoints: Unknown fields on normalized endpoints are ignored, except Instagram and YouTube audience, whose upstream contract accepts only username and therefore rejects any extra field. Invalid values for documented fields return 400 INVALID_INPUT before billing.

Listing pagination

Pass next_cursor back as cursor exactly as returned. Stop when next_cursor is absent or empty, not when a page is shorter than expected. Each fetched page costs your account’s posts rate (one credit at the standard rate); no next page is prefetched.

TikTok

Audience data describes where the creator’s viewers are located. It is not the upload location of individual videos; normalized posts expose upload location in region when available. source can be followers (default) or comments; sample_size defaults to 250 and accepts 1 through 1,000; limit optionally caps the countries returned. These controls do not change the normalized response schema or the 25-credit cost. For favorites, reposts, stories, followers, following, sounds, hashtags, playlists, search, trends, comments, transcripts, and ads, use the TikTok platform operations.

Instagram

Listings return reels by default. Set include_carousels: true to add carousel posts. Carousel posts do not expose view counts, and static single-image posts are not included in listings. Fetch a static post individually with post and its /p/ URL.
Pages can include collaborator posts whose creator differs from the requested username. Instagram share links can use /reels/{code}/; both that form and /reel/{code}/ are accepted for a single-post lookup. Instagram reel transcripts are a separate, slower request because they require additional processing. Call POST /api/v1/scrape/instagram/transcript only when you need the spoken content; it costs one platform-operation credit in addition to a post-details lookup. Instagram audience demographics use the same normalized country-share shape as TikTok:
The request accepts only username and costs 25 credits. Successful responses contain audienceLocations, ranked by share, with country, countryCode, and percentage. Unlike TikTok’s sampled response, Instagram does not include count. A creator whose public activity cannot support an estimate returns a billed 404; transient source failures are refunded and can be retried once.
For trial reels with confidence and coverage data, use /instagram/trial-reels. Pass its cursor unchanged while has_more is true. An empty page may still have a continuation token. For full profile objects, separate timeline and reel listings, comments, transcripts, search, audio, and highlights, use the Instagram platform operations.

YouTube

Audience estimates are available with only a username:
This costs 25 credits and returns the same country-share schema as Instagram. The estimate uses public comment signals. It is not connected YouTube Analytics, and the response does not report a sample size or country counts. Insufficient public signals return a billed 404, even for a channel that exists. For example, veritasium returned this outcome in the live check on September 15, 2026. Profiles accept an @handle or a channel ID beginning with UC. follower_count means subscriber count. Listings return Shorts by default. Set contentType to video for long-form videos:
YouTube listing items do not contain a usable videoUrl, and listing comment counts can be 0 when unavailable. Fetch the specific post for a temporary media URL and the most complete metrics. To check whether a video has a pinned comment without fetching the post, call POST /scrape/youtube/pinned-comment with { "url": "..." }. It accepts a watch URL, a Shorts URL, a youtu.be link, or a bare 11-character video id, and costs your account’s post rate. See checking a YouTube pin.

Facebook

Profiles accept a vanity username or numeric profile ID. Listings contain Reels only; timeline photos, links, and non-Reel videos are not included. Page size depends on the Reels the Page exposes. Some Pages return only a few items and no cursor. Listing engagement can be display-rounded; use post when you need the most exact available values.

Snapchat

Listings return recent Spotlights in one response and never return a cursor. The response is the creator’s entire retrievable Spotlight inventory, not the first page of a larger catalog.

X

Use twitter in API paths, not x. Handles may include a leading @, and single-post lookups accept both x.com and twitter.com URLs. Listings contain original posts by default. Set include_replies: true to include replies:
The account’s pinned post can lead every page out of chronological order. Deduplicate by platform plus id while paging.

LinkedIn

Use a person slug such as jane-doe or an organization identifier such as company/acme. Always include the company/ prefix for organizations; a bare company slug can resolve to an unrelated person and still return a successful response. Listings are single-page only and never return a cursor. Some company pages expose only a small subset of their posts.

Response behavior

Field semantics, media URLs, transcripts, comments, and cursors.

TikTok and Instagram operations

All 44 focused operations with complete request and response documentation.