# Inference

Source: https://docs.sliplane.io/inference/getting-started

Call chat, embedding, transcription, and decision models through one OpenAI-compatible API, with an EU endpoint that has zero data retention.

> **info**
>
> **Private beta:** Email [support@sliplane.io](mailto\:support@sliplane.io) to request Inference access for your team.

Sliplane Inference gives your team one OpenAI-compatible API for chat, embedding, transcription, and decision models. Requests are authenticated with a Sliplane API key that has the `inference` scope and are billed per token or per audio minute.

The EU endpoint has **zero data retention**: prompts and responses are processed in European data centers and are not stored.

## Endpoints

| Endpoint | Base URL                              | Models                                                                                 |
| -------- | ------------------------------------- | -------------------------------------------------------------------------------------- |
| Global   | `https://inference.sliplane.io/v1`    | All models, including Anthropic, OpenAI, and Google                                    |
| EU       | `https://inference.eu.sliplane.io/v1` | Models hosted by European companies in European data centers, with zero data retention |

Both endpoints accept the same keys and requests.

## Zero data retention

Every model on the EU endpoint runs with zero data retention. Model providers don't store prompts or responses. Sliplane records only request metadata, such as model, token counts, and duration, never the content.

## Create a key

After Inference access is enabled for your team:

1. Open [Inference > Keys](https://sliplane.io/app/inference/keys) in the dashboard.
2. Click **Create Inference Key** and enter a name.
3. Optionally set a [spend limit](/inference/keys#spend-limits) or mark the key [confidential](/inference/keys#confidential-keys).
4. Copy the key and the base URL.

> **warn**
>
> The key is shown only once when it is created. Store it securely before closing the dialog.

## Send a request

Send the key as `Authorization: Bearer <key>`. Any OpenAI SDK works when you set its base URL.

**curl**

```bash
curl https://inference.sliplane.io/v1/chat/completions \
  -H "Authorization: Bearer $SLIPLANE_INFERENCE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gemma4-26b",
    "messages": [{"role": "user", "content": "Say hello in one sentence."}]
  }'
```

**Python**

```python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://inference.sliplane.io/v1",
    api_key=os.environ["SLIPLANE_INFERENCE_KEY"],
)

completion = client.chat.completions.create(
    model="gemma4-26b",
    messages=[{"role": "user", "content": "Say hello in one sentence."}],
)
print(completion.choices[0].message.content)
```

**JavaScript**

```js
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://inference.sliplane.io/v1",
  apiKey: process.env.SLIPLANE_INFERENCE_KEY,
});

const completion = await client.chat.completions.create({
  model: "gemma4-26b",
  messages: [{ role: "user", content: "Say hello in one sentence." }],
});
console.log(completion.choices[0].message.content);
```

## API

| Method | Path                       | Use                                         |
| ------ | -------------------------- | ------------------------------------------- |
| `GET`  | `/v1/models`               | List the models available to your key       |
| `POST` | `/v1/chat/completions`     | Chat completions                            |
| `POST` | `/v1/responses`            | Responses API, without stored state         |
| `POST` | `/v1/embeddings`           | Text embeddings                             |
| `POST` | `/v1/audio/transcriptions` | Audio transcription                         |
| `POST` | `/v1/systemone`            | Named decision questions with probabilities |

Chat completions and responses support streaming with `"stream": true`. Request fields beyond the basics depend on the model.

The full reference, with request schemas and examples, is at [inference.sliplane.io](https://inference.sliplane.io/) and [inference.eu.sliplane.io](https://inference.eu.sliplane.io/).

## Transcribe audio

Send `whisper-large-v3` and an audio file as multipart form data. The model is available on the Global and EU endpoints. It is not available to confidential keys.

```bash
curl https://inference.sliplane.io/v1/audio/transcriptions \
  -H "Authorization: Bearer $SLIPLANE_INFERENCE_KEY" \
  -F model=whisper-large-v3 \
  -F file=@speech.ogg
```

The response is JSON by default. Transcription costs **EUR 0.01 per audio minute**, excluding VAT. The full request must not exceed **25 MiB**. Streaming is not supported.

## Models and pricing

See [Models & Pricing](/inference/models) for all models, their endpoints, and prices. `GET /v1/models` returns the models the calling key can use on that endpoint.
