Quick answer
How do I make my first call to an OpenAI-compatible LLM API paid in crypto?
Point the OpenAI SDK, or any HTTP client, at https://llmwithcrypto.com/api/v1 and send your key as a Bearer token. LLMwithCrypto answers in the OpenAI chat completions format and bills the tokens from your prepaid credit. As of 23 October 2026, DeepSeek V4 Pro costs $1.254 per million input tokens and $3.762 per million output tokens. No KYC; pay in crypto.
The API on one card
| Base URL | https://llmwithcrypto.com/api/v1 |
|---|---|
| Chat | POST https://llmwithcrypto.com/api/v1/chat/completions |
| Model list | GET https://llmwithcrypto.com/api/v1/models |
| Credit left | GET https://llmwithcrypto.com/api/v1/credits |
| Authentication | Pass your API key as a Bearer token in the Authorization header, as the OpenAI SDK does |
| Billing | You pay per token from your balance: input and output tokens are counted by the model’s own tokenizer and charged at that model’s price per 1M tokens. A call that ends in an error costs nothing |
| Compatibility | The API speaks the OpenAI chat completions format: point the OpenAI SDK, LangChain or any OpenAI-compatible tool at our base URL with your key, and change the model name |
| Smallest pack | $25 of API credit for $25; Credit has no expiry date: what you do not spend this month is still there next year |
How do I get an API key?
There is no sign-up form and no identity check. The longest part is waiting for the blockchain to confirm your payment.
Fund your balance in crypto
Send at least $25 in BTC, USDT, USDC, ETH, SOL, LTC. Sign in with an account number; an email address is optional.
Buy a credit pack
$25 of API credit for $25 is enough to try every model. Credit pays for any model, so the pack size only decides how often you top up.
Copy the key
Once your crypto top-up is confirmed and a credit pack is bought, your API key is waiting in the dashboard. Keep it in an environment variable called
LLMWITHCRYPTO_API_KEY.
What does the first call look like?
One HTTPS POST with a JSON body. Two fields are required: model, one of the ids on the models page, and messages, the conversation so far. Everything else is optional. max_tokens is worth setting from the start: it caps the length of the answer, and with it the cost of the call.
The three snippets below send the same request. Set LLMWITHCRYPTO_API_KEY in your shell first, then run the one that matches your stack.
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"}
],
"max_tokens": 200
}'
import os
from openai import OpenAI
client = OpenAI(
base_url="https://llmwithcrypto.com/api/v1",
api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"},
],
max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, "in,", resp.usage.completion_tokens, "out")
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://llmwithcrypto.com/api/v1',
apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});
const resp = await client.chat.completions.create({
model: 'deepseek-v4-pro',
messages: [
{ role: 'system', content: 'Answer in two sentences.' },
{ role: 'user', content: 'What is a context window?' },
],
max_tokens: 200,
});
console.log(resp.choices[0].message.content);
console.log(resp.usage.prompt_tokens, 'in,', resp.usage.completion_tokens, 'out');
What comes back?
The same object the OpenAI API returns: an id, the model that answered, a choices array with the assistant message and a finish_reason, and a usage object. finish_reason is stop when the model finished on its own and length when it hit max_tokens.
usage is what you pay for: prompt_tokens for the input, completion_tokens for the output, both counted by the model’s own tokenizer. The figures below are illustrative.
{
"id": "chatcmpl-8f2c41d0a7b94e1c",
"object": "chat.completion",
"created": 1792742400,
"model": "deepseek-v4-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A context window is the maximum number of tokens a model can read and write in one request. Anything beyond it must be cut or summarized before the call."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 34,
"total_tokens": 61
}
}
Which model should I start with?
All of them answer on the same endpoint with the same key; change only model. Prices are per million tokens, as of 23 October 2026.
| Model id | Good for | Input | Output | Context |
|---|---|---|---|---|
deepseek-v4-pro | General chat, reasoning and code | $1.254 | $3.762 | 1M |
deepseek-v4.1-flash | Fast, low-cost general model | $0.285 | $1.14 | 1M |
gpt-oss-120b | Reasoning and tool use | $0.142 | $0.57 | 128K |
qwen3-235b-a22b-instruct-2507 | Multilingual chat and long documents | $0.161 | $0.57 | 256K |
The full list of 12 models, with licences, is on the models page.
How is a call billed?
You pay per token from your balance: input and output tokens are counted by the model’s own tokenizer and charged at that model’s price per 1M tokens. A call that ends in an error costs nothing.
Take the example above on DeepSeek V4 Pro: 27 input tokens and 34 output tokens cost 27 × $1.254 / 1,000,000 plus 34 × $3.762 / 1,000,000, a small fraction of a cent. The dashboard lists every call with its tokens and its cost, and GET https://llmwithcrypto.com/api/v1/credits returns the credit left at any time. Credit has no expiry date: what you do not spend this month is still there next year.
What happens to my prompts?
Nothing is kept. We do not store your prompts or the model’s answers: once a response is sent, its text is gone. Each call leaves one log line with the time, the account, the model and the token counts, deleted after 30 days. We never train or fine-tune any model on your prompts or outputs.
That is also why there is no request history to browse in the dashboard: only the time, the model and the token counts of each call. If your app needs a transcript, store it on your side.
Which models are not available?
We do not sell access to GPT, Claude, Gemini or Grok: their makers forbid reselling API access without their approval, and we do not have it. Only open-weight models whose licences allow serving them as an API: DeepSeek, Qwen, gpt-oss, Mistral, Llama, Gemma and others listed on the models page. We run them on GPUs we rent and operate.
If your code calls gpt-4o or a Claude model by name, the API answers 404 model_not_found: replace the name with one of the open-weight ids above. The errors page lists every error code.
Where do I go next?
- Quick start From an empty balance to a first answer
- Chat completions Every body field and the response
- Models and credits Model ids, context windows, balance left
- Streaming Server-sent events, token by token
- Tool calling Functions and JSON output
- Errors Error codes, rate limits, retries
- Python The OpenAI SDK, sync and async
- Node.js The openai npm package
- curl Terminal recipes with jq
- LangChain ChatOpenAI and LlamaIndex
Quick start: common questions
Do I need a special SDK?
No. The API speaks the OpenAI chat completions format: point the OpenAI SDK, LangChain or any OpenAI-compatible tool at our base URL with your key, and change the model name. Plain HTTPS works too: the curl page has terminal recipes.
Is there a free trial?
There is no free tier: the smallest credit pack is the way to try it, and unspent credit never expires.
Can I use one key for several apps?
You can, but one key per app is safer. Make one API key per app, agent or teammate and revoke any of them from the dashboard without touching the others.
How many requests can I send?
Every account has a per-minute request and token limit, shown in the dashboard; ask support and it can be raised. The errors page explains what a 429 means and how to retry.