Apinoa Docs

Post

Get one Instagram post or reel.

View raw .mdx
GET | POST /v1/instagram/post

Send parameters as a query string with GET, or as a JSON body with POST. Both are equivalent.

What to Pass

PassReadsNotes
idThe postA shortcode or the URL

Pass one source per call. Every identifier also takes the page URL.

Parameters

ParameterTypeRequiredNotes
idstringPost shortcode, or the post URL (…/p/<code>/, …/reel/<code>/, …/tv/<code>/).
includestring listAttach from the same page, at no extra cost: comments (the first comments, ext.comments), authorPosts (the author's other recent posts, ext.authorPosts).

Request

curl "https://gateway.apinoa.com/v1/instagram/post?id=DeuOR-CjKE9" \
  -H "x-api-key: $APINOA_API_KEY"

Response

Returns Post in data. A real response, shortened: arrays keep their first entries and long text is cut.

{
  "success": true,
  "data": {
    "platform": "instagram",
    "id": "4012207125530714429",
    "url": "https://www.instagram.com/p/DeuOR-CjKE9/",
    "author": {
      "platform": "instagram",
      "id": "787132",
      "handle": "natgeo",
      "displayName": "National Geographic",
      "url": "https://www.instagram.com/natgeo/",
      "avatarUrl": "https://scontent-sjc6-1.cdninstagram.com/v/t51.82787-19/683576066_18653628823019133_9051036240972105113_n.jpg?stp=dst-j…",
      "verified": true
    },
    "text": "Some of the best reasons to travel in 2027 are far from the usual destinations. 🌎\n\nNational Geographic’s picks for Best…",
    "createdAt": "2026-10-20T16:06:30.000Z",
    "media": [
      {
        "type": "image",
        "url": "https://scontent-sjc6-1.cdninstagram.com/v/t51.82787-15/858921974_18710195065019133_277441153414192961_n.jpg?stp=dst-jp…",
        "width": 1080,
        "height": 1350,
        "variants": [
          {
            "url": "https://scontent-sjc6-1.cdninstagram.com/v/t51.82787-15/858921974_18710195065019133_277441153414192961_n.jpg?stp=dst-jp…",
            "width": 1080,
            "height": 1350
          }
        ],
        "altText": "Photo by National Geographic on October 20, 2026. May be an image of outdoors and text."
      }
    ],
    "metrics": {
      "likes": 14226,
      "comments": 190
    },
    "entities": {
      "hashtags": [
        "BestOfTheWorld"
      ]
    },
    "ext": {
      "code": "DeuOR-CjKE9",
      "pk": "4012207125530714429",
      "productType": "feed",
      "mediaType": 1,
      "usertags": [
        {
          "username": "natgeotravel",
          "id": "23947096",
          "fullName": "National Geographic Travel"
        }
      ],
      "coauthors": [
        {
          "platform": "instagram",
          "id": "23947096",
          "handle": "natgeotravel",
          "displayName": "National Geographic Travel",
          "url": "https://www.instagram.com/natgeotravel/",
          "avatarUrl": "https://scontent-sjc6-1.cdninstagram.com/v/t51.82787-19/685024507_18593567491011097_8135647783480608234_n.jpg?stp=dst-j…",
          "verified": true
        }
      ],
      "relatedTopics": [
        "national geographic travel",
        "top 25 travel destinations"
      ]
    }
  }
}

Errors

StatusCodeMeaning
400INVALID_PARAMSA parameter is missing, unknown or out of range. The message names it.
401UNAUTHORIZEDThe x-api-key header is missing, or the key is revoked or unknown.
402INSUFFICIENT_BALANCEThe balance does not cover this call. Top up in the dashboard.
404NOT_FOUNDThe account, post or group does not exist, or is private, deleted or age-restricted.
429MARKETPLACE_SATURATEDToo many concurrent calls. Retry after the Retry-After seconds.
502UPSTREAM_ERRORThe platform answered with something unusable. Retry with backoff.

Every code is listed in Errors. Failed calls are not billed.

Pricing

Price $0.001 per call. List price; the rate steps down above 1,000 calls a day.

On this page