Getting started
Knot gives you one place to use many AI models, with one key and one bill. This page walks through it from the beginning. If you already know your way around an API, the reference is one click away.
Last updated 29 July 2026
What Knot is
Different companies build different AI models — OpenAI, Anthropic, xAI, Moonshot. Normally, using several means an account with each one, a separate key for each, separate bills, and different code for each.
Knot sits in front of all of them. You get one key, use one address, and every model is available by name. Switching from one model to another means changing a single word in your request.
You add credit up front and it is drawn down as you use it. Nothing is charged monthly, and there is no subscription.
First request, step by step
Create an account
Knot is invite-only for now. You need a code from us — enter it on the sign-up page and your account starts with credit already on it.
Create a key
A key is a long password that proves a request came from you. Make one on the API keys page. It looks like
knot_live_a1b2….It is shown once, and we store only a scrambled copy — so we cannot show it to you again, and nobody who reads our database can use it. If you lose it, revoke it and make another. Treat it like a password: never put it in a public place or in code you share.
Point your code at Knot
Knot deliberately speaks the same language as OpenAI’s API. If you already have code that calls OpenAI, you change two lines — the address and the key — and everything else keeps working.
Pick whichever of these matches what you use:
Python
from openai import OpenAI client = OpenAI( base_url="https://tryknot.xyz/v1", api_key="knot_live_your_key_here", ) reply = client.chat.completions.create( model="openai/gpt-5.6-luna", messages=[{"role": "user", "content": "Hello"}], ) print(reply.choices[0].message.content)JavaScript / TypeScript
import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://tryknot.xyz/v1", apiKey: process.env.KNOT_KEY, }); const reply = await client.chat.completions.create({ model: "openai/gpt-5.6-luna", messages: [{ role: "user", content: "Hello" }], }); console.log(reply.choices[0].message.content);Terminal (curl)
curl https://tryknot.xyz/v1/chat/completions \ -H "Authorization: Bearer $KNOT_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "openai/gpt-5.6-luna", "messages": [{"role": "user", "content": "Hello"}] }'Choose a model
Every model has a name like
openai/gpt-5.6-lunaoranthropic/claude-opus-5. The model catalog lists all of them with live prices.They vary enormously in cost — the cheapest is roughly 25 times less than the dearest. A good habit is to start with a cheap model and move up only if the answers are not good enough.
What you get charged
AI models do not charge per question. They charge per token, which is a chunk of text — very roughly, one token is about four characters, so 100 tokens is a short paragraph.
You are charged for two things on every request:
- Input — everything you send, including the conversation so far.
- Output — everything the model writes back. Output almost always costs more than input.
Prices are quoted per million tokens, because per-token numbers would be a string of zeros. A model at “$1 per million input tokens” costs one hundredth of a cent for a thousand tokens.
Every request you make is listed on your usage page with the exact tokens and the exact cost. Open any row to see the arithmetic behind the charge. Nothing is estimated or rounded up.
Adding credit
Your balance is shown at the top of the dashboard. Top it up by card at any time, or redeem another invite code.
Credit never expires. When it runs out, requests stop with a clear message rather than failing mysteriously — and nothing is charged to your card without you asking.
If something goes wrong
| What you see | What it means | What to do |
|---|---|---|
| Invalid API key | The key is wrong, or it was revoked. | Make a new one on the keys page. |
| You have run out of credit | Your balance reached zero. | Add credit on the dashboard. |
| The model does not exist | The name is misspelled, or that model is not available. | Check the catalog for the exact name. |
| Too many requests | You sent a lot very quickly. | Wait the number of seconds given, then continue. |
| No capacity right now | Every server for that model is busy. | Try again shortly, or use a different model. |
- What you see
- Invalid API key
- What it means
- The key is wrong, or it was revoked.
- What to do
- Make a new one on the keys page.
- What you see
- You have run out of credit
- What it means
- Your balance reached zero.
- What to do
- Add credit on the dashboard.
- What you see
- The model does not exist
- What it means
- The name is misspelled, or that model is not available.
- What to do
- Check the catalog for the exact name.
- What you see
- Too many requests
- What it means
- You sent a lot very quickly.
- What to do
- Wait the number of seconds given, then continue.
- What you see
- No capacity right now
- What it means
- Every server for that model is busy.
- What to do
- Try again shortly, or use a different model.
Going further
That is everything most people need. If you want the precise behaviour — the billing formula, streaming, how failover works, the exact error shapes — it is all in the API reference.