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.
INSTAGRAM_DATA_API_SUBSCRIPTION_REQUIRED.Authentication
Create an organization API key with the instagram-data:read scope, then send:
Authorization: Bearer YOUR_NABATDESK_API_KEYBase URL: /api/v1
Examples
curl -sS "/api/v1/instagram/data/users/by-username?username=instagram" \
-H "Authorization: Bearer YOUR_NABATDESK_API_KEY"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);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": true,
"data": {},
"meta": {
"request_id": "req_...",
"provider": "instagram-data",
"cached": false
}
}{
"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
| Method | Path | Params |
|---|---|---|
| GET | By username /instagram/data/users/by-usernamePublic profile for a username. | username |
| GET | By id /instagram/data/users/by-idPublic profile for a user id. | id |
| GET | Media by username /instagram/data/users/mediaRecent public posts (paginated). | username, count?, maxId? |
| GET | Media by id /instagram/data/users/media-by-idRecent public posts by user id. | id, count?, maxId? |
| GET | Clips / reels /instagram/data/users/clipsUser reels by user id. | id, count?, maxId? |
| GET | Followers /instagram/data/users/followersFollower list (paginated). | id, count?, maxId?, query? |
| GET | Following /instagram/data/users/followingFollowing list (paginated). | id, count?, maxId?, query? |
| GET | Stories /instagram/data/users/storiesStories for one or more user ids. | ids (comma-separated) |
| GET | Highlights /instagram/data/users/highlightsHighlight reel list. | id |
| GET | Tagged media /instagram/data/users/tagged-mediaMedia where the user is tagged. | id, count?, maxId? |
| GET | Live /instagram/data/users/liveLive broadcast info for a user. | id |
| GET | Similar accounts /instagram/data/users/similarSimilar public accounts. | id |
| GET | Search users /instagram/data/users/searchSearch public Instagram users. | query |
| GET | Guides /instagram/data/users/guidesUser guides list. | id, maxId? |
Media
| Method | Path | Params |
|---|---|---|
| GET | Media info /instagram/data/media/infoMedia details by id. | id |
| GET | By shortcode /instagram/data/media/by-shortcodeMedia details by shortcode. | shortcode |
| GET | Comments /instagram/data/media/commentsComments on a media item. | id, minId?, canSupportThreading? |
| GET | Likes /instagram/data/media/likesLikers by shortcode. | shortcode |
| GET | Id by shortcode /instagram/data/media/id-by-shortcodeResolve media id. | shortcode |
| GET | Shortcode by id /instagram/data/media/shortcode-by-idResolve shortcode. | id |
Hashtag / Location / Guide / Highlight / Comment / Audio
| Method | Path | Params |
|---|---|---|
| GET | Hashtag info /instagram/data/hashtags/infoHashtag metadata. | name |
| GET | Hashtag media /instagram/data/hashtags/mediaMedia for a hashtag. | name, tab?, page?, maxId? |
| GET | Search hashtags /instagram/data/hashtags/searchSearch hashtags. | query |
| GET | Location info /instagram/data/locations/infoLocation metadata. | id |
| GET | Location media /instagram/data/locations/mediaMedia at a location. | id, page?, maxId? |
| GET | Search locations /instagram/data/locations/searchSearch locations. | query |
| GET | Guide info /instagram/data/guides/infoGuide details. | id |
| GET | Highlight stories /instagram/data/highlights/storiesStories inside highlights. | ids (comma-separated) |
| GET | Comment likes /instagram/data/comments/likesUsers who liked a comment. | id, maxId? |
| GET | Comment replies /instagram/data/comments/repliesReplies under a comment. | id, mediaId, maxId? |
| GET | Audio media /instagram/data/audio/mediaMedia using an audio track. | id, maxId? |
| GET | Search audio /instagram/data/audio/searchSearch audio tracks. | query |
Rate limits
NabatDesk enforces per-organization rate limits and daily quotas by plan (Starter / Pro / Enterprise). Exceeding limits returns 429 with a normalized error code.