# KeepBal One key and one prepaid wallet. 7 models and 2543 catalog tools are live. Create an account at https://keepbal.com/sign-up, then create an API key in Console → API keys. Send Authorization: Bearer $KEEPBAL_API_KEY to KeepBal only. ## MCP Connect to https://keepbal.com/mcp using Streamable HTTP and Authorization: Bearer $KEEPBAL_API_KEY. The four meta-tools are search_tools, inspect_tool, run_tool and get_run. Search and inspection are free. get_run checks and settles an existing run without a new execution or polling fee. Setup: https://keepbal.com/docs/mcp. ## Browse tools - [Tools](https://keepbal.com/tools) - [Providers](https://keepbal.com/providers) - [Models](https://keepbal.com/models) - [MCP](https://keepbal.com/mcp) ## Categories - [company-and-people-data](https://keepbal.com/tools/category/company-and-people-data) - [seo-and-marketing](https://keepbal.com/tools/category/seo-and-marketing) - [finance-and-markets](https://keepbal.com/tools/category/finance-and-markets) - [crypto-and-defi](https://keepbal.com/tools/category/crypto-and-defi) - [travel-and-local](https://keepbal.com/tools/category/travel-and-local) - [prediction-markets](https://keepbal.com/tools/category/prediction-markets) - [media-generation](https://keepbal.com/tools/category/media-generation) - [web-scraping](https://keepbal.com/tools/category/web-scraping) - [social-media](https://keepbal.com/tools/category/social-media) - [search-and-extraction](https://keepbal.com/tools/category/search-and-extraction) - [china-social](https://keepbal.com/tools/category/china-social) - [jobs-and-careers](https://keepbal.com/tools/category/jobs-and-careers) - [developer-tools](https://keepbal.com/tools/category/developer-tools) - [other](https://keepbal.com/tools/category/other) - [email-and-messaging](https://keepbal.com/tools/category/email-and-messaging) ## Providers - [Hunter](https://keepbal.com/providers/hunterio) - [ContactOut](https://keepbal.com/providers/contactout) - [ElevenLabs](https://keepbal.com/providers/elevenlabs) - [Y Combinator](https://keepbal.com/providers/ycombinator) - [Levels.fyi](https://keepbal.com/providers/levels-fyi) - [Yahoo Finance](https://keepbal.com/providers/yahoo-finance) - [Google Trends](https://keepbal.com/providers/google-trends) - [Weather Underground](https://keepbal.com/providers/weather-underground) - [StockAnalysis](https://keepbal.com/providers/stockanalysis) - [MarketBeat](https://keepbal.com/providers/marketbeat) - [Crunchbase](https://keepbal.com/providers/crunchbase) - [Zillow](https://keepbal.com/providers/zillow) - [Wellfound](https://keepbal.com/providers/wellfound) - [Indeed](https://keepbal.com/providers/indeed) - [IQAir](https://keepbal.com/providers/iqair) - [Edmunds](https://keepbal.com/providers/edmunds) - [Finviz](https://keepbal.com/providers/finviz) - [Kelley Blue Book](https://keepbal.com/providers/kbb) - [G2](https://keepbal.com/providers/g2) - [OpenAI](https://keepbal.com/providers/openai) - [Gemini](https://keepbal.com/providers/gemini) - [MiniMax](https://keepbal.com/providers/minimax) - [Kling](https://keepbal.com/providers/kling) - [Alibaba](https://keepbal.com/providers/alibaba) - [ByteDance](https://keepbal.com/providers/bytedance) - [People Data Labs](https://keepbal.com/providers/pdl) - [Clay](https://keepbal.com/providers/clay) - [AAA Gas Prices](https://keepbal.com/providers/aaa-gas-prices) - [SEC Form 4](https://keepbal.com/providers/secform4) - [GetApp](https://keepbal.com/providers/getapp) - [LoopNet](https://keepbal.com/providers/loopnet) - [Homes.com](https://keepbal.com/providers/homes) - [Cars.com](https://keepbal.com/providers/cars) - [Built In](https://keepbal.com/providers/builtin) - [Idealist](https://keepbal.com/providers/idealist) - [Web3 Career](https://keepbal.com/providers/web3-career) - [Artificial Analysis](https://keepbal.com/providers/artificial-analysis) - [Bid.cars](https://keepbal.com/providers/bid-cars) - [Topaz Labs](https://keepbal.com/providers/topaz) - [DataForSEO](https://keepbal.com/providers/dataforseo) - [Open-Meteo](https://keepbal.com/providers/openmeteo) - [Firecrawl](https://keepbal.com/providers/firecrawl) - [Ahrefs](https://keepbal.com/providers/ahrefs) - [Apollo](https://keepbal.com/providers/apollo) - [DefiLlama](https://keepbal.com/providers/defillama) - [Polymarket](https://keepbal.com/providers/polymarket) - [FRED](https://keepbal.com/providers/fred) - [CoinGecko](https://keepbal.com/providers/coingecko) - [Browserbase](https://keepbal.com/providers/browserbase) - [AccuWeather](https://keepbal.com/providers/accuweather) - [Nasdaq](https://keepbal.com/providers/nasdaq) - [Trustpilot](https://keepbal.com/providers/trustpilot) ## Catalog access Catalog tool results use {status, run_id?, output?}. For a pending run, poll GET /apis/v1/runs/. GET https://keepbal.com/catalog.json?page=1 lists live tools, 200 per page. Read total, page, next_page and each tool's pricing. Follow next_page until null. Models and the catalog summary are included on each page. Prices are in micro-USD: 1 USD = 1,000,000 micro-USD. Fixed tools show price_micros per successful call. Variable tools show their customer price in pricing.description, normally "Variable: provider price plus 35%". Check each tool before calling. ## Call a catalog tool POST /apis/v1/run with {"publicId":"","input":{"body":{},"queryParams":{},"pathParams":{}}} and your API key. Inspect lists required catalog keys in pathParams.required; supply their values in input.pathParams. Variable tools use request quantities when provided. If a unit quantity is unknown, pass max_cost_usd in the top-level request or X-KeepBal-Max-Cost-USD header. This is your maximum customer charge, requires enough balance to cover it, and persists through asynchronous completion; a provider cost above it fails with no charge. Page/result estimates default to at least 100 when no documented quantity is known. ```sh curl https://keepbal.com/apis/v1/exa/contents \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"urls":["https://example.com"]}' ``` For a pending result, GET /apis/v1/runs/:id. A successful run is charged once; checking it adds no polling fee. Failed, blocked, or timed-out runs cost $0. ## Live models Prices below list applicable rates in USD per 1M tokens. GET /v1/models lists callable models. Set model to the public ID below; send the request format for its endpoint. - claude-haiku-4.5: Input: $1.25 / Output: $6.25 / Cache read: $0.13 / Cache write: $2.5 per 1M tokens; POST /v1/messages. [Model guide](https://keepbal.com/models/claude-haiku-4.5) - claude-sonnet-4.5: Input: $3.75 / Output: $18.75 / Cache read: $0.38 / Cache write: $7.5 per 1M tokens; POST /v1/messages. [Model guide](https://keepbal.com/models/claude-sonnet-4.5) - deepseek-v3.2: Input: $0.336 / Output: $0.504 / Cache read: $0.26 / Cache write: $0 per 1M tokens; POST /v1/chat/completions. [Model guide](https://keepbal.com/models/deepseek-v3.2) - gpt-5.4: Input: $3.13 / Output: $18.75 / Cache read: $0.32 / Cache write: $0 per 1M tokens; POST /v1/chat/completions. [Model guide](https://keepbal.com/models/gpt-5.4) - gpt-5.4-mini: Input: $0.94 / Output: $5.63 / Cache read: $0.1 / Cache write: $0 per 1M tokens; POST /v1/chat/completions. [Model guide](https://keepbal.com/models/gpt-5.4-mini) - jina-embeddings-v3: Input: $0.07 per 1M tokens; POST /v1/embeddings. [Model guide](https://keepbal.com/models/jina-embeddings-v3) - qwen3-max: Input: $1.44 / Output: $7.2 / Cache read: $0.9 / Cache write: $0 per 1M tokens; POST /v1/chat/completions. [Model guide](https://keepbal.com/models/qwen3-max) Messages models use Anthropic Messages format, with max_tokens and messages. Embeddings use input and have no output tokens. Chat Completions models use messages. Responses is available only when the model's route supports it. ## Find other tools POST /apis/v1/discover with {"query":"web search"}; POST /apis/v1/inspect with publicId returned by discovery. Both operations are free. POST /apis/v1/run with publicId and input: {body?, queryParams?, pathParams?} as described by inspect. Fixed tools show the per-call price; variable tools bill provider price plus 35%. Inspect returns pricing metadata, not a quote. Catalog tool spend caps: REST top-level max_cost_usd, MCP input.max_cost_usd, or the X-KeepBal-Max-Cost-USD header. Caps must cover the estimate and fit your available balance; they persist through async completion. Costs above the cap fail without charge. Some variable tools require a cap or quantity. Fixed tools charge the published per-call price. Variable tools charge the provider's reported actual cost plus the disclosed markup (currently 35%). Missing actual cost on variable tools charges $0. Quotes are estimates, labelled estimated_price; completed price is the settlement debit. Failed, blocked, or timed-out runs cost $0. ## Wallet GET /v1/credits/balance and GET /v1/usage are free. Signup includes $1 free credit, once. Top up $10, $20, $50, or $100 in Console → Wallet. No subscription. Top-up fee: 8% rounded up to the cent + $0.35 before tax; only credit reaches the wallet. Requests must pass a balance check before forwarding. Charges settle after calls. Unavailable routes return 503 provider_unavailable and are not billed. ## Sitemaps - https://keepbal.com/sitemap.xml - https://keepbal.com/sitemap-tools.xml - https://keepbal.com/sitemap-categories.xml ## Request details Only live catalog items can be called. Unknown model IDs return 404 model_not_found. Use POST /v1/messages for Messages models; Chat Completions rejects those models. Input and output usage determine token charges, including cached input reported by Messages. Streaming usage is recorded when the stream completes. For tools with query inputs, flat scalar values are supported. Nested query values are rejected. Templated path values must occupy one path segment. 402 insufficient_credits means the balance cannot cover the estimated request. Concurrent requests can exceed the preflight balance check; it is not a hard spending cap. Read x-keepbal-request-id and x-keepbal-cost-micros when present. Streaming responses have no final charge header; read Usage after the call is recorded. KeepBal errors use the OpenAI error format. Upstream error bodies may differ. MCP is live at https://keepbal.com/mcp (Streamable HTTP, bearer key). Setup: https://keepbal.com/docs/mcp. A2A transport is not live. ## Markdown pages Tools, categories, providers, models, docs, integration guides and comparison pages have .md twins. Append .md before the query (for example /tools.md?page=2), or send Accept: text/markdown to the HTML URL. Pagination links traverse the same catalog. HTML advertises a text/markdown alternate; Markdown returns a canonical Link header. ## References - Pricing: https://keepbal.com/pricing - Catalog: https://keepbal.com/catalog.json?page=1 - Skill: https://keepbal.com/SKILL.md - OpenAPI: https://keepbal.com/openapi.yaml - Docs: https://keepbal.com/docs - Full reference: https://keepbal.com/llms-full.txt [Connect KeepBal with MCP](https://keepbal.com/docs/mcp) [KeepBal quickstart](https://keepbal.com/docs/quickstart) [Changelog](https://keepbal.com/changelog) [Compare KeepBal](https://keepbal.com/compare) [OpenRouter alternative](https://keepbal.com/compare/openrouter-alternative) [Composio alternative](https://keepbal.com/compare/composio-alternative) [Apify alternative](https://keepbal.com/compare/apify-alternative) [RapidAPI alternative](https://keepbal.com/compare/rapidapi-alternative) [Tavily alternative](https://keepbal.com/compare/tavily-alternative) [About KeepBal](https://keepbal.com/about) [KeepBal documentation](https://keepbal.com/docs) [API authentication](https://keepbal.com/docs/authentication) [Wallet and billing](https://keepbal.com/docs/billing) [Discover and run tools](https://keepbal.com/docs/tools) [Call models](https://keepbal.com/docs/models) [Gateway error reference](https://keepbal.com/docs/errors) [Rate limits and budgets](https://keepbal.com/docs/rate-limits-and-budgets) [Claude Code integration](https://keepbal.com/integrations/claude-code) [Cursor integration](https://keepbal.com/integrations/cursor) [Codex integration](https://keepbal.com/integrations/codex) [Claude Desktop integration](https://keepbal.com/integrations/claude-desktop) [LangChain integration](https://keepbal.com/integrations/langchain) [OpenAI Agents SDK integration](https://keepbal.com/integrations/openai-agents-sdk) ## Connect KeepBal with MCP Source: [Connect KeepBal with MCP · KeepBal](https://keepbal.com/docs/mcp.md) ## Connect KeepBal with MCP Endpoint: https://keepbal.com/mcp. Streamable HTTP with JSON responses; no SSE or session ID required. Initialize and list tools without a key. All tool calls require Authorization: Bearer dgk_live_...; create your key in Console. Keep keys private. Discovery: /server.json follows its versioned MCP Registry schema. /.well-known/mcp.json and /.well-known/mcp/server-card.json describe this MCP service. /.well-known/agent-card.json uses the KeepBal keepbal-agent-discovery-v1 contract: name, description, version, provider, status, capabilities and skills with id, name, description, tags and transport. Its discovery_stub status means A2A transport is not live; use the advertised MCP or REST routes. search_tools searches live tools and models locally with a query of 2–200 characters, limit 1–25 and offset pagination. inspect_tool reads known local parameters; unknown schemas are marked. Both are free. get_run {run_id} checks and settles an existing run without a new execution or polling fee. run_tool uses the same prepaid wallet, access controls and settlement as REST. Provider failures are not charged. Pending runs are polled for up to 25 seconds; check later with get_run. Results over 48,000 characters are truncated with cost and a do-not-retry notice. Unsupported downloads also return a do-not-retry notice. Models are listed for discovery and called through their documented REST endpoints. ### Claude Code ```sh claude mcp add --transport http keepbal https://keepbal.com/mcp --header "Authorization: Bearer $KEEPBAL_API_KEY" ``` ### Cursor Add this to ~/.cursor/mcp.json. Replace YOUR_KEEPBAL_API_KEY with your key; this example uses a literal header value. ```json { "mcpServers": { "keepbal": { "url": "https://keepbal.com/mcp", "headers": { "Authorization": "Bearer YOUR_KEEPBAL_API_KEY" } } } } ``` ### Claude Desktop: stdio bridge For a client configured with local stdio servers, use the mcp-remote bridge (requires Node.js and npx). Add the following to your Desktop MCP configuration, replacing YOUR_KEEPBAL_API_KEY. This is a bridge-based setup. ```json { "mcpServers": { "keepbal": { "command": "npx", "args": [ "-y", "mcp-remote", "https://keepbal.com/mcp", "--header", "Authorization:${KEEPBAL_AUTH}" ], "env": { "KEEPBAL_AUTH": "Bearer YOUR_KEEPBAL_KEY" } } } } ``` ### Codex CLI Export KEEPBAL_API_KEY in the environment that launches Codex, then add this to ~/.codex/config.toml: ```toml [mcp_servers.keepbal] url = "https://keepbal.com/mcp" bearer_token_env_var = "KEEPBAL_API_KEY" ``` [Codex MCP configuration reference](https://developers.openai.com/codex/mcp) ### Generic Streamable HTTP client Set the server URL and Authorization bearer header. POST JSON-RPC 2.0 with Content-Type: application/json and Accept: application/json, text/event-stream. Initialize with protocolVersion 2025-06-18 (2025-03-26 also accepted), capabilities and clientInfo, then send notifications/initialized. Notifications return HTTP 202. Send one request per POST; batches are rejected. Protocol GET requests return 405; browser HTML requests show endpoint help. ```json { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "search_tools", "arguments": { "query": "web search", "limit": 5 } } } ``` [Get a key](https://keepbal.com/console) · [Top up](https://keepbal.com/console/wallet) [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Previous: Models](/docs/models) · [Next: Errors](/docs/errors) ## KeepBal quickstart Source: [KeepBal quickstart · KeepBal](https://keepbal.com/docs/quickstart.md) ## KeepBal quickstart [Start with $1 free credit](/sign-up) One key and one prepaid wallet for the tools your agent calls. 1. Create an account, then create a key in API keys and save it. 2. Give your agent the prompt below, install the Skill for your client, or try the three HTTP examples. 3. See each call and its cost in Usage after the call is recorded. ### Agent prompt Paste this into your agent's chat: ```text set up https://keepbal.com/SKILL.md ``` [Create your account](https://keepbal.com/sign-up) · [API keys](https://keepbal.com/console/keys) · [Connect with MCP](https://keepbal.com/docs/mcp) ### Install the Skill for your client For a project-local install, run the shell commands for your client from your project root. Each downloads the hosted Skill and saves it as keepbal/SKILL.md in that client's skill directory. Claude Code: ```sh mkdir -p .claude/skills/keepbal curl -fsSL https://keepbal.com/SKILL.md -o .claude/skills/keepbal/SKILL.md ``` [Claude Code Skill documentation](https://code.claude.com/docs/en/skills) Cursor: ```sh mkdir -p .cursor/skills/keepbal curl -fsSL https://keepbal.com/SKILL.md -o .cursor/skills/keepbal/SKILL.md ``` [Cursor Skill documentation](https://cursor.com/docs/skills) Codex: ```sh mkdir -p .agents/skills/keepbal curl -fsSL https://keepbal.com/SKILL.md -o .agents/skills/keepbal/SKILL.md ``` [Codex Skill documentation](https://developers.openai.com/codex/skills) Tool search: Live. Models: Live. ### Catalog tools 2543 tools and 7 models are live. Call a catalog tool with POST /apis/v1/ and its JSON body. Fixed tools show a price per successful call; variable tools show the provider price plus 35%. [Browse live tools](https://keepbal.com/catalog.json?page=1) · [Live model prices](https://keepbal.com/pricing) ### 1. Find a tool Set KEEPBAL_API_KEY to your key, then search for a tool. Searching is free. ```sh curl https://keepbal.com/apis/v1/discover \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"query":"exa"}' ``` Example discovery result (excerpt). Carry publicId unchanged through inspect and run: ```json { "data": [ { "publicId": "exa/contents", "path": "exa/contents" } ] } ``` ### 2. Check its price Use the publicId from discovery. Inspecting its inputs and pricing metadata is free. Fixed tools show the per-call price; variable tools are billed at provider price + 35%. Inspect does not calculate an input-specific quote. ```sh curl https://keepbal.com/apis/v1/inspect \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"publicId":"exa/contents"}' ``` ### 3. Run it Fill input.body, input.queryParams, and input.pathParams as required by the tool. This page-contents example uses body parameters; the other buckets are empty. ```sh curl https://keepbal.com/apis/v1/run \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"publicId":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true},"queryParams":{},"pathParams":{}},"max_cost_usd":"0.10"}' ``` Catalog tool spend caps: REST top-level max_cost_usd, MCP input.max_cost_usd, or the X-KeepBal-Max-Cost-USD header. Caps must cover the estimate and fit your available balance; they persist through async completion. Costs above the cap fail without charge. Some variable tools require a cap or quantity. Fixed tools charge the published per-call price. Variable tools charge the provider's reported actual cost plus the disclosed markup (currently 35%). Missing actual cost on variable tools charges $0. Quotes are estimates, labelled estimated_price; completed price is the settlement debit. Failed, blocked, or timed-out runs cost $0. ### First public tool call ```sh curl https://keepbal.com/apis/v1/exa/contents \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"urls":["https://example.com"],"text":true}' ``` ### First model call Select a live chat model ID from Models and replace MODEL_ID. Signup grants $1 credit once; tools and models share this wallet. ```sh curl https://keepbal.com/v1/chat/completions -H "Authorization: Bearer $KEEPBAL_API_KEY" -H "Content-Type: application/json" --data '{"model":"MODEL_ID","messages":[{"role":"user","content":"Hello"}]}' ``` [Choose a live model](/models) ### For agents [SKILL.md](https://keepbal.com/SKILL.md) · [llms.txt](https://keepbal.com/llms.txt) · [OpenAPI](https://keepbal.com/openapi.yaml) [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Next: Authentication](/docs/authentication) ## Pricing Source: [Pricing · KeepBal](https://keepbal.com/pricing.md) ## Pricing [Start with $1 free credit](/sign-up) ### Live models 7 models. Prices in USD per 1M tokens. Live model prices | Model | Endpoint | USD per 1M tokens | | --- | --- | --- | | [claude-haiku-4.5](/models/claude-haiku-4.5) | /v1/messages | Input: $1.25 / Output: $6.25 / Cache read: $0.13 / Cache write: $2.5 per 1M tokens | | [claude-sonnet-4.5](/models/claude-sonnet-4.5) | /v1/messages | Input: $3.75 / Output: $18.75 / Cache read: $0.38 / Cache write: $7.5 per 1M tokens | | [deepseek-v3.2](/models/deepseek-v3.2) | /v1/chat/completions | Input: $0.336 / Output: $0.504 / Cache read: $0.26 / Cache write: $0 per 1M tokens | | [gpt-5.4](/models/gpt-5.4) | /v1/chat/completions | Input: $3.13 / Output: $18.75 / Cache read: $0.32 / Cache write: $0 per 1M tokens | | [gpt-5.4-mini](/models/gpt-5.4-mini) | /v1/chat/completions | Input: $0.94 / Output: $5.63 / Cache read: $0.1 / Cache write: $0 per 1M tokens | | [jina-embeddings-v3](/models/jina-embeddings-v3) | /v1/embeddings | Input: $0.07 per 1M tokens | | [qwen3-max](/models/qwen3-max) | /v1/chat/completions | Input: $1.44 / Output: $7.2 / Cache read: $0.9 / Cache write: $0 per 1M tokens | Charges add the applicable input, output, cache read, and cache write token amounts at their respective rates. Cached input is charged at its cache rate instead of the regular input rate. Embeddings are billed for input tokens only. ### Catalog tools 2543 live tools: 2205 with a fixed price and 338 with a variable price. Fixed tools show the per-call price. Variable tools are billed at provider price + 35%. Inspect returns pricing metadata. Use max_cost_usd caps where supported. Failed calls cost $0. Call a catalog tool with POST /apis/v1/ and a JSON body. Browse tools by task and category. [Browse all live tools](https://keepbal.com/tools) Top tool categories | Category | Live tools | | --- | --- | | [China Social](/tools/category/china-social) | 581 | | [Company And People Data](/tools/category/company-and-people-data) | 350 | | [Social Media](/tools/category/social-media) | 338 | | [SEO And Marketing](/tools/category/seo-and-marketing) | 252 | | [Crypto And DeFi](/tools/category/crypto-and-defi) | 218 | | [Finance And Markets](/tools/category/finance-and-markets) | 204 | | [Travel And Local](/tools/category/travel-and-local) | 131 | | [Prediction Markets](/tools/category/prediction-markets) | 101 | | [Media Generation](/tools/category/media-generation) | 82 | | [Web Scraping](/tools/category/web-scraping) | 71 | | [Search And Extraction](/tools/category/search-and-extraction) | 68 | | [Developer Tools](/tools/category/developer-tools) | 46 | ### Search and run tools Discover tools and inspect their inputs and price for free. Fixed tools show the per-call price; variable tools bill provider price plus 35%. Inspect returns pricing metadata, not a quote. ### Prepaid credit Top up $10, $20, $50, or $100 with Paddle. No subscription. Top-up fee: 8% of the credit, rounded up to the cent, + $0.35 before tax. Only the credit amount is added to your wallet. $1 free credit on signup, once. ## FAQ Source: [FAQ · KeepBal](https://keepbal.com/faq.md) ## FAQ ### What is KeepBal? KeepBal gives your agent one key and one prepaid wallet for tools. Search for a tool, check its price, then run it. ### How do I connect my agent? Create an account and a key in API keys, then give your agent this line: set up https://keepbal.com/SKILL.md. Save the key when it appears; it is shown once. ### How do I pay — is it a subscription? No subscription: buy $10, $20, $50, or $100 of credit with Paddle in Wallet. The top-up fee is 8% of the credit, rounded up to the cent, plus $0.35 before tax; new accounts receive $1 free credit once. ### What happens when a call fails? Failed, blocked, or timed-out runs cost $0. Find each call and its cost in Usage after the call is recorded. ### Can I recover my password? Use Forgot password on the sign-in page to request a reset link. Links expire in 30 minutes. You can also change your password in Account while signed in. ## Changelog Source: [Changelog · KeepBal](https://keepbal.com/changelog.md) ## Changelog - 2026-10-17 — Public tool IDs and public brand cleanup. - 2026-10-17 — Hosted MCP server and MCP setup documentation. - 2026-10-17 — Homepage first-call flow. - 2026-10-17 — Tools, categories, providers and models pages. - 2026-10-17 — Documentation split and six client integration guides. - 2026-10-17 — Sourced comparison hub and five comparison pages; About page. - 2026-10-06 — Prepaid top-ups with Paddle ($10–$100, no subscription). - 2026-10-06 — New KeepBal brand and homepage. - 2026-10-06 — Simpler sign-up: email and one password. - 2026-10-06 — Tool search and run with per-call billing. ## Compare KeepBal Source: [Compare KeepBal · KeepBal](https://keepbal.com/compare.md) ## Compare KeepBal Choose by workload, available tools and total cost. KeepBal combines supported data tools and models under one API key and prepaid wallet. Competitor facts are as of October 2026; each comparison links its source. [OpenRouter](/compare/openrouter-alternative) · [Composio](/compare/composio-alternative) · [Apify](/compare/apify-alternative) · [RapidAPI](/compare/rapidapi-alternative) · [Tavily](/compare/tavily-alternative) [Live tools](/tools) · [Models](/models) · [Pricing](/pricing) ### Frequently asked questions ### Which comparison should I read? Start with the service you already use or the workload you need, then compare its strengths and billing units with KeepBal. ### When were competitor facts verified? Competitor facts are as of October 2026. Each detailed comparison links the primary source; check current prices before purchasing. ## OpenRouter alternative Source: [OpenRouter alternative · KeepBal](https://keepbal.com/compare/openrouter-alternative.md) ## OpenRouter alternative Competitor facts as of October 2026. Source: https://openrouter.ai/docs/faq [OpenRouter source — as of October 2026](https://openrouter.ai/docs/faq) ### Who each product is for OpenRouter: Developers who want a unified API to major LLMs with OpenAI-compatible chat completions. KeepBal: agents calling supported data tools and models through one key and one prepaid wallet. Browse the current catalog before integrating. Workload and billing comparison | Dimension | OpenRouter | KeepBal | | --- | --- | --- | | Best fit | Developers who want a unified API to major LLMs with OpenAI-compatible chat completions. | Supported data APIs and models in a shared prepaid wallet | | Pricing | No inference markup. Credit purchases cost 5.5%, with a $0.80 minimum; crypto purchases cost 5%. | No monthly subscription. Fixed tool prices from the catalog; variable tools use provider cost plus 35%. Models have separate listed token prices. | | Tradeoff | Choose OpenRouter if model breadth and 0% inference markup matter most. Check its model catalog for your workload. | Check supported tools and models; a shared wallet does not guarantee the lowest price. | ### Choose OpenRouter if… Choose OpenRouter if model breadth and 0% inference markup matter most. Check its model catalog for your workload. ### Choose KeepBal if… You want one key, one prepaid balance and call history across supported data tools and models. KeepBal does not provide OAuth connections for SaaS actions. ### Cost scenario For $100 of credits bought with the standard purchase fee: $100 × 5.5% = $5.50, above the $0.80 minimum, so the purchase total is $105.50. This is a credit-purchase example, not a same-model inference quote. KeepBal model scenario (claude-haiku-4.5), current catalog: 1,000 requests with 1,000 uncached input tokens and 200 output tokens each = 1M input tokens × $1.25 + 0.2M output tokens × $6.25; total after per-request rounding = $2.50 usage. Assumes no cache reads or writes; excludes top-up fees. This is a workload example, not a matched competitor quote. [Browse tool prices](/tools) · [Model token prices](/models) · [Inspect a tool](/docs/tools) These examples use different billing units unless explicitly matched. KeepBal top-ups are separate from usage: $10 credit + ceil($10 × 8% to cents) + $0.35 = $11.15 before tax. Only $10 enters the wallet. Promotional credit is excluded from the usage arithmetic. [Tool catalog](/tools) · [Model prices](/models) · [Pricing and top-up fees](/pricing) ### Frequently asked questions ### Does OpenRouter add an inference markup? No. OpenRouter has 0% inference markup and charges a credit-purchase fee, as of October 2026. ### Does KeepBal require a monthly plan? No. KeepBal uses prepaid credit with no subscription. Paid top-ups have a fee; check Pricing before funding your wallet. [All comparisons](/compare) · [About KeepBal](/about) ## Composio alternative Source: [Composio alternative · KeepBal](https://keepbal.com/compare/composio-alternative.md) ## Composio alternative Competitor facts as of October 2026. Source: https://composio.dev/pricing [Composio source — as of October 2026](https://composio.dev/pricing) ### Who each product is for Composio: Agents that need OAuth management for connected SaaS accounts, triggers, custom tools and MCP across 1500+ toolkits. KeepBal: agents calling supported data tools and models through one key and one prepaid wallet. Browse the current catalog before integrating. Workload and billing comparison | Dimension | Composio | KeepBal | | --- | --- | --- | | Best fit | Agents that need OAuth management for connected SaaS accounts, triggers, custom tools and MCP across 1500+ toolkits. | Supported data APIs and models in a shared prepaid wallet | | Pricing | Hobby: $0 with 100,000 tool calls/month, 50,000 triggers and 3 team members. Pro: $29/month including $29 usage credit, then $0.0003 per tool call. Instant Tools use Composio provider accounts with 0% provider markup plus regular tool-call charges. Pricing applies to signups on or after August 15, 2026. | No monthly subscription. Fixed tool prices from the catalog; variable tools use provider cost plus 35%. Models have separate listed token prices. | | Tradeoff | Choose Composio if OAuth SaaS actions and triggers are central. Its Hobby free tier and 0% provider markup on Instant Tools can be a better fit. | Check supported tools and models; a shared wallet does not guarantee the lowest price. | ### Choose Composio if… Choose Composio if OAuth SaaS actions and triggers are central. Its Hobby free tier and 0% provider markup on Instant Tools can be a better fit. ### Choose KeepBal if… You want one key, one prepaid balance and call history across supported data tools and models. KeepBal does not provide OAuth connections for SaaS actions. ### Cost scenario For 10,000 additional Pro tool calls after included usage credit is exhausted: 10,000 × $0.0003 = $3 in tool-call charges, in addition to the $29 monthly plan and any provider charges. This is not a total Instant Tools bill. KeepBal tool scenario (exa/contents), current catalog: 1,000 successful calls × $0.00135 = $1.35 usage. Uses the published fixed per-call price and excludes top-up fees. Inspect supported inputs before running. This is a workload example, not a matched competitor quote. [Browse tool prices](/tools) · [Model token prices](/models) · [Inspect a tool](/docs/tools) These examples use different billing units unless explicitly matched. KeepBal top-ups are separate from usage: $10 credit + ceil($10 × 8% to cents) + $0.35 = $11.15 before tax. Only $10 enters the wallet. Promotional credit is excluded from the usage arithmetic. [Tool catalog](/tools) · [Model prices](/models) · [Pricing and top-up fees](/pricing) ### Frequently asked questions ### Are Instant Tools free of all charges? No. Instant Tools have 0% provider markup, but provider charges and regular tool-call charges still apply, as of October 2026. ### Does KeepBal require a monthly plan? No. KeepBal uses prepaid credit with no subscription. Paid top-ups have a fee; check Pricing before funding your wallet. [All comparisons](/compare) · [About KeepBal](/about) ## Apify alternative Source: [Apify alternative · KeepBal](https://keepbal.com/compare/apify-alternative.md) ## Apify alternative Competitor facts as of October 2026. Source: https://apify.com/pricing [Apify source — as of October 2026](https://apify.com/pricing) ### Who each product is for Apify: Developers building custom or long-running scraping jobs with a large Actor store. KeepBal: agents calling supported data tools and models through one key and one prepaid wallet. Browse the current catalog before integrating. Workload and billing comparison | Dimension | Apify | KeepBal | | --- | --- | --- | | Best fit | Developers building custom or long-running scraping jobs with a large Actor store. | Supported data APIs and models in a shared prepaid wallet | | Pricing | Free plan: $0 with $5 to spend per month and $0.20 per compute unit. Starter: $19/month. Actors can charge per event, per usage, or both. | No monthly subscription. Fixed tool prices from the catalog; variable tools use provider cost plus 35%. Models have separate listed token prices. | | Tradeoff | Choose Apify if you need custom or long-running scraping and its large Actor store. These are stronger fits than a synchronous per-call tool API. | Check supported tools and models; a shared wallet does not guarantee the lowest price. | ### Choose Apify if… Choose Apify if you need custom or long-running scraping and its large Actor store. These are stronger fits than a synchronous per-call tool API. ### Choose KeepBal if… You want one key, one prepaid balance and call history across supported data tools and models. KeepBal does not provide OAuth connections for SaaS actions. ### Cost scenario On the Free compute rate, 10 compute units × $0.20 = $2 of compute usage, within the $5 monthly allowance if otherwise unused. Actor event charges and other usage can add costs; this is not a complete scraping-job quote. KeepBal tool scenario (exa/contents), current catalog: 1,000 successful calls × $0.00135 = $1.35 usage. Uses the published fixed per-call price and excludes top-up fees. Inspect supported inputs before running. This is a workload example, not a matched competitor quote. [Browse tool prices](/tools) · [Model token prices](/models) · [Inspect a tool](/docs/tools) These examples use different billing units unless explicitly matched. KeepBal top-ups are separate from usage: $10 credit + ceil($10 × 8% to cents) + $0.35 = $11.15 before tax. Only $10 enters the wallet. Promotional credit is excluded from the usage arithmetic. [Tool catalog](/tools) · [Model prices](/models) · [Pricing and top-up fees](/pricing) ### Frequently asked questions ### Is an Actor run equivalent to one KeepBal tool call? No. Apify Actors may charge per event, per usage, or both. Compare the whole job and its requirements, as of October 2026. ### Does KeepBal require a monthly plan? No. KeepBal uses prepaid credit with no subscription. Paid top-ups have a fee; check Pricing before funding your wallet. [All comparisons](/compare) · [About KeepBal](/about) ## RapidAPI alternative Source: [RapidAPI alternative · KeepBal](https://keepbal.com/compare/rapidapi-alternative.md) ## RapidAPI alternative Competitor facts as of October 2026. Source: https://docs.rapidapi.com/docs/api-pricing [RapidAPI source — as of October 2026](https://docs.rapidapi.com/docs/api-pricing) ### Who each product is for RapidAPI: Developers who prioritize discovery across a much larger API hub and can manage separate API subscriptions. KeepBal: agents calling supported data tools and models through one key and one prepaid wallet. Browse the current catalog before integrating. Workload and billing comparison | Dimension | RapidAPI | KeepBal | | --- | --- | --- | | Best fit | Developers who prioritize discovery across a much larger API hub and can manage separate API subscriptions. | Supported data APIs and models in a shared prepaid wallet | | Pricing | APIs can be Free, Pay Per Use, Freemium or Paid. Subscription plans and prices are set by each provider. | No monthly subscription. Fixed tool prices from the catalog; variable tools use provider cost plus 35%. Models have separate listed token prices. | | Tradeoff | Choose RapidAPI if its much larger hub has the specialized API you need. Providers set their own prices and each API subscription is separate. | Check supported tools and models; a shared wallet does not guarantee the lowest price. | ### Choose RapidAPI if… Choose RapidAPI if its much larger hub has the specialized API you need. Providers set their own prices and each API subscription is separate. ### Choose KeepBal if… You want one key, one prepaid balance and call history across supported data tools and models. KeepBal does not provide OAuth connections for SaaS actions. ### Cost scenario RapidAPI has no single universal per-call price: each API is Free, Pay Per Use, Freemium or Paid, and each provider sets its own plan. Using two APIs means two separate provider-priced purchases. On KeepBal both tools draw from one prepaid balance at the catalog price (fixed per call, or provider cost plus 35% when variable). KeepBal tool scenario (exa/contents), current catalog: 1,000 successful calls × $0.00135 = $1.35 usage. Uses the published fixed per-call price and excludes top-up fees. Inspect supported inputs before running. This is a workload example, not a matched competitor quote. [Browse tool prices](/tools) · [Model token prices](/models) · [Inspect a tool](/docs/tools) These examples use different billing units unless explicitly matched. KeepBal top-ups are separate from usage: $10 credit + ceil($10 × 8% to cents) + $0.35 = $11.15 before tax. Only $10 enters the wallet. Promotional credit is excluded from the usage arithmetic. [Tool catalog](/tools) · [Model prices](/models) · [Pricing and top-up fees](/pricing) ### Frequently asked questions ### Does one RapidAPI subscription cover every API? No. Each API subscription is separate and providers set prices, as of October 2026. ### Does KeepBal require a monthly plan? No. KeepBal uses prepaid credit with no subscription. Paid top-ups have a fee; check Pricing before funding your wallet. [All comparisons](/compare) · [About KeepBal](/about) ## Tavily alternative Source: [Tavily alternative · KeepBal](https://keepbal.com/compare/tavily-alternative.md) ## Tavily alternative Competitor facts as of October 2026. Source: https://docs.tavily.com/documentation/api-credits [Tavily source — as of October 2026](https://docs.tavily.com/documentation/api-credits) ### Who each product is for Tavily: Developers who primarily need search and want direct credit pricing and a monthly free tier. KeepBal: agents calling supported data tools and models through one key and one prepaid wallet. Browse the current catalog before integrating. Workload and billing comparison | Dimension | Tavily | KeepBal | | --- | --- | --- | | Best fit | Developers who primarily need search and want direct credit pricing and a monthly free tier. | Supported data APIs and models in a shared prepaid wallet | | Pricing | Pay as you go: $0.008 per credit. Basic search uses 1 credit; advanced search uses 2. There are 1,000 free credits/month. | No monthly subscription. Fixed tool prices from the catalog; variable tools use provider cost plus 35%. Models have separate listed token prices. | | Tradeoff | Choose Tavily direct if search is your main requirement: it is cheaper and includes 1,000 free credits per month. | Check supported tools and models; a shared wallet does not guarantee the lowest price. | ### Choose Tavily if… Choose Tavily direct if search is your main requirement: it is cheaper and includes 1,000 free credits per month. ### Choose KeepBal if… You want one key, one prepaid balance and call history across supported data tools and models. KeepBal does not provide OAuth connections for SaaS actions. ### Cost scenario After free credits are exhausted, 1,000 basic searches × 1 credit × $0.008 = $8 direct. For advanced search, 1,000 × 2 × $0.008 = $16. Compare the same search depth and input settings before choosing. KeepBal tool scenario (exa/contents), current catalog: 1,000 successful calls × $0.00135 = $1.35 usage. Uses the published fixed per-call price and excludes top-up fees. Inspect supported inputs before running. This is a workload example, not a matched competitor quote. [Browse tool prices](/tools) · [Model token prices](/models) · [Inspect a tool](/docs/tools) These examples use different billing units unless explicitly matched. KeepBal top-ups are separate from usage: $10 credit + ceil($10 × 8% to cents) + $0.35 = $11.15 before tax. Only $10 enters the wallet. Promotional credit is excluded from the usage arithmetic. [Tool catalog](/tools) · [Model prices](/models) · [Pricing and top-up fees](/pricing) ### Frequently asked questions ### When does KeepBal make sense instead of Tavily direct? Tavily direct is cheaper and has a free tier, as of October 2026. KeepBal is for workloads combining data tools and models under one key and prepaid balance; check the live catalog for availability. ### Does KeepBal require a monthly plan? No. KeepBal uses prepaid credit with no subscription. Paid top-ups have a fee; check Pricing before funding your wallet. [All comparisons](/compare) · [About KeepBal](/about) ## About KeepBal Source: [About KeepBal · KeepBal](https://keepbal.com/about.md) ## About KeepBal KeepBal is an API gateway for agent tools and models with one API key and one prepaid wallet. ### How it works Create an account, fund your prepaid wallet, and create a key in Console. Discover tools, inspect their inputs and prices, then run them. Call supported models through their documented API endpoints. Review calls and costs in Usage. Tool pricing uses upstream provider cost plus 35%; fixed tools have a published catalog price, with a $0.0001 minimum. Variable tools settle reported provider cost plus 35%. Models use separately listed token prices. Check the catalog for current availability and prices. No monthly subscription; paid top-ups have a fee. [Tools](/tools) · [Models](/models) · [Pricing](/pricing) · [Get started](/docs) ### Contact [support@keepbal.com](mailto:support@keepbal.com) ### Policies [Terms](/terms) · [Privacy](/privacy) · [Refunds](/refund) ## Terms of Service Source: [Terms of Service · KeepBal](https://keepbal.com/terms.md) ## Terms of Service KeepBal provides tools through an API and a prepaid wallet. Last updated: 2026-10-06. ### Account Provide a valid email and keep your credentials secure. API keys are shown once; you are responsible for their use. ### Prepaid credits Top-ups are one-time purchases of prepaid API credit, with no subscription or automatic renewal. Unused credits remain in your wallet until spent or refunded under the Refund Policy. ### Payments and fees Paddle processes paid top-ups as Merchant of Record, including checkout, taxes, and receipts. KeepBal does not store your full card details. Top-up fee: 8% of the credit, rounded up to the cent, + $0.35 before tax. Only the credit amount is added to your wallet. ### Refunds and chargebacks Refunds and chargebacks remove the related credits from your wallet. This can leave a negative balance. ### Acceptable use Do not abuse the API, circumvent billing, share keys publicly, or use KeepBal for unlawful activity. Accounts that violate these terms may be suspended. ### Availability The service is provided as-is without an uptime guarantee. Unavailable routes and failed calls are not billed. ### Contact [hello@keepbal.com](mailto:hello@keepbal.com) · [support@keepbal.com](mailto:support@keepbal.com) · [Privacy](https://keepbal.com/privacy) · [Refunds](https://keepbal.com/refund) ## Privacy Notice Source: [Privacy Notice · KeepBal](https://keepbal.com/privacy.md) ## Privacy Notice How KeepBal handles information on keepbal.com and the API. Last updated: 2026-10-20. ### What we collect - Account email and password hash; passwords are never stored as plain text. - API key hashes, wallet records, and call history needed to operate the service. - Technical logs for reliability and abuse prevention. - Payment confirmation details from Paddle, which processes payments; KeepBal does not receive your full card number. ### Why we use it We use this information to sign you in, record charges, show wallet and call history, provide support, and meet legal and tax obligations. ### Sharing We do not sell personal data. Infrastructure and payment providers, including Cloudflare and Paddle, receive data needed to run KeepBal. ### Retention Account, wallet, and call records are kept while your account is active and as needed for billing disputes, refunds, and legal requirements. ### Your choices Contact support for account or privacy questions. Request a password reset email from the sign-in page if you forget your password. [support@keepbal.com](mailto:support@keepbal.com) · [Terms](https://keepbal.com/terms) · [Refunds](https://keepbal.com/refund) ## Refund Policy Source: [Refund Policy · KeepBal](https://keepbal.com/refund.md) ## Refund Policy KeepBal sells one-time prepaid API credits with no automatic renewal. Last updated: 2026-10-06. ### Payments Paddle processes purchases and approved card refunds. ### When refunds apply - For duplicate or accidental charges, contact support promptly with your Paddle transaction ID. - Unused prepaid credits may be considered for refund at our discretion within a reasonable time after purchase. - Credits already spent on calls are generally not refundable. ### Fees and promotional credit Processing fees and taxes are not refunded unless Paddle or the law requires otherwise. Free signup credit is not a paid purchase and cannot be refunded. ### Wallet balance Refunds and chargebacks remove the related credits from your wallet. This can leave a negative balance. ### Chargebacks An account may be suspended while a payment dispute is reviewed. ### Request a refund Email support with your account email, purchase date and amount, Paddle transaction ID or receipt, and the reason for your request. [support@keepbal.com](mailto:support@keepbal.com) · [Terms](https://keepbal.com/terms) · [Privacy](https://keepbal.com/privacy) ## KeepBal documentation Source: [KeepBal documentation · KeepBal](https://keepbal.com/docs.md) ## KeepBal documentation One API key and prepaid wallet for supported tools and models. Follow the quickstart, or open a reference below. [Start with $1 free credit](/sign-up) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Client integrations](/integrations) [Docs](/docs) ## API authentication Source: [API authentication · KeepBal](https://keepbal.com/docs/authentication.md) ## API authentication Keys start with dgk_live_ followed by 40 base62 characters. Send Authorization: Bearer YOUR_KEEPBAL_KEY. The gateway also accepts x-api-key. ```sh export KEEPBAL_API_KEY="dgk_live_YOUR_KEY_HERE" ``` Create a key in Console → API keys and save the full value when shown. To rotate, create a replacement, update your server environment and verify it, then revoke the old key in Console. Revoked keys cannot be used again. Never put keys in browser code, public repositories or shared screenshots. Keep project configuration containing literal credentials private. Use separate keys for separate applications. [API keys](/console/keys) · [Authentication errors](/docs/errors) [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Previous: Quickstart](/docs/quickstart) · [Next: Billing](/docs/billing) ## Wallet and billing Source: [Wallet and billing · KeepBal](https://keepbal.com/docs/billing.md) ## Wallet and billing Signup grants $1 credit once. Tools and models use one prepaid wallet; there is no subscription. Top up through Paddle in Console → Wallet. Presets are $10, $20, $50 and $100; supported top-up amounts range from $10 to $1,000. Top-up fee: 8% of the credit, rounded up to the cent, + $0.35 before tax. Only the credit amount is added to your wallet. For $10 credit, the fee is $0.80 + $0.35 = $1.15, so the pre-tax charge is $11.15. Fixed tools charge the published price per successful call. Variable tools use provider cost + 35%; inspect the pricing metadata before running. A variable catalog price is not a guaranteed input-specific quote; final charges use the settled provider cost. Models use the catalog token prices. Catalog tool calls reserve credit in a hold. Settlement records the final charge and releases the hold; pending calls can temporarily reduce available credit. Failed calls are not charged. Check Usage and an existing run before retrying a request with an uncertain outcome. Refunds and chargebacks remove the related credits from your wallet. This can leave a negative balance. [Wallet](/console/wallet) · [Usage](/console/usage) · [Prices](/pricing) · [Refund policy](/refund) [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Previous: Authentication](/docs/authentication) · [Next: Tools](/docs/tools) ## Discover and run tools Source: [Discover and run tools · KeepBal](https://keepbal.com/docs/tools.md) ## Discover and run tools Browse Tools or search with POST /apis/v1/discover. Use public IDs such as exa/contents; do not use internal provider namespaces. Discovery and inspection are free. ```sh curl https://keepbal.com/apis/v1/discover \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"query":"exa"}' ``` Example discovery result (excerpt). Carry publicId unchanged through inspect and run: ```json { "data": [ { "publicId": "exa/contents", "path": "exa/contents" } ] } ``` Inspect returns pricing metadata and known input fields; it does not calculate an input-specific quote. Fixed tools show the per-call price. Variable tools are billed at provider price + 35%. ```sh curl https://keepbal.com/apis/v1/inspect \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"publicId":"exa/contents"}' ``` Run the same publicId with input.body, input.queryParams, and input.pathParams. Supply the fields required by the selected tool; unused buckets can be empty. ```sh curl https://keepbal.com/apis/v1/run \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"publicId":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true},"queryParams":{},"pathParams":{}},"max_cost_usd":"0.10"}' ``` Catalog tool spend caps: REST top-level max_cost_usd, MCP input.max_cost_usd, or the X-KeepBal-Max-Cost-USD header. Caps must cover the estimate and fit your available balance; they persist through async completion. Costs above the cap fail without charge. Some variable tools require a cap or quantity. A direct public tool URL accepts the tool JSON body; it does not require a provider/endpoint/input envelope. ```sh curl https://keepbal.com/apis/v1/exa/contents \ -H "Authorization: Bearer $KEEPBAL_API_KEY" \ -H "Content-Type: application/json" \ --data '{"urls":["https://example.com"],"text":true}' ``` MCP uses search_tools, inspect_tool, run_tool and get_run. Inspect first; run_tool takes tool and input. For pending results use get_run with run_id instead of starting another execution. ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "run_tool", "arguments": { "tool": "exa/contents", "input": { "body": { "urls": [ "https://example.com" ], "text": true }, "queryParams": {}, "pathParams": {}, "max_cost_usd": "0.10" } } } } ``` REST may return downloads or streams when the selected tool supports them; check Content-Type and the tool schema. MCP JSON results can be truncated and unsupported downloads include a do-not-retry notice. Use the documented REST result route when needed. [Exa contents](/tools/exa/contents) · [Search and extraction](/tools/category/search-and-extraction) · [MCP reference](/docs/mcp) [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Previous: Billing](/docs/billing) · [Next: Models](/docs/models) ## Call models Source: [Call models · KeepBal](https://keepbal.com/docs/models.md) ## Call models Choose a live model and its endpoint from Models or GET /v1/models. Use POST /v1/chat/completions for OpenAI-compatible chat, POST /v1/messages for Anthropic messages, and POST /v1/embeddings for embeddings. Not every model supports every endpoint. ```python from openai import OpenAI import os client = OpenAI(api_key=os.environ["KEEPBAL_API_KEY"], base_url="https://keepbal.com/v1") result = client.chat.completions.create(model="MODEL_ID", messages=[{"role": "user", "content": "Hello"}]) print(result.choices[0].message.content) ``` ```python from anthropic import Anthropic import os client = Anthropic(api_key=os.environ["KEEPBAL_API_KEY"], base_url="https://keepbal.com") result = client.messages.create(model="MODEL_ID", max_tokens=128, messages=[{"role": "user", "content": "Hello"}]) ``` ```sh curl https://keepbal.com/v1/embeddings -H "Authorization: Bearer $KEEPBAL_API_KEY" -H "Content-Type: application/json" --data '{"model":"EMBEDDING_MODEL_ID","input":"Hello"}' ``` Replace the placeholder model IDs with catalog IDs for the chosen endpoint. Set stream: true on supported chat or messages requests to receive server-sent events; consume the stream to completion. Embeddings return JSON. Check Usage for settled token charges. [Live models and prices](/models) · [Billing](/docs/billing) [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Previous: Tools](/docs/tools) · [Next: MCP](/docs/mcp) ## Gateway error reference Source: [Gateway error reference · KeepBal](https://keepbal.com/docs/errors.md) ## Gateway error reference Gateway errors use an OpenAI-style error object with message, type, code and param; request_id is included when available. Upstream error bodies may differ. Keep the request ID when asking support for help. Gateway error codes | Code | HTTP status | What to do | | --- | --- | --- | | unauthorized | 401 | Sign in again or provide valid authentication. | | account_exists | 409 | Sign in to the existing account. | | invalid_api_key | 401 | Check the key or create a replacement in Console. | | missing_api_key | 401 | Send the Authorization bearer header. | | key_revoked | 401 | Replace the revoked key. | | scope_denied | 403 | Use a key entitled to this product. | | insufficient_credits | 402 | Check available wallet credit and add funds. | | rate_limited | 429 | Wait for Retry-After before retrying. | | invalid_request | 400 | Correct the input or named parameter. | | model_not_found | 404 | Choose an available model from the catalog. | | not_found | 404 | Check the public ID or resource URL. | | method_not_allowed | 405 | Use the documented HTTP method. | | not_implemented | 501 | Choose a supported operation. | | provider_unavailable | 503 | Check availability before trying later. | | upstream_error | 502 | Check Usage before deciding whether to retry the call. | | console_disabled | 503 | Console is unavailable on this deployment. | | forbidden | 403 | Check account access and permissions. | | internal_error | 500 | Contact support with the request ID. | A failed billable call is not charged. For a transport timeout with an unknown outcome, check Usage or the existing run before starting another paid execution. [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Previous: MCP](/docs/mcp) · [Next: Rate limits and budgets](/docs/rate-limits-and-budgets) ## Rate limits and budgets Source: [Rate limits and budgets · KeepBal](https://keepbal.com/docs/rate-limits-and-budgets.md) ## Rate limits and budgets The per-key limiter uses fixed 60-second windows. Its shared cache is eventually consistent, so counts are best-effort rather than exact. A configured limit of zero or less disables this limiter. Keys default to 60 requests per minute in legacy routing. Catalog routing enforces only operator-configured custom key limits; the default is not an enforced catalog-wide cap. Read x-ratelimit-limit, x-ratelimit-remaining and x-ratelimit-reset when present. On HTTP 429, wait for the Retry-After seconds before retrying. Daily and per-call budgets are not available in Console. Wallet shows prepaid credit and Usage shows recorded charges. Holds reduce available credit while calls settle. Do not treat the displayed balance as an exact concurrent spending cap. [Wallet](/console/wallet) · [Usage](/console/usage) · [Billing](/docs/billing) [Docs](/docs) [Quickstart](/docs/quickstart) · [Authentication](/docs/authentication) · [Billing](/docs/billing) · [Tools](/docs/tools) · [Models](/docs/models) · [MCP](/docs/mcp) · [Errors](/docs/errors) · [Rate limits and budgets](/docs/rate-limits-and-budgets) [Previous: Errors](/docs/errors) ## Claude Code integration Source: [Claude Code integration · KeepBal](https://keepbal.com/integrations/claude-code.md) ## Claude Code integration ### What you get Use Claude Code with KeepBal discovery, inspection and paid tool execution through one key and prepaid wallet. ### Prerequisites Create a KeepBal account and API key. Signup includes $1 credit once. Keep the key private and ensure sufficient wallet credit before executing a tool. [Create an account](/sign-up) · [API keys](/console/keys) ### Setup Install Claude Code and export KEEPBAL_API_KEY in your shell. Add the server with the command below. Local scope is the default; project and user scopes are also supported. ```sh claude mcp add --transport http keepbal https://keepbal.com/mcp --header "Authorization: Bearer $KEEPBAL_API_KEY" ``` ```json {"mcpServers":{"keepbal":{"type":"http","url":"https://keepbal.com/mcp","headers":{"Authorization":"Bearer ${KEEPBAL_API_KEY}"}}}} ``` Run claude mcp list or claude mcp get keepbal. In a session, open /mcp. For project configuration, use the HTTP type explicitly in .mcp.json. [Claude Code official documentation](https://docs.anthropic.com/en/docs/claude-code/mcp) ### Worked example: read a web page Ask your agent: Find the page-content tool, inspect exa/contents, then fetch https://example.com with text enabled and summarize the result. Review the published price before approving execution. Data is from Exa; this does not imply partnership. ```text search_tools {"query":"page contents"} inspect_tool {"tool":"exa/contents"} run_tool {"tool":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true}}} ``` These are MCP tool names and argument objects. The client wraps them in tools/call requests. If run_tool returns pending with a run_id, call get_run {"run_id":"RETURNED_RUN_ID"}; do not repeat run_tool. ### Troubleshooting Initialization and tools/list work without a key; every tools/call requires a valid bearer key, including search and inspect. For 401 check the key and client launch environment. For insufficient_credits check Wallet; for rate_limited respect Retry-After. Check Usage after uncertain outcomes before retrying a paid call. Truncated or unsupported MCP results must not be retried. [Exa contents tool](/tools/exa/contents) · [Search and extraction tools](/tools/category/search-and-extraction) · [Errors](/docs/errors) · [MCP reference](/docs/mcp) · [All integrations](/integrations) [Integrations](/integrations) ## Cursor integration Source: [Cursor integration · KeepBal](https://keepbal.com/integrations/cursor.md) ## Cursor integration ### What you get Use Cursor with KeepBal discovery, inspection and paid tool execution through one key and prepaid wallet. ### Prerequisites Create a KeepBal account and API key. Signup includes $1 credit once. Keep the key private and ensure sufficient wallet credit before executing a tool. [Create an account](/sign-up) · [API keys](/console/keys) ### Setup Install Cursor and make KEEPBAL_API_KEY available to the process launching it. Put this configuration in ~/.cursor/mcp.json globally or .cursor/mcp.json for a project. ```json {"mcpServers":{"keepbal":{"url":"https://keepbal.com/mcp","headers":{"Authorization":"Bearer ${env:KEEPBAL_API_KEY}"}}}} ``` Enable the server in Customize. Inspect the Output panel → MCP Logs if tools do not appear; confirm the environment variable is available to Cursor. [Cursor official documentation](https://cursor.com/docs/context/mcp) ### Worked example: read a web page Ask your agent: Find the page-content tool, inspect exa/contents, then fetch https://example.com with text enabled and summarize the result. Review the published price before approving execution. Data is from Exa; this does not imply partnership. ```text search_tools {"query":"page contents"} inspect_tool {"tool":"exa/contents"} run_tool {"tool":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true}}} ``` These are MCP tool names and argument objects. The client wraps them in tools/call requests. If run_tool returns pending with a run_id, call get_run {"run_id":"RETURNED_RUN_ID"}; do not repeat run_tool. ### Troubleshooting Initialization and tools/list work without a key; every tools/call requires a valid bearer key, including search and inspect. For 401 check the key and client launch environment. For insufficient_credits check Wallet; for rate_limited respect Retry-After. Check Usage after uncertain outcomes before retrying a paid call. Truncated or unsupported MCP results must not be retried. [Exa contents tool](/tools/exa/contents) · [Search and extraction tools](/tools/category/search-and-extraction) · [Errors](/docs/errors) · [MCP reference](/docs/mcp) · [All integrations](/integrations) [Integrations](/integrations) ## Codex integration Source: [Codex integration · KeepBal](https://keepbal.com/integrations/codex.md) ## Codex integration ### What you get Use Codex with KeepBal discovery, inspection and paid tool execution through one key and prepaid wallet. ### Prerequisites Create a KeepBal account and API key. Signup includes $1 credit once. Keep the key private and ensure sufficient wallet credit before executing a tool. [Create an account](/sign-up) · [API keys](/console/keys) ### Setup Install Codex and export KEEPBAL_API_KEY in the environment that launches it. Add this to ~/.codex/config.toml, shared by the CLI, IDE extension and desktop client. ```toml [mcp_servers.keepbal] url = "https://keepbal.com/mcp" bearer_token_env_var = "KEEPBAL_API_KEY" ``` Run codex mcp list or open /mcp in the TUI. If the header is missing, check the launch environment. The default tool timeout is 60 seconds and startup timeout is 10 seconds. [Codex official documentation](https://developers.openai.com/codex/mcp) ### Worked example: read a web page Ask your agent: Find the page-content tool, inspect exa/contents, then fetch https://example.com with text enabled and summarize the result. Review the published price before approving execution. Data is from Exa; this does not imply partnership. ```text search_tools {"query":"page contents"} inspect_tool {"tool":"exa/contents"} run_tool {"tool":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true}}} ``` These are MCP tool names and argument objects. The client wraps them in tools/call requests. If run_tool returns pending with a run_id, call get_run {"run_id":"RETURNED_RUN_ID"}; do not repeat run_tool. ### Troubleshooting Initialization and tools/list work without a key; every tools/call requires a valid bearer key, including search and inspect. For 401 check the key and client launch environment. For insufficient_credits check Wallet; for rate_limited respect Retry-After. Check Usage after uncertain outcomes before retrying a paid call. Truncated or unsupported MCP results must not be retried. [Exa contents tool](/tools/exa/contents) · [Search and extraction tools](/tools/category/search-and-extraction) · [Errors](/docs/errors) · [MCP reference](/docs/mcp) · [All integrations](/integrations) [Integrations](/integrations) ## Claude Desktop integration Source: [Claude Desktop integration · KeepBal](https://keepbal.com/integrations/claude-desktop.md) ## Claude Desktop integration ### What you get Use Claude Desktop with KeepBal discovery, inspection and paid tool execution through one key and prepaid wallet. ### Prerequisites Create a KeepBal account and API key. Signup includes $1 credit once. Keep the key private and ensure sufficient wallet credit before executing a tool. [Create an account](/sign-up) · [API keys](/console/keys) ### Setup Install Claude Desktop and Node.js with npx. This setup uses the mcp-remote bridge: a local stdio process connects to the KeepBal HTTP server. Native remote configuration was not verified. Edit claude_desktop_config.json and replace YOUR_KEEPBAL_KEY with your private key. ```json {"mcpServers":{"keepbal":{"command":"npx","args":["-y","mcp-remote","https://keepbal.com/mcp","--header","Authorization:${KEEPBAL_AUTH}"],"env":{"KEEPBAL_AUTH":"Bearer YOUR_KEEPBAL_KEY"}}}} ``` Restart Claude Desktop after saving. If the bridge fails to start, check that Node.js and npx are installed and reachable. Keep this credential-bearing configuration private. [Claude Desktop official documentation](https://modelcontextprotocol.io/quickstart/user) The official MCP client guide describes local server configuration; the remote connection here is provided by mcp-remote. [mcp-remote bridge documentation](https://github.com/geelen/mcp-remote) ### Worked example: read a web page Ask your agent: Find the page-content tool, inspect exa/contents, then fetch https://example.com with text enabled and summarize the result. Review the published price before approving execution. Data is from Exa; this does not imply partnership. ```text search_tools {"query":"page contents"} inspect_tool {"tool":"exa/contents"} run_tool {"tool":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true}}} ``` These are MCP tool names and argument objects. The client wraps them in tools/call requests. If run_tool returns pending with a run_id, call get_run {"run_id":"RETURNED_RUN_ID"}; do not repeat run_tool. ### Troubleshooting Initialization and tools/list work without a key; every tools/call requires a valid bearer key, including search and inspect. For 401 check the key and client launch environment. For insufficient_credits check Wallet; for rate_limited respect Retry-After. Check Usage after uncertain outcomes before retrying a paid call. Truncated or unsupported MCP results must not be retried. [Exa contents tool](/tools/exa/contents) · [Search and extraction tools](/tools/category/search-and-extraction) · [Errors](/docs/errors) · [MCP reference](/docs/mcp) · [All integrations](/integrations) [Integrations](/integrations) ## LangChain integration Source: [LangChain integration · KeepBal](https://keepbal.com/integrations/langchain.md) ## LangChain integration ### What you get Use LangChain with KeepBal discovery, inspection and paid tool execution through one key and prepaid wallet. ### Prerequisites Create a KeepBal account and API key. Signup includes $1 credit once. Keep the key private and ensure sufficient wallet credit before executing a tool. [Create an account](/sign-up) · [API keys](/console/keys) ### Setup Install Python and run: pip install langchain-mcp-adapters langgraph "langchain[openai]". Export KEEPBAL_API_KEY and OPENAI_API_KEY; the latter authenticates the separately billed agent model in this example. The official README notes MCP support moved to langchain[mcp] / langchain.mcp; this example uses the documented adapters package. ```python import asyncio import os from langchain_mcp_adapters.client import MultiServerMCPClient from langchain.agents import create_agent async def main(): client = MultiServerMCPClient({"keepbal": { "transport": "streamable_http", "url": "https://keepbal.com/mcp", "headers": {"Authorization": f"Bearer {os.environ['KEEPBAL_API_KEY']}"} }}) tools = await client.get_tools() agent = create_agent("openai:gpt-4.1", tools) result = await agent.ainvoke({"messages": [{"role": "user", "content": "Inspect exa/contents, then fetch https://example.com with text enabled and summarize it."}]}) print(result) asyncio.run(main()) ``` Check that get_tools returns search_tools, inspect_tool, run_tool and get_run. Headers are supported for HTTP transports. If the model fails separately, check its model-provider credential. [LangChain official documentation](https://github.com/langchain-ai/langchain-mcp-adapters) ### Worked example: read a web page Ask your agent: Find the page-content tool, inspect exa/contents, then fetch https://example.com with text enabled and summarize the result. Review the published price before approving execution. Data is from Exa; this does not imply partnership. ```text search_tools {"query":"page contents"} inspect_tool {"tool":"exa/contents"} run_tool {"tool":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true}}} ``` These are MCP tool names and argument objects. The client wraps them in tools/call requests. If run_tool returns pending with a run_id, call get_run {"run_id":"RETURNED_RUN_ID"}; do not repeat run_tool. ### Plain HTTP tool wrapper Alternatively, install requests with pip install requests and register this wrapper. It sends POST https://keepbal.com/apis/v1/exa/contents with the direct JSON body, without the MCP input envelope. Choose either this wrapper or the MCP tools for the example. ```python import os import requests from langchain.tools import tool @tool def fetch_page(url: str) -> dict: """Fetch page contents through KeepBal, billed per successful call.""" response = requests.post( "https://keepbal.com/apis/v1/exa/contents", headers={"Authorization": f"Bearer {os.environ['KEEPBAL_API_KEY']}"}, json={"urls": [url], "text": True}, timeout=60, ) response.raise_for_status() return response.json() from langchain.agents import create_agent agent = create_agent("openai:gpt-4.1", tools=[fetch_page]) result = agent.invoke({"messages": [{"role": "user", "content": "Fetch https://example.com and summarize it."}]}) print(result) ``` ### Troubleshooting Initialization and tools/list work without a key; every tools/call requires a valid bearer key, including search and inspect. For 401 check the key and client launch environment. For insufficient_credits check Wallet; for rate_limited respect Retry-After. Check Usage after uncertain outcomes before retrying a paid call. Truncated or unsupported MCP results must not be retried. [Exa contents tool](/tools/exa/contents) · [Search and extraction tools](/tools/category/search-and-extraction) · [Errors](/docs/errors) · [MCP reference](/docs/mcp) · [All integrations](/integrations) [Integrations](/integrations) ## OpenAI Agents SDK integration Source: [OpenAI Agents SDK integration · KeepBal](https://keepbal.com/integrations/openai-agents-sdk.md) ## OpenAI Agents SDK integration ### What you get Use OpenAI Agents SDK with KeepBal discovery, inspection and paid tool execution through one key and prepaid wallet. ### Prerequisites Create a KeepBal account and API key. Signup includes $1 credit once. Keep the key private and ensure sufficient wallet credit before executing a tool. [Create an account](/sign-up) · [API keys](/console/keys) ### Setup Install Python and run: pip install openai-agents. Export KEEPBAL_API_KEY and OPENAI_API_KEY. The example uses the SDK model provider separately from KeepBal tool billing. ```python import asyncio import os from agents import Agent, Runner from agents.mcp import MCPServerStreamableHttp async def main(): token = os.environ["KEEPBAL_API_KEY"] async with MCPServerStreamableHttp( name="KeepBal", params={"url": "https://keepbal.com/mcp", "headers": {"Authorization": f"Bearer {token}"}, "timeout": 30}, cache_tools_list=True, ) as server: agent = Agent(name="Assistant", instructions="Use KeepBal tools.", mcp_servers=[server]) result = await Runner.run(agent, "Inspect exa/contents, then fetch https://example.com with text enabled and summarize it.") print(result.final_output) asyncio.run(main()) ``` Keep the server async context open while Runner executes. If tool listing works but calls fail with authentication errors, verify the Authorization header. Check the model-provider key for model errors. [OpenAI Agents SDK official documentation](https://openai.github.io/openai-agents-python/mcp/) ### Worked example: read a web page Ask your agent: Find the page-content tool, inspect exa/contents, then fetch https://example.com with text enabled and summarize the result. Review the published price before approving execution. Data is from Exa; this does not imply partnership. ```text search_tools {"query":"page contents"} inspect_tool {"tool":"exa/contents"} run_tool {"tool":"exa/contents","input":{"body":{"urls":["https://example.com"],"text":true}}} ``` These are MCP tool names and argument objects. The client wraps them in tools/call requests. If run_tool returns pending with a run_id, call get_run {"run_id":"RETURNED_RUN_ID"}; do not repeat run_tool. ### Plain HTTP tool wrapper Alternatively, install requests with pip install requests and register this wrapper. It sends POST https://keepbal.com/apis/v1/exa/contents with the direct JSON body, without the MCP input envelope. Choose either this wrapper or the MCP tools for the example. ```python import os import requests from agents import function_tool @function_tool def fetch_page(url: str) -> dict: """Fetch page contents through KeepBal, billed per successful call.""" response = requests.post( "https://keepbal.com/apis/v1/exa/contents", headers={"Authorization": f"Bearer {os.environ['KEEPBAL_API_KEY']}"}, json={"urls": [url], "text": True}, timeout=60, ) response.raise_for_status() return response.json() from agents import Agent, Runner agent = Agent(name="Reader", tools=[fetch_page]) result = Runner.run_sync(agent, "Fetch https://example.com and summarize it.") print(result.final_output) ``` ### Troubleshooting Initialization and tools/list work without a key; every tools/call requires a valid bearer key, including search and inspect. For 401 check the key and client launch environment. For insufficient_credits check Wallet; for rate_limited respect Retry-After. Check Usage after uncertain outcomes before retrying a paid call. Truncated or unsupported MCP results must not be retried. [Exa contents tool](/tools/exa/contents) · [Search and extraction tools](/tools/category/search-and-extraction) · [Errors](/docs/errors) · [MCP reference](/docs/mcp) · [All integrations](/integrations) [Integrations](/integrations)