> For the complete documentation index, see [llms.txt](https://docs.january.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.january.ai/rest-api/api-overview.md).

# API Overview

The complete endpoint-by-endpoint reference lives right below in this section — Food Scans through Restaurants — generated directly from our OpenAPI specification, so it is always in sync with production, and every endpoint supports Try it out. This page covers the ideas that apply everywhere.

### Requests

Base URL `https://partners.january.ai`, all routes under `/v1.2/`. Authenticate with `Authorization: Bearer sk-your-key`. Identify the acting end user with `x-end-user-id` — required on per-user data such as food logs, optional elsewhere. Send JSON bodies with `Content-Type: application/json`.

### Design

Every path segment is a noun. `GET` finds things that already exist (catalog search with filters); `POST` creates results that did not exist before the call — including model inference, which is why a photo scan is a `POST` even though it stores nothing. Responses use `snake_case` keys throughout.

### Errors

Every error is the HTTP status plus a body of `message` (human-readable, actionable), `code` (stable, machine-readable — build retry logic on this), and `docs_url`. Retry only `rate_limited` and the transient `5xx` codes. Validation failures name the exact field and the accepted values.

### Versioning

The version lives in the path. Within `v1.2`, changes are additive only: new endpoints, new optional fields, new enum values. Breaking changes get a new version prefix.
