StoriesFly logo
Other endpoint

Shop products API

The products of one shop collection (collection_id from shop/storefront), a page at a time. Pass next_cursor back as cursor for the next page.

GEThttps://storiesfly.com/api/v1/shop/products
  • Price 1 request
  • Answers up to 1 hour old

Parameters

All parameters go in the query string.

NameTypeSentDescription
collection_idstringrequiredId of a shop collection, as shop/storefront lists them.
cursorstringoptionalThe next_cursor of the page before. Leave it out for the first page.

Example request

Put your own key in the header.

curl "https://storiesfly.com/api/v1/shop/products?collection_id=curated-9651971321535029-390927249" \
  -H "X-Api-Key: sf_live_your_key"

Example response

200 OK · X-Units-Charged: 1

  "collection" 
    "id" "curated-9651971321535029-390927249"
  
  "products" 
    
      "id" "27260212646988163"
      "name" "Gymshark Adapt Solid Leggings - Cherry Purple"
      "price" 60
      "currency" "USD"
      "image_url" "https://scontent-iad6-1.cdninstagram.com/v/t45.5328-4/829171560_1700662492062654_6359498266337264432_n.jpg"
      "url" "https://gymsharkusa.myshopify.com/products/gymshark-adapt-x-whitney-leggings-leggings-purple-aw26"
    
    
      "id" "28443363868664037"
      "name" "Gymshark Power T-Shirt - Cherry Purple"
      "price" 36
      "currency" "USD"
      "image_url" "https://scontent-iad6-1.cdninstagram.com/v/t45.5328-4/831067489_1076985248435512_4691220592327613214_n.jpg"
      "url" "https://gymsharkusa.myshopify.com/products/gymshark-power-t-shirt-ss-tops-purple-aw26"
    
  
  "next_cursor" null
  "has_more" false

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 1 hour. Asking again inside that time returns the same answer and takes 1 request again.

Page size follows Instagram and varies by endpoint.

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. 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 collection does not exist. 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

Where do I get collection_id?

From collections in shop/storefront.

How do I read all the products of a collection?

Send the next_cursor of the answer back as cursor for the next page, and stop when has_more is false. Each page takes 1 request. A cursor works only on the endpoint that returned it.

What does a product hold?

Its id, name, price, currency, picture link and url, the seller's own link to the product.

Your first 100 requests are on us

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