Skip to content
All Instagram APIs
Posts & videosInstagramPost · List By Hashtag

Instagram hashtag posts

Page through public Instagram posts with like and comment counts under a hashtag.

POST/v1/instagram/hashtags/posts

Chinese name: Instagram 话题帖子 · 帖子 · 按话题列出 按话题标签分页读取 Instagram 公开帖子和点赞、评论计数。
instagram.hashtags.posts@v1

Price at launch

¥0.02/ call

Nothing is charged before launch.

Current statusComing soonChecking live status
Available to try at launch

Try it

This API is coming soon

We are running launch checks. Once live, you can try it right here at the price shown above; nothing is charged before then. You can already read the parameters and response example.

Request parameters

hashtagstringrequired

pattern: "^[\\p{L}\\p{N}_]{1,100}$" · minLength: 1 · maxLength: 256

Example: "skincare"

cursorstringoptional

minLength: 1

Request JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "hashtag": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256,
      "pattern": "^[\\p{L}\\p{N}_]{1,100}$"
    },
    "cursor": {
      "type": "string",
      "minLength": 1
    }
  },
  "required": [
    "hashtag"
  ],
  "additionalProperties": false
}

Code samples

Install the SDK with npm i @dataxapi/sdk or pip install dataxapi, and put your API key in the DATAXAPI_API_KEY environment variable.

curl -X POST https://api.dataxapi.com/v1/instagram/hashtags/posts \
  -H "Authorization: Bearer $DATAXAPI_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"hashtag":"skincare"}'

Response example

200 · application/json
{
  "code": 200,
  "request_id": "req_example_instagram_hashtags_posts",
  "message": "success",
  "data": {
    "items": [
      {
        "id": "3989009386646962425",
        "shortcode": "DRhvwVLAHAG",
        "taken_at_timestamp": 1760000000,
        "is_video": false,
        "edge_media_to_caption": {
          "edges": [
            {
              "node": {
                "text": "Public Instagram caption #skincare"
              }
            }
          ]
        },
        "edge_liked_by": {
          "count": 1500
        },
        "edge_media_to_comment": {
          "count": 40
        },
        "owner": {
          "id": "25025320"
        },
        "display_url": "https://scontent.cdninstagram.com/display.jpg",
        "thumbnail_src": "https://scontent.cdninstagram.com/thumbnail.jpg"
      }
    ]
  },
  "page": {
    "next_cursor": "cursor_example"
  },
  "warnings": [],
  "meta": {
    "listing_id": "instagram.hashtags.posts",
    "version": "v1",
    "catalog_release_id": "catalog-production-2026-09-19.b069be57",
    "price_book_version": "pricebook-production-2026-09-19.4487e352",
    "result_status": "complete",
    "charged_amount": "0.02",
    "balance_after": "49.98",
    "currency": "CNY"
  }
}
Response fields
codenumber
const: 200
request_idstring
messagestring
const: "success"
dataobject
pageobject
warningsarray
metaobject
Response JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "code": {
      "type": "number",
      "const": 200
    },
    "request_id": {
      "type": "string"
    },
    "message": {
      "type": "string",
      "const": "success"
    },
    "data": {
      "type": "object",
      "properties": {
        "items": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {},
              "shortcode": {},
              "taken_at_timestamp": {},
              "is_video": {},
              "edge_media_to_caption": {},
              "edge_liked_by": {},
              "edge_media_to_comment": {},
              "owner": {},
              "display_url": {},
              "thumbnail_src": {}
            },
            "additionalProperties": false
          }
        }
      },
      "required": [
        "items"
      ],
      "additionalProperties": false
    },
    "page": {
      "type": "object",
      "properties": {
        "next_cursor": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "next_cursor"
      ],
      "additionalProperties": false
    },
    "warnings": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "listing_id": {
          "type": "string",
          "const": "instagram.hashtags.posts"
        },
        "version": {
          "type": "string",
          "const": "v1"
        },
        "catalog_release_id": {
          "type": "string",
          "minLength": 1
        },
        "price_book_version": {
          "type": "string",
          "minLength": 1
        },
        "result_status": {
          "type": "string",
          "enum": [
            "complete",
            "empty",
            "partial"
          ]
        },
        "charged_amount": {
          "type": "string"
        },
        "balance_after": {
          "type": "string"
        },
        "currency": {
          "type": "string",
          "const": "CNY"
        }
      },
      "required": [
        "listing_id",
        "version",
        "catalog_release_id",
        "price_book_version",
        "result_status",
        "charged_amount",
        "balance_after",
        "currency"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "code",
    "request_id",
    "message",
    "data",
    "page",
    "warnings",
    "meta"
  ],
  "additionalProperties": false
}

Usage notes

Good for

  • Use it to sample public content under a hashtag.

Not for

  • Do not use it for hashtag heat curves, complete archives, or private content.

Known limitations

  • Pass the hashtag without #; the owner is a numeric ID only and image links expire.
  • Result order is set by the platform and does not explain ranking causality.
  • Only the returned DataXAPI cursor can continue the same query.
  • Counts are point-in-time public snapshots, not live or historical trends.

Billing

¥0.02 per call. Nonempty complete results are charged; empty, partial, and failed results are not.

See all pricing →