---
title: "Submit Instagram Scrape"
method: POST
path: "/api/instagram/scrape"
tags: ["Instagram"]
---

# Submit Instagram Scrape

`POST /api/instagram/scrape`

## Request

- Base URL: `https://api.kolens.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kolens.ai/api/instagram/scrape`
- Auth: HTTP bearer

Submit an Instagram scrape job.

Pre-charges credits using the same ``ceil(max_videos / N)`` shape as
the TikTok route. The IG actor is comparably priced (≈ $2.50 / 1K
profiles vs ≈ $1.70 / 1K TikTok videos) but with hashtag fan-out
we typically touch many profiles per call — so the cost driver is
profile count, not raw max_videos. Phase 1 uses a flat
``ceil(max_videos / 10)`` to match the TikTok pre-charge until the
cross-cutting pricing-per-platform sub-issue lands.

## Headers

- `x-kolens-user-id` string, nullable

## Request body

- InstagramScrapeRequest: Either ``hashtag`` or ``usernames`` must be supplied — not both. ``max_videos`` follows the TikTok semantics: the number of recent posts to pull per profile (NOT the total across the batch).
  - `hashtag` string, nullable
  - `usernames` string[], nullable
  - `max_videos` integer

## Response `202`

Successful Response

- InstagramScrapeResponse
  - `job_id` string, required
  - `status` string, required
  - `keyword` string, required
  - `estimated_seconds` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kolens/apis/kolens-api.md) · [All operations](https://skmtc.dev/kolens/apis/kolens-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kolens/apis/kolens-api/revisions/5d6865ab0a24?raw)
