StoriesFly logo
Stories endpoint

Instagram story API

One story by its link or id: media link, time and duration, and the account it belongs to. Stories are only available while they are up.

GEThttps://storiesfly.com/api/v1/story
  • Price 1 request
  • Answers up to 3 minutes old

Parameters

All parameters go in the query string.

NameTypeSentDescription
urlstringone ofLink to the story. Send exactly one of url or id.
idstringone ofNumeric id of the story. Send exactly one of url or id.

Example request

Put your own key in the header.

curl "https://storiesfly.com/api/v1/story?id=4008637512964239886" \
  -H "X-Api-Key: sf_live_your_key"

Example response

200 OK · X-Units-Charged: 1

  "user" 
    "id" "286628010"
    "username" "brooklynandbailey"
  
  "story" 
    "id" "4008637512964239886"
    "url" "https://www.instagram.com/stories/brooklynandbailey/4008637512964239886/"
    "taken_at" 1792086850
    "taken_at_iso" "2026-10-15T17:54:10.000Z"
    "media_type" "video"
    "media_url" "https://scontent-iad6-1.cdninstagram.com/o1/v/t2/f2/m78/AQPH74NahzbMjNpeMfSF0lL2HOrUTana5q4EzP0NQZQHGeUJCeTuDuAvmgXOQa7K9UWTibUM1hngLk3u7IsLT4iSQQxNyL_rn0rbjwk…"
    "thumbnail_url" "https://scontent-iad6-1.cdninstagram.com/v/t51.71878-15/851828943_1070743629289559_5712408482754146592_n.jpg"
    "video_duration" 7.666
  

A real answer, shortened: lists are cut to two items and long texts to 160 characters.

Price and freshness

A call takes 1 request. Free requests are spent first, then your balance. The pricing page has the rates.

Answers are kept for up to 3 minutes. Asking again inside that time returns the same answer and takes 1 request again.

Errors

A failed call answers with an HTTP status and a body {error, code}. These are the codes this endpoint gives. Errors and what is charged covers all of them.

StatusCodeWhen
400bad_requestA parameter is missing or wrong, or not exactly one of url or id was sent. fields lists the names. Free.
401unauthorizedThe X-Api-Key header is missing or the key is wrong. Free.
402credits_exhaustedThe free requests and the balance are used up. Top up in the dashboard. Free.
403telegram_requiredThe account behind the key is not linked to Telegram. The answer has a link_url to do it. Free.
404not_foundThe story does not exist or has expired. Charged like an answer.
429rate_limitedMore requests in a second than your level allows. Wait for the Retry-After header. Free.
500internal_errorA fault on our side. Retry shortly. Refunded.
503upstream_unavailableOur side failed or timed out. Retry shortly. Refunded.
FAQ

Questions about this endpoint

Should I send the link or the id?

Either one, and not both. A story link also names the account. The id is the number at the end of the link.

What if the story has expired?

A story is up for 24 hours. After that the call answers not_found, which is charged like an answer.

What does the answer hold?

The story with its media link, time and video length, and the account it belongs to, in the same fields as user/stories.

Your first 100 requests are on us

Sign in with Telegram, create a key, call any endpoint. Top up only when you need more.