> ## Documentation Index
> Fetch the complete documentation index at: https://tryklint.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Fetch /llms.txt for the complete page index before exploring further. Every docs page is available as markdown by appending .md to its URL. Coding agents should start at /for-agents/coding-agents.md.

# API reference overview

> Base URL, versioning, authentication, content types, and error model for the Klint HTTP API.

|              |                                                                                  |
| ------------ | -------------------------------------------------------------------------------- |
| **Base URL** | `https://api.tryklint.ai`                                                        |
| **Auth**     | `Authorization: Bearer <api-key>` on every request                               |
| **Content**  | JSON in, JSON out. Errors are a compact [problem object](/docs/api-reference/errors). |

## Operations

| Operation                                                   | Route                                |
| ----------------------------------------------------------- | ------------------------------------ |
| [Search posts](/docs/api-reference/instagram/search-posts)       | `POST /v1/instagram/posts/search`    |
| [Search accounts](/docs/api-reference/instagram/search-accounts) | `POST /v1/instagram/accounts/search` |
| [Get post](/docs/api-reference/instagram/get-post)               | `GET /v1/instagram/posts/{id}`       |
| [Get account](/docs/api-reference/instagram/get-account)         | `GET /v1/instagram/accounts/{id}`    |

## Versioning

Paths are platform-scoped under `/v1/instagram/`. Within `v1`, evolution is additive only. New fields, new registry IDs, and new endpoints may appear. Existing fields never change meaning. A material semantic change creates a new field or a new major version.

Ignore unknown response fields. Preserve unknown classification IDs.

## Identifiers

Klint IDs are opaque, durable, and prefixed by resource family: `ig_post_…`, `ig_account_…`, `ig_media_…`, `ig_audio_…`. They are the only durable keys. Instagram handles and shortcodes are reconciliation aliases that can change. <span />{/* OPEN: exact ID encoding after the prefix, and whether GETs also accept shortcode/handle lookups, are frozen with the OpenAPI contract. */}

## Request identity

Every search response carries `request_id` in its envelope. Entity GETs return the bare resource, so their request identity travels as a response header. The OpenAPI contract fixes the header name. Error responses carry the same `request_id` in the problem object. Quote it when you report an issue.

<Note>
  We hand-author these pages against the accepted contract. At contract freeze they migrate to OpenAPI-generated pages, and the prose stays. Items marked open may change until then.
</Note>
