one key. ~30 live tools and your own connected accounts.

your agent loads one tool, not fifty

it asks /discover for the one tool a task needs, so nothing bloats its context, then acts on the accounts you already run on (your stripe, your linear) with tokens kept fresh and a typed error instead of a faked success. every call is logged and yours to audit. 5,000 free calls, no card.

5,000 free calls, no card.

providersyouragentone keyfetchbeanprepaid credits
200 OKPOST /v1/search
{
  "results": [
    {
      "title": "Qdrant",
      "url": "https://qdrant.tech"
    },
    {
      "title": "Weaviate",
      "url": "https://weaviate.io"
    }
  ]
}

your connected keys never reach the agent. they stay server-side, injected only at call time.

encrypted at restscoped least-privilegerevoke anytime

what one key gets you

tools that run on our keys

no signup, the first call just works

  • live web search, current results the model can't know
  • page reads, a url in and clean text out
  • weather, and more we run the accounts behind

your own accounts, connected once

the accounts you already run on, act on them

  • stripe, linear, notion
  • supabase, github, posthog
  • and more, connected once and held server-side

used by developers from

kay.aikay.ai
cloudflarecloudflare
databricksdatabricks
abnormalabnormal
armarm

agent-native

connect your agent in one line

point your agent at the skill, drop in the mcp server, or call plain curl. it works with any mcp client, including the claude agent sdk. no provider accounts to open, no keys to rotate.

# Ask your agent to:
set up fetchbean.com/skill.md

your agent fetches the spec (endpoints, shapes, examples) and is ready to call. no key needed to read it.

browse all providers and methods →

try it

fetch me one, no signup

tap an example and watch it fetch a real-shaped result. or try the one we can't (stock price) to see an honest typed error.

POST /v1/search

tap an example →

examples:

no signup. tap an example and watch it fetch.

how it works

your agent asks for one tool, not fifty.

  1. 1

    your agent describes the task

    it asks /discover for the one tool a job needs. nothing loads upfront, so the context stays clean instead of drowning in definitions.

  2. 2

    it gets exactly that schema

    one tool, one schema that matches the real api, so the first call works. we hold each provider's key, rate limits, and auth on our side.

  3. 3

    it acts and gets a clean result

    normalized json back, or an honest typed error, never a fake success. metered against your prepaid credits.

why fetchbean

load only what you need, act on what you own.

discover, not bloat

your agent pulls the one tool a task needs at runtime, not a giant upfront dump. tool definitions stop eating the context window and burning tokens before the work starts.

act on the accounts you already run on

let your agent do real work in the saas tools you already use. connect each once, and the credential stays scoped and encrypted on our side, yours to revoke, not in your config.

honest results, not faked ones

when a call can't complete, you get a typed error, not a silent 200 or a result:null passed off as done. your agent knows it failed instead of building on a lie.

tokens kept fresh

we run the oauth refresh on the accounts you connect, so a long task doesn't die halfway on an expired token. your agent keeps going instead of erroring out mid-run.

every call logged and yours to audit

each call your agent makes is recorded on your account, so you can see exactly what ran, on which account, and what it returned. no black box.

pay per call, capped, no surprise bill

prepaid credits with the price shown upfront. per-user and per-agent caps stop a runaway loop from burning through your balance. when it runs out, calls stop. no rug-pulls.

capabilities

the live-capability layer your code calls.

live web tools

search the web, read and clean a page, plus model and llm pricing, weather, and more. we run the accounts and keys behind them, so your agent just calls.

your connected accounts

let your agent act on the saas tools you already use. connect each once with a pasted key or one click, and the credential stays scoped and encrypted on our side, not in your config.

compatible with code-mode

fetchbean is what your agent's code calls for what code can't do itself: fresh web and your own authenticated accounts. slim outputs instead of raw rest that burns tokens.

raw access for the long tail

need something past the curated set? run makes the call and passes the provider response back unchanged.

the catalog is live and growing. ask GET /discover?q=your-task for the right tool at runtime, or browse GET /catalog for everything. both are public, no key needed.

pricing

5,000 free calls, no card. then pay per call.

start with 5,000 calls on the house, no card. after that, load prepaid credits and run your agent. set per-user and per-agent caps so a looping agent can't burn through your balance. no surprise invoice.

pay per call · price shown upfront · provider failures & timeouts billed zero

faq

questions builders ask

what is fetchbean?+

one api key that lets your agent load the exact tool a task needs at runtime, instead of dumping fifty definitions into its context. it reaches live tools we run on our own accounts (web search, page reads, weather, and more) plus the ability to act on the saas accounts you connect once, like stripe, linear, and posthog. you get 5,000 free calls, no card.

isn't this just a wrapper around apis my agent could call itself?+

no. three things a raw wrapper or hand-written code can't give you: your agent asks /discover and gets the one tool it needs, so the context never bloats; outputs come back normalized and slim instead of raw rest that burns tokens and makes the model hallucinate; and it acts on your own authenticated accounts, which code can't auth into on its own. it's the live-capability layer your code calls, not a replacement for code.

how does fetchbean keep my agent's context clean?+

nothing loads upfront. your agent asks GET /discover?q=your-task and gets back the single tool that fits, with a schema that matches the real api. tool definitions stop eating the context window and degrading tool selection.

can a runaway agent burn through my balance?+

no. credits are prepaid, not a card on file, and you set per-user and per-agent caps. when a cap or the balance is hit, calls stop. a looping agent can't run up a surprise bill.

what happens when a provider fails or times out?+

you're billed zero and you get an honest typed error, never a fake success. the hold is refunded automatically, so you only pay for calls that come back with data.

how does billing work, and what's a credit?+

prepaid credits with the price shown upfront. 1 credit is $0.0001, so $1 is 10,000 credits. each call reserves a ceiling and then settles the real charge, so spend never runs past your balance. most tools are a flat price per call; page reads are metered by tokens.

how are my credentials handled?+

each account you connect is held server-side, scoped to least privilege, and yours to revoke anytime. you send one fetchbean key and stop rotating a dozen secrets across projects.

how do i connect it to my agent?+

three ways: install the skill (point your agent at fetchbean.com/skill.md), add the hosted mcp server, or call plain http with your key. no per-provider signups.

one tool per task. one key.

live web, page reads, and the accounts you already run on, behind a single fetchbean key. your agent loads only what it needs. 5,000 free calls, no card.