Quickstart

From signup to your first record in a few minutes. Get a key, send one GET, read the JSON.

1. Get a key

Sign up with an email address. The account starts with 25 free credits and no card, and free keys return up to 5 items per list call. Create a key on the API keys page; the secret starts with ik_live_ and is shown once.

2. Make a call

The profile endpoint is the cheapest way to see the shape of a response:

curl "https://api.instadata.dev/v1/instagram/channel-stats?handle=nasa" \
  -H "Authorization: Bearer ik_live_..."

From Node:

const url = new URL("https://api.instadata.dev/v1/instagram/channel-stats");
url.searchParams.set("handle", "nasa");

const resp = await fetch(url, { headers: { Authorization: "Bearer ik_live_..." } });
const { data, request_id } = await resp.json();
console.log(data.followers, request_id);

From Python:

import httpx

resp = httpx.get(
    "https://api.instadata.dev/v1/instagram/channel-stats",
    params={"handle": "nasa"},
    headers={"Authorization": "Bearer ik_live_..."},
    timeout=120,
)
resp.raise_for_status()
print(resp.json()["data"])

3. Read the response

Every endpoint answers with the same envelope:

{
  "data": { "handle": "nasa", "name": "NASA", "followers": 0, "verified": true, "…": "…" },
  "request_id": "req_01J…"
}

The X-Credits-Charged and X-Credits-Remaining headers say what the call cost and what is left. Keep request_id; quote it in a support email and the call can be traced.

4. Pick the next endpoint

Every endpoint is GET /v1/instagram/<name> with one required parameter: a url, a handle or a query. The sheet lists all of them with their price. Lists take limit and cursor; every call takes fresh, fields and format.

Building an agent instead? Add https://mcp.instadata.dev to Claude, ChatGPT or Cursor and skip the key entirely: MCP server.