- 1Email
- 2Code
- 3Done
Your balance, what the last 30 days cost and how calls went, on one page. Failed calls are free.
The one made for you at sign-up. This browser remembers it, so you can copy it right here.
Copy one sentence with your key in it and paste it to your AI assistant. It sets itself up.
ConnectAsk in plain words in your AI, or run a call in the Playground and see the real answer.
Run one in the PlaygroundPlaygroundNothing spent this month yet.
No key for an AI yet. Connect one and it shows up here.
| Time | Endpoint | From | Key | Result | Took | Cost |
|---|
Once your code, your AI or the Playground makes a call, a row shows up here: which endpoint, from where, the result and what it cost.
Call any endpoint with your own parameters and see the real answer, kept for 24 hours. The price is on the button, and failures are free.
Press Run and the real answer shows up here: a table, the complete JSON, and the fields this endpoint can’t get.
One row per call: what it cost, how long it took, and why it failed if it did. Results are kept 24 hours and reading them again is free.
| Time | Endpoint | From | Result | Took | Cost | Request ID |
|---|
| Time | Endpoint | From | Result |
|---|
None in the last 30 days.
A key decides two things: which endpoints it can call and how much it may spend. Up to 50 keys an account; the money is always the same balance.
| Name | Prefix | Can call | Spent today | Spent this month | Last used | Status | Actions |
|---|
Make one and your code or your AI can start calling.
Give your AI, your scripts and each colleague their own key, each with its own limits. If one goes wrong, stop that one and the rest keep working.
Calls over a limit are refused before anything is charged, with key_budget_exceeded. A daily limit starts again the next day, a monthly one the next month (UTC).
Disable it first: that takes effect at once. Then make a new one and swap it in. Revoking is permanent and asks for the key’s name.
Give your AI an address and a key. It uses five tools to find endpoints, check prices and make calls on its own.
This is what you paste into your AI. Your key goes in when you copy it.
Set up okdata for me by following https://okdata.online/agents.md. Here is my okdata API key: okd_…. Keep it safe and use it for all okdata calls.
Copying makes a key just for this AI and puts it in the sentence. You see the full key only this once; the API keys page shows its first few characters after that. Copying again on this page puts the same key in.Manage your API keys
Your AI reads that page and connects the way its setup allows: an MCP server, the command line, or plain HTTP calls.
Ask in plain words, or copy one of these. Every answer ends with what it cost, and failures are free.
Terminal
claude mcp add --transport http --scope user okdata https://api.okdata.online/mcp \
--header 'Authorization: Bearer ${OKDATA_API_KEY}'Written from each client’s own documentation; tell us if a step doesn’t match.
claude_desktop_config.json
{
"mcpServers": {
"okdata": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.okdata.online/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer okd_..."
}
}
}
}Written from each client’s own documentation; tell us if a step doesn’t match.
Written from each client’s own documentation; tell us if a step doesn’t match.
~/.cursor/mcp.json
{
"mcpServers": {
"okdata": {
"url": "https://api.okdata.online/mcp",
"headers": {
"Authorization": "Bearer ${env:OKDATA_API_KEY}"
}
}
}
}Written from each client’s own documentation; tell us if a step doesn’t match.
~/.codex/config.toml
[mcp_servers.okdata]
url = "https://api.okdata.online/mcp"
bearer_token_env_var = "OKDATA_API_KEY"Written from each client’s own documentation; tell us if a step doesn’t match.
~/.codex/config.toml
[mcp_servers.okdata]
url = "https://api.okdata.online/mcp"
bearer_token_env_var = "OKDATA_API_KEY"Written from each client’s own documentation; tell us if a step doesn’t match.
Written from each client’s own documentation; tell us if a step doesn’t match.
Manual configuration
{
"mcpServers": {
"okdata": {
"url": "https://api.okdata.online/mcp",
"headers": {
"Authorization": "Bearer okd_…"
}
}
}
}Written from each client’s own documentation; tell us if a step doesn’t match.
Written from each client’s own documentation; tell us if a step doesn’t match.
Written from each client’s own documentation; tell us if a step doesn’t match.
Written from each client’s own documentation; tell us if a step doesn’t match.
Written from each client’s own documentation; tell us if a step doesn’t match.
~/.workbuddy/mcp.json
{
"mcpServers": {
"okdata": {
"type": "http",
"url": "https://api.okdata.online/mcp",
"headers": {
"Authorization": "Bearer okd_…"
}
}
}
}Written from each client’s own documentation; tell us if a step doesn’t match.
Written from each client’s own documentation; tell us if a step doesn’t match.
cordis.patch.yml
- insert:
- id: mcp-okdata
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: okdata
transport: streamable-http
url: https://api.okdata.online/mcp
headers:
Authorization: 'Bearer okd_…'
toolCallTimeoutMs: 120000Written from each client’s own documentation; tell us if a step doesn’t match.
Every call spends from one prepaid balance. Top up from $10. No subscription, nothing renews, and failed calls are free.
Balance
Never expires
Spent this month
At this pace, lasts
Daily spend, last 30 days
| Date | Method | Amount | Bonus | Credited | Status | Actions |
|---|
No top-ups yet. Your first one shows up here.
No spend this month yet.
Your language, name, low-balance alert and sign-in email; and what we keep: results for 24 hours, request parameters for 30 days.
How you sign in, what we call you, and which language you use.
The address you sign in with. To use another, sign in with that one.
Sign-in
No password to remember.
Language
Also used for the emails you get.
One email each time the balance drops below the line.
What we keep about your calls, and for how long.
Results kept for 24 hours
Read a result again free during that time, by its request ID. After that the content is deleted and only a record stays: time, endpoint, status, charge.
Request parameters kept for 30 days
The call log shows what each call asked for. After 30 days only the call record itself stays.
Export my data
Everything in this account in one file: keys (without the secret), top-ups, the ledger and the call log. A person prepares it and emails it to you. For just the call log, the call log page exports CSV directly. Call log CSV
Signing out doesn’t affect your API keys.
Sign out
Only this browser. Your keys keep working.
Sign out everywhere
Ends every console session, including this one. Your keys keep working.
This can’t be undone.
Delete this account and everything in it
After you ask, a person closes the account. Until then nothing is deleted and your keys keep working, but the account can’t be topped up. Top-ups are final and the balance isn’t refunded, so use it up first.