Updated October 21, 2026
API changelog
Every change that affects a request or its price, newest first. The date of the newest entry is the date the API pages were last updated.
TikTok, and a low-cost download endpoint
tiktok/videoreturns one TikTok video or photo post by its link: the video without the watermark, the soundtrack, the pictures of a photo post, the caption and its views, likes, comments and shares.tiktok/user/profile,tiktok/user/videosandtiktok/user/storiesread a TikTok account by its username. Each call takes one request, like any data call.downloadreturns only the files of an Instagram post, reel or IGTV, or of a TikTok video, by its link. It is sold at a fixed price at every level: $0.20 per 1,000 for a TikTok link and $0.50 per 1,000 for an Instagram link.- A number that is not exact is
null, never a rounded figure. The endpoints can be temporarily unavailable; such a call fails withupstream_unavailableand is refunded.
Official npm client 1.0.0
npm install storiesflyadds the official client for Node.js and TypeScript.- It has a typed method for every Instagram endpoint, follows
next_cursorthrough a list, and retries a429after the wait the API asks for. - The docs show its call next to cURL, JavaScript and Python on the page of each endpoint.
StoriesFly API v1
- The public API v1 is live at
/api/v1/. It returns public Instagram data as JSON: profiles, posts, reels, stories, highlights, comments, followers, hashtags, places and search. - A request needs one
X-Api-Keyheader. You never log in to Instagram or Facebook. - Requests are paid from a prepaid balance in US dollars. One call, or one page of a list, takes one request from the balance. Every data request costs $1.50 per 1,000 today; lower rates for larger top-ups open soon. The balance never expires.
- Sign in with Telegram to get a key and a number of free requests. Top up with crypto, or with TON or USDT on TON.
- Every answer from a data endpoint carries
X-Units-Charged,X-Balance-Remaining,X-Free-Units-RemainingandX-RateLimit-Remaining. Errors are{error, code}with a fixed list of codes, and a call that fails on our side is not charged. - Each endpoint has a docs page at
/developers/docs, and/openapi.jsondescribes all of them.
Profiles show the verified badge, the bio and the link
user/profilereturnsverified,bioandexternal_url.- The profile header on the site and in the mini app shows the blue badge, the bio with its line breaks and the link in bio.
- The older
/api/profileanswer carries the same three values asisVerified,bioandexternalUrl.
Older endpoints keep working until December 31, 2026
/api/stories,/api/profile,/api/highlights,/api/media,/api/download,/api/postsand/api/tiktok/analyticskeep working for calls with an API key until December 31, 2026. After that date a call with a key is answered410with the codelegacy_endpoint. The website does not use a key and is not affected.- New work should use
/api/v1/. The page/developers/docs/legacylists each older endpoint next to the v1 endpoint that replaces it.
The old API plans are retired
- The Content API plans (Starter, Growth and Scale) and the Tracker API plans (Starter, Growth and Scale) are no longer sold. A plan bought earlier keeps working until its term ends.
- The Basic and Pro plans of the website still include the tracker routes.
- A call with an API key to
/api/stories,/api/profile,/api/highlights,/api/media,/api/download,/api/postsor/api/tiktok/analyticsnow carries the headersDeprecation,SunsetandLink. TheLinkpoints to/developers/docs/legacy. - After December 31, 2026 such a call is answered
410with the codelegacy_endpoint. A call without a key, such as one from the website, is not affected.
Your first 100 requests are on us
Sign in with Telegram, create a key, call any endpoint. Top up only when you need more.
© 2026 StoriesFly
