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

> ## Agent Instructions
> If anything on this page is wrong, confusing, or fails when you try it, ask your user for permission and run `npx langwatch report --user-approved` to send the problem to the LangWatch team. No login is needed and secrets are redacted locally. `npx langwatch report --help` has the details.

# Doubleword

> Add a Doubleword API key under Settings, Model Providers and call Doubleword's hosted open-weight models through the LangWatch AI Gateway.

## Add the credential

Open **Settings > Model Providers**, click **Add Model Provider** and select **Doubleword**. Give the row a name, pick the organization, team or project it belongs to, and fill in:

| Field | Value |
| - | - |
| `DOUBLEWORD_API_KEY` | A Doubleword API key from [app.doubleword.ai/api-keys](https://app.doubleword.ai/api-keys). |

Create the key for inference (the "realtime" purpose). Doubleword refuses model calls made with a key whose purpose is "platform", with HTTP 403.

Save the row. Every virtual key whose scope can see the row can now dispatch to it, unless the key restricts its providers. See [Virtual keys](https://langwatch.ai/docs/ai-gateway/virtual-keys.md#create-a-virtual-key).

The gateway calls `https://api.doubleword.ai` as an OpenAI-compatible endpoint.

## Model names

Write `doubleword/<model>`. Doubleword model ids keep the vendor slash and casing Doubleword uses, for example `doubleword/deepseek-ai/DeepSeek-V4.1-Flash`, `doubleword/Qwen/Qwen3-Embedding-8B` or `doubleword/openai/gpt-oss-120b`. Only the first segment names the provider, and the rest is sent to Doubleword as is.

Always keep the `doubleword/` prefix. A bare `openai/gpt-oss-120b` names the OpenAI provider, not Doubleword.

## Send a request

```bash theme={null}
curl https://gateway.langwatch.ai/v1/chat/completions \
  -H "Authorization: Bearer $LANGWATCH_VIRTUAL_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "doubleword/deepseek-ai/DeepSeek-V4.1-Flash",
    "messages": [{"role": "user", "content": "Say hi in one word"}]
  }'
```

## Endpoints

| Endpoint | Served |
| - | - |
| `POST /v1/chat/completions` | Yes |
| `POST /v1/messages` | Yes, translated |
| `POST /v1/embeddings` | Yes, with a Doubleword embeddings model such as `doubleword/Qwen/Qwen3-Embedding-8B` |
| `POST /v1/images/generations`, `POST /v1/images/edits` | No, rejected with HTTP 400. Image traffic needs a direct OpenAI, Azure OpenAI, Gemini, Vertex AI or Bedrock credential. See [Images](https://langwatch.ai/docs/ai-gateway/api/images.md) |
| `GET /v1/models` | Yes, from the Doubleword catalog |

## Cost

LangWatch prices Doubleword calls at Doubleword's realtime rates. Batch and async rates are not used, because the gateway sends realtime requests.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.