Docs / Instagram Data API

Instagram Data API

NabatDesk provides access to publicly available Instagram data through a stable developer API. Customers authenticate with a NabatDesk API key — never with Instagram login credentials, and never with upstream provider secrets.

Available on paid plans only. An active non-free NabatDesk subscription (Starter, Pro, or Enterprise) is required. Free and expired subscriptions receive INSTAGRAM_DATA_API_SUBSCRIPTION_REQUIRED.

Authentication

Create an organization API key with the instagram-data:read scope, then send:

Header
Authorization: Bearer YOUR_NABATDESK_API_KEY

Base URL: /api/v1

Examples

cURL
curl -sS "/api/v1/instagram/data/users/by-username?username=instagram" \
  -H "Authorization: Bearer YOUR_NABATDESK_API_KEY"
JavaScript
const res = await fetch(
  "/api/v1/instagram/data/users/by-username?username=instagram",
  { headers: { Authorization: "Bearer YOUR_NABATDESK_API_KEY" } },
);
const json = await res.json();
console.log(json);
Python
import requests

r = requests.get(
    "/api/v1/instagram/data/users/by-username",
    params={"username": "instagram"},
    headers={"Authorization": "Bearer YOUR_NABATDESK_API_KEY"},
    timeout=30,
)
print(r.status_code, r.json())

Response shape

Success
{
  "success": true,
  "data": {},
  "meta": {
    "request_id": "req_...",
    "provider": "instagram-data",
    "cached": false
  }
}
Subscription required
{
  "success": false,
  "error": {
    "code": "INSTAGRAM_DATA_API_SUBSCRIPTION_REQUIRED",
    "message": "An active paid subscription is required to use the Instagram Data API."
  },
  "meta": { "request_id": "req_..." }
}

Endpoints

User

MethodPathParams
GET
By username
/instagram/data/users/by-username

Public profile for a username.

username
GET
By id
/instagram/data/users/by-id

Public profile for a user id.

id
GET
Media by username
/instagram/data/users/media

Recent public posts (paginated).

username, count?, maxId?
GET
Media by id
/instagram/data/users/media-by-id

Recent public posts by user id.

id, count?, maxId?
GET
Clips / reels
/instagram/data/users/clips

User reels by user id.

id, count?, maxId?
GET
Followers
/instagram/data/users/followers

Follower list (paginated).

id, count?, maxId?, query?
GET
Following
/instagram/data/users/following

Following list (paginated).

id, count?, maxId?, query?
GET
Stories
/instagram/data/users/stories

Stories for one or more user ids.

ids (comma-separated)
GET
Highlights
/instagram/data/users/highlights

Highlight reel list.

id
GET
Tagged media
/instagram/data/users/tagged-media

Media where the user is tagged.

id, count?, maxId?
GET
Live
/instagram/data/users/live

Live broadcast info for a user.

id
GET
Similar accounts
/instagram/data/users/similar

Similar public accounts.

id
GET
Search users
/instagram/data/users/search

Search public Instagram users.

query
GET
Guides
/instagram/data/users/guides

User guides list.

id, maxId?

Media

MethodPathParams
GET
Media info
/instagram/data/media/info

Media details by id.

id
GET
By shortcode
/instagram/data/media/by-shortcode

Media details by shortcode.

shortcode
GET
Comments
/instagram/data/media/comments

Comments on a media item.

id, minId?, canSupportThreading?
GET
Likes
/instagram/data/media/likes

Likers by shortcode.

shortcode
GET
Id by shortcode
/instagram/data/media/id-by-shortcode

Resolve media id.

shortcode
GET
Shortcode by id
/instagram/data/media/shortcode-by-id

Resolve shortcode.

id

Hashtag / Location / Guide / Highlight / Comment / Audio

MethodPathParams
GET
Hashtag info
/instagram/data/hashtags/info

Hashtag metadata.

name
GET
Hashtag media
/instagram/data/hashtags/media

Media for a hashtag.

name, tab?, page?, maxId?
GET
Search hashtags
/instagram/data/hashtags/search

Search hashtags.

query
GET
Location info
/instagram/data/locations/info

Location metadata.

id
GET
Location media
/instagram/data/locations/media

Media at a location.

id, page?, maxId?
GET
Search locations
/instagram/data/locations/search

Search locations.

query
GET
Guide info
/instagram/data/guides/info

Guide details.

id
GET
Highlight stories
/instagram/data/highlights/stories

Stories inside highlights.

ids (comma-separated)
GET
Comment likes
/instagram/data/comments/likes

Users who liked a comment.

id, maxId?
GET
Comment replies
/instagram/data/comments/replies

Replies under a comment.

id, mediaId, maxId?
GET
Audio media
/instagram/data/audio/media

Media using an audio track.

id, maxId?
GET
Search audio
/instagram/data/audio/search

Search audio tracks.

query

Rate limits & upstream errors

NabatDesk enforces per-organization rate limits and daily quotas by plan (Starter / Pro / Enterprise). Exceeding limits returns 429 with a normalized error code.

Provider/upstream failures surface as 502 (route still valid). Invalid or unknown Instagram ids may also fail upstream even when the API path is correct.

NabatDesk Core APITelegram Bot APITelegram Account API