Sable

Documentation

The API accepts the OpenAI Chat Completions and Anthropic Messages formats, so existing clients work with a different base URL and an API key.

Quickstart

A streamed request to deepseek-v4.1-flash-1017.

curl https://sableapi.com/v1/chat/completions \  -H "Authorization: Bearer $SABLE_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "model": "deepseek-v4.1-flash-1017",    "stream": true,    "messages": [      {"role": "user", "content": "List the regressions in this diff."}    ]  }'

Base URL and authentication

Base URL
https://sableapi.com/v1
Header
Authorization: Bearer <key>
Keys
Created and revoked in your account.

Endpoints

Method and pathDescription
POST /v1/chat/completionsOpenAI Chat Completions format. Streams with "stream": true.
POST /v1/messagesAnthropic Messages format. Streams with "stream": true.
GET /v1/modelsModels available to the key.
GET /v1/requests/{id}The record of one request.

Parameters

Sampling parameters are passed to the model as sent: temperature, top_p, top_k, min_p, frequency_penalty, presence_penalty, seed, stop and logit_bias.

Errors

Errors use the error format of the endpoint that was called, with a code field. A key may run any number of requests at once.

StatusCodeMeaning
400invalid_requestThe request body is not valid.
400context_length_exceededThe input is longer than 512,000 tokens.
401invalid_api_keyThe API key is missing or not valid.
402insufficient_creditsThe balance is too low for the request.
404model_not_foundThe model is not available.
409idempotency_conflictThe idempotency key was already used for a different request.
503capacity_unavailableAll capacity is in use. Retry after the Retry-After header; reuse the idempotency key.
503service_unavailableThe service is temporarily unavailable. Retry after the Retry-After header.