StoriesFly logo
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/video returns 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/videos and tiktok/user/stories read a TikTok account by its username. Each call takes one request, like any data call.
  • download returns 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 with upstream_unavailable and is refunded.

Official npm client 1.0.0

  • npm install storiesfly adds the official client for Node.js and TypeScript.
  • It has a typed method for every Instagram endpoint, follows next_cursor through a list, and retries a 429 after 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-Key header. 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-Remaining and X-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.json describes all of them.

Profiles show the verified badge, the bio and the link

  • user/profile returns verified, bio and external_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/profile answer carries the same three values as isVerified, bio and externalUrl.

Older endpoints keep working until December 31, 2026

  • /api/stories, /api/profile, /api/highlights, /api/media, /api/download, /api/posts and /api/tiktok/analytics keep working for calls with an API key until December 31, 2026. After that date a call with a key is answered 410 with the code legacy_endpoint. The website does not use a key and is not affected.
  • New work should use /api/v1/. The page /developers/docs/legacy lists 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/posts or /api/tiktok/analytics now carries the headers Deprecation, Sunset and Link. The Link points to /developers/docs/legacy.
  • After December 31, 2026 such a call is answered 410 with the code legacy_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.