Skip to main content
GET /v1/source-routes is the live answer for your workspace: platform, state, recognized URL forms, capabilities, and limits. Beyond single items, these page endpoints are available, each returned inside the request. GET /v1/items and GET /v1/comments name their object with a selector that carries the platform; GET /v1/search takes the platform as a parameter.

Route states

TikTok

Refmatter reads the public video page from a fixed set of addresses. It supports full video URLs with @handle/video/<id>, /v/<id>, or /video/<id>. Share short links (vm.tiktok.com/..., tiktok.com/t/...) are not resolved locally. Video and source captions can be preserved when the page provides them. An account URL, or tiktok:@handle, names an account for account lookup and the 10 newest videos.

Instagram

Refmatter reads public posts and reels from a fixed set of addresses. Video posts and reels are preserved. Image posts and carousels without video become metadata-only references on import, with mediaAvailability: unavailable; the first video in a carousel with video is preserved. Instagram publishes no caption tracks. Private accounts, stories, highlights, and share links are outside the route. Use a /p/<shortcode> or /reel/<shortcode> URL. A profile URL, or instagram:@username, names an account for account lookup and posts and reels.

YouTube

Metadata is read from the public watch page. When the video publishes captions, those captions provide the transcript. Watch links, youtu.be links, and Shorts links are accepted; playlists and live pages are not.

Meta Ad Library

Use an ad link in the form https://www.facebook.com/ads/library/?id=<digits>. Lookup returns the ad and its public metadata. Import also preserves the ad’s available creative media and poster data. An Ad Library page link with view_all_page_id names an advertiser and is not an item link: pass it, or meta_ad_library:<page id>, to an advertiser’s ads, or find the advertiser by name with advertiser search.

What a source cannot deliver

Private, members-only, purchased, age-gated, live, and premiere content is reported with stable codes (unavailable_private, unavailable_restricted, unsupported_object) rather than a partial result. Refmatter reads only what a source serves publicly and does not use platform accounts or account cookies. If a source does not show an object publicly, the API returns a stable error code rather than an empty result.

Limits

Per-route limits (maximum bytes, duration, video height) are part of the route projection. Exceeding one is limit_exceeded and is not retried.