Base URL: https://api.konti.bot
All API requests require a Bearer token in the Authorization header. API keys start with kb_live_ and
are 40 characters long.
Generate keys in the API Keys page. Keys are shown once at creation -- store them securely.
All responses are JSON. Successful responses include a data field and a meta field with cost and balance
information.
| HTTP | Code | Description |
|---|---|---|
| 401 | invalid_api_key | Missing, malformed, or revoked API key |
| 402 | insufficient_balance | Not enough balance for this request. Top up at /billing. |
| 400 | invalid_request | Missing or invalid query parameters |
| 502 | upstream_error | Instagram scrape failed. You are not charged. |
| 504 | upstream_timeout | Request timed out. You are not charged. |
All endpoints accept a q query parameter.
The API automatically parses any of these formats:
| Input | Parsed As |
|---|---|
nike | Username |
@nike | Username (@ stripped) |
https://instagram.com/nike | Username (from URL) |
https://instagram.com/p/ABC123/ | Shortcode (from post URL) |
https://instagram.com/reel/ABC123/ | Shortcode (from reel URL) |
ABC123def | Bare shortcode |
Cached data from our enriched database. If not found, automatically falls back to a live Instagram scrape, persists the result, and returns it.
/v1/profiles $0.0005Look up an Instagram profile from our database of 3.8M+ enriched profiles. Returns cached profile data with AI enrichment (niche, demographics, engagement rate). If not in DB, falls back to a live scrape.
DB-first: Cached hits return instantly. Live fallback may take a few seconds. Response
includes an X-Source header (cache or live).
| q | string | required | Username, @handle, or full Instagram profile URL |
/v1/posts $0.0005Look up a post by shortcode from our database. Returns cached post data with comments. If not in DB, falls back to a live scrape.
DB-first: Cached hits include up to 50 comments from our database. Response includes an X-Source header (cache or live).
| q | string | required | Post shortcode, instagram.com/p/X URL, or instagram.com/reel/X URL |
Real-time Instagram scraping. Returns raw, unmodified Instagram JSON. 30s timeout with auto-retry (up to 3 attempts). Failed upstream requests are never charged.
/v1/live/web_profile $0.0005Fetch profile info via Instagram's web_profile_info REST endpoint. Returns
bio, followers, following, posts count, first 12 posts inline, business info, verified status, and more.
| q | string | required | Username, @handle, or full Instagram profile URL |
/v1/live/post $0.0005Fetch a single post via Instagram's GraphQL xdt_shortcode_media query. Richest
single-post payload: caption, likes, comments, media URLs, video duration, is_paid_partnership, is_ad, carousel items.
| q | string | required | Post shortcode, instagram.com/p/X URL, or instagram.com/reel/X URL |
/v1/live/profile $0.0005 / pageFetch paginated timeline posts via Instagram's GraphQL user timeline query. Billed per page of 12 posts.
Billing note: post_type filtering does NOT reduce
cost. Setting num_of_posts=24&post_type=reel fetches 24 posts (2 pages, $0.0010),
then returns only the reels found in those posts.
| q | string | required | Username, @handle, or full Instagram profile URL |
| num_of_posts | integer | optional | Default 12. Set -1 for unlimited (up to 240, max 20 pages). Billed per page
of 12. |
| post_type | string | optional | Post-processing filter: reel, photo, carousel, video. Does NOT affect billing. |
| num_of_posts | Pages Fetched | Cost |
|---|---|---|
12 (default) | 1 | $0.0005 |
24 | 2 | $0.0010 |
50 | 5 | $0.0025 |
-1 (unlimited) | up to 20 | $0.0005-$0.0100 |
Need help? Contact support@konti.bot