Use Player One from your own apps
Your installation publishes addresses that reach every AI model you have connected, and your own software can call them with a key you made. One speaks the most common chat API format, so libraries and coding tools that already speak it work unchanged, and two speak the format Claude Code and other Anthropic-style tools use.
The page carries an early access notice: it works, but do not put anything critical on it yet.
Before you start
You need at least one AI account connected. If you have none, Connect an AI account comes first: the address offers only the models your installation already has.
You also need someone who can edit the app's settings, which is where the address and key go.
Keys are made and revoked on a page rather than by asking, on purpose: a key is shown once, to you, and your assistant never sees it.
1. Copy the address
Open Admin > LLM Endpoints (/admin/endpoints) and copy the base URL from the endpoint card. Use the base URL rather than the longer addresses: libraries and coding tools add their own paths to it.
You see that base URL, two fuller addresses for callers that build their own requests, and a count of the models reachable through it.
2. Make a key
Go to Admin > API keys (/admin/api-keys), on its LLM endpoints tab, and choose Create key. Name it after the app, pick an expiry of Never, 7, 30 or 90 days or a date of your own, and create it.
You see the whole key once, in a dialog of its own. Copy it straight into wherever the app keeps its credentials, because it is never shown again.
3. Point your app at the address
Put the base URL where the app asks for a provider address and the key where it asks for an API key, then ask for a model by the name the endpoint lists.
For something copyable, open Quickstart on the card: a command line call, settings for coding tools, and a few lines for a library.
You see the app's settings saved with your own installation in place of an AI company.
4. Make a test call
Send one short message from the app, or run the Quickstart example with your own values in the placeholders.
curl <base URL>/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <your key>" \
-d '{
"model": "<model>",
"messages": [{ "role": "user", "content": "Hello" }]
}'
You see a reply in the shape the app expects, the same shape a provider would have returned.
5. Find the call in the log
Open Admin > Usage (/admin/usage) and choose the API calls tab. One row per call, newest first: the model, the prompt size and an excerpt, the tokens, the cost, the duration and whether it worked. Filter by key, model or outcome.
You see your test call at the top of the list.
6. Revoke the key when it is done
Return to Admin > API keys and revoke the key when the app is retired, or when it has been somewhere it should not have been.
You see it marked Revoked, and anything still using it stops working straightaway.
Claude Code and other Anthropic-style tools
The endpoint card shows three addresses, and the same key works on all of them:
- OpenAI-compatible, the base URL in step 1, for everything that speaks that format.
- Anthropic-compatible (Claude models), ending in
/proxy/anthropic. Claude models only, from any Anthropic account you have connected, whether a subscription sign-in or an API key. Requests are passed through untouched, so a tool gets every capability it expects. With several Anthropic accounts, the one that serves is chosen the way a chat turn's is: in the order you set on Admin > Providers, with a parked account last, and when one refuses the call moves to the next account for the same model. - Anthropic-compatible (any model), ending in
/proxy/anthropic-any. Every model you have connected, namedprovider/model, with the request translated on the way through.
To point Claude Code at your installation, set two variables and start it:
export ANTHROPIC_BASE_URL="https://<your host>/proxy/anthropic"
export ANTHROPIC_AUTH_TOKEN="<your key>"
claude
Add CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1 and its /model picker offers your installation's Claude models. Use the Claude-models address for Claude Code: the any-model one works, but a tool that sends the full Anthropic feature set loses some of it in translation. On the any-model address, a model id Claude Code does not recognise needs a short mapping in its settings; the Quickstart on the card shows the block to paste.
What you get and what you do not
You get every model you have connected through one address, on one bill you can read, and moving an app to another model is a change of one name.
What you do not get is Player One itself. A call reaches the model and nothing else: no agent, no memory, no tools, no project and no workspace, and a key can do nothing but call the chat endpoints and list the models.
Keeping it safe
Give every app its own key, named so you know what it is for, and choose the shortest expiry that suits it. An expired key stops authenticating immediately.
The key is shown once and can never be recovered, only replaced.
A key spends your money, so treat it as you would a card number. The page shows what each has spent over the last 30 days, beside a request count that runs higher because it counts model listings and refused calls too.
Revoking cannot be undone, so where access must not break, put the replacement in the app first.
If something goes wrong
Unauthorised. The key is wrong, expired or revoked. Check its status on Admin > API keys, and check the app is sending the key you think it is.
The model is not found. Ask for it by exactly the name the endpoint lists, not the short name you are used to. If the card shows no models at all, the question is which accounts are connected. On the Claude-models address, no models means no Anthropic account of any kind is connected. See Models.
Your runtime does not support endpoints. The installation needs a newer version of Player One. See Your installation.
Calls are missing from the log. Failed and abandoned calls do appear, with no tokens and no cost. Rows age out after a while, though the daily totals on Admin > Usage are kept for good.
Where next
- Build with it, the other ways your software meets Player One.
- Models, what is connected.
- Tokens, cost and caching, what a call costs.