---
title: "Noket API"
description: "OpenAI- and Anthropic-compatible inference endpoints for the models you can access."
---

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

# Noket API

The Noket API serves the models in your account — the ones you created and the ones shared with you —
through the same request formats the OpenAI and Anthropic SDKs already speak. Point an existing client
at Noket, change the model id, and keep the rest of your code.

There are two base URLs, one per dialect:

| Dialect | Base URL | What appends the route |
| --- | --- | --- |
| OpenAI | `https://api.noket.dev/v1` | `/chat/completions`, `/completions`, `/responses`, `/models` |
| Anthropic | `https://api.noket.dev/anthropic` | `/v1/messages`, `/v1/messages/count_tokens`, `/v1/models` |

The console's [API keys](https://noket.dev/api-keys) page and each model's **Calling configuration** tab
show these addresses with your model id, so you can copy rather than assemble them.

## Routes

| Method | Path | Purpose |
| --- | --- | --- |
| `POST` | `/v1/chat/completions` | OpenAI chat completions. |
| `POST` | `/v1/completions` | OpenAI legacy text completions. |
| `POST` | `/v1/responses` | OpenAI Responses API. |
| `GET` | `/v1/models` | Models your key can call, in the OpenAI list format. |
| `POST` | `/v1/messages` | Anthropic Messages. |
| `POST` | `/v1/messages/count_tokens` | Anthropic token counting. |
| `POST` | `/anthropic/v1/messages` | The same Messages route under the Anthropic base URL. |
| `POST` | `/anthropic/v1/messages/count_tokens` | The same token count under the Anthropic base URL. |
| `GET` | `/anthropic/v1/models` | Models your key can call, in the Anthropic list format. |
| `GET` | `/anthropic/models` | The same list for clients that append their own version segment. |

## Model ids

The `model` field is the model's public id: `owner-username/slug`, for example `alice/llama-3.1-8b`.
The owner's own calls may use the bare slug when it is unambiguous. If two accounts use the same slug,
a bare id resolves to the caller's own model first; otherwise it must be qualified.

Model ids are case-sensitive and are not provider model names. The provider name behind a model stays
with the owner — Noket validates the id against what your key can call and returns `404` for a wrong
id or a model you cannot access (`model_not_found` in the OpenAI body).

## Authentication

Every route needs a Noket API key. OpenAI-style clients send `Authorization: Bearer YOUR_API_KEY`;
Anthropic-style clients send `x-api-key: YOUR_API_KEY`. When both are present, `x-api-key` wins.

Keys belong to the account, not to a model, and have no per-key limits. See
[Authentication](https://docs.noket.dev/api/authentication/) for creating, rotating, and scoping keys.

## Streaming

The chat, completions, responses, and messages routes pass streaming through as server-sent events.
Send the same `stream: true` your client already sends. `count_tokens` returns a single JSON body.

Noket records the request when it starts and settles it when the stream ends. A client that
disconnects mid-stream is recorded as cancelled, so the model's logs still show the call.

## Limits

Two budgets apply to every request: the model's own limit and, for a member, the limit the owner gave
that account. Exceeding either returns `429`. Rate and concurrency protection can also reject a
request before it reaches the model. See [Errors and limits](https://docs.noket.dev/api/errors/).

## Next

- [Authentication](https://docs.noket.dev/api/authentication/)
- [OpenAI compatibility](https://docs.noket.dev/api/openai/)
- [Anthropic compatibility](https://docs.noket.dev/api/anthropic/)
- [Errors and limits](https://docs.noket.dev/api/errors/)
- [Examples](https://docs.noket.dev/api/examples/)

Source: https://docs.noket.dev/api/index.mdx
