Skip to content

POST /api/v1/reels/analyze

Submit an Instagram Reel URL for analysis. Returns immediately with a job ID; use GET /api/v1/reels/:id to get the result.


Request

POST /api/v1/reels/analyze
Authorization: Bearer ist_your_token
Content-Type: application/json

Body

{
  "url": "https://www.instagram.com/reel/DYa0IXPgnP5/"
}
Field Type Required Description
url string Full Instagram Reel URL (instagram.com/reel/ or instagram.com/p/)

Supported URL formats

https://www.instagram.com/reel/DYa0IXPgnP5/
https://instagram.com/reel/DYa0IXPgnP5/
https://www.instagram.com/p/DYa0IXPgnP5/
https://www.instagram.com/reel/DYa0IXPgnP5/?igsh=MTg5...  (with tracking params)

Response

202 Accepted

{
  "id": 42,
  "status": "pending"
}
Field Type Description
id integer Job ID — use this to poll for the result
status string Always "pending" on creation

Examples

curl -X POST https://api.instatollm.com/api/v1/reels/analyze \
  -H "Authorization: Bearer ist_your_token" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.instagram.com/reel/DYa0IXPgnP5/"}'
import httpx

r = httpx.post(
    "https://api.instatollm.com/api/v1/reels/analyze",
    headers={"Authorization": "Bearer ist_your_token"},
    json={"url": "https://www.instagram.com/reel/DYa0IXPgnP5/"},
)
r.raise_for_status()
job_id = r.json()["id"]
const r = await fetch("https://api.instatollm.com/api/v1/reels/analyze", {
  method: "POST",
  headers: {
    Authorization: "Bearer ist_your_token",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ url: "https://www.instagram.com/reel/DYa0IXPgnP5/" }),
});
const { id } = await r.json();

Errors

Status Body Cause
400 {"message": "URL must be an instagram.com link"} Non-Instagram URL
400 {"message": "url is required"} Missing URL field
401 {"error": "invalid API token"} Invalid or missing token
500 {"message": "..."} Server error