Everything an agent does through a skill file or the MCP server, you can do over plain HTTP. Discovery is anonymous; running a tool needs a key.
The paths below keep an older /api/supertool prefix. That is the service’s previous name, kept so existing integrations keep working. It is the same API — there is nothing to switch and no newer path you should be using instead.

Without a key

Three read-only endpoints. They spend nothing and need no header.
curl "https://agentmore.app/api/supertool/discover?q=search%20the%20web&limit=5"
curl "https://agentmore.app/api/supertool/inspect?id=firecrawl/v2/search"
curl "https://agentmore.app/api/supertool/public?q=instagram&limit=5"
EndpointParametersReturns
GET /discoverq (required), limit (default 10), minScoreMatching tools with id, name, price, pricing shape and a match score
GET /inspectid (required)One tool in full: method, endpoint, price, notes and the exact input schema
GET /publicq, vendor, limit (max 200), offsetThe public directory: name, platform, price and parameter count, paginated
A tool id is <provider>/<endpoint>. Take it from discover, then read its schema with inspect before you send anything.

With a key

Create one at agentmore.app/app/api-keys and send it as a bearer token. A key reaches the catalog and your own runs, nothing else in the account — see API keys.
curl -X POST https://agentmore.app/api/supertool/run \
  -H "Authorization: Bearer agentmore_sk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "firecrawl/v2/search",
    "input": { "body": { "query": "plumbers in London", "limit": 5 } },
    "dryRun": false,
    "wait": true
  }'
input mirrors the schema inspect returned — body for a POST tool, queryParams for a GET one. Nothing else in the body chooses who pays: the balance is always the key owner’s.

The fields that matter in the response

FieldWhat it tells you
runIdThe id to poll, stop or look up later
statusWhere the run got to (see below)
oktrue only when status is COMPLETED — the one field to branch on
outputThe vendor’s result, unchanged apart from credential scrubbing
costWhat this run actually cost, as { value, currency }
balanceCentsYour credit balance after the run, in cents
error and refused appear when something stopped the call, and price carries the quote the run was checked against.

Statuses

READY · RUNNING · COMPLETED · FAILED · BLOCKED · STOPPED · TIME_OUT BLOCKED means one of your caps or ours refused it before anything was sent — terminal and free. See Spend caps.

dryRun and wait

dryRun: true prices the call and shows exactly what would be sent to the vendor. It spends nothing and is the cheapest way to check a schema you just built. wait decides whether the request blocks:
waitBehaviour
true (default)Blocks until the run settles, up to 120 seconds
a numberBlocks that many seconds, up to 120
falseReturns 202 immediately with the runId — poll for the result
120 seconds is the ceiling on a single request, not on the run. A long run keeps going after the response returns; fetch it with GET /runs/:id.

The other endpoints

All authenticated the same way.
EndpointWhat it does
GET /api/supertool/runs?limit=25Your recent runs, newest first
GET /api/supertool/runs/:idOne run in full, including its output
POST /api/supertool/runs/:id/stopAsk a run to stop; 409 if it has already settled
GET /api/supertool/walletYour credit balance and recent movements
GET /api/supertool/usagePlan credit granted and used this month
GET /api/supertool/my-calls?limit=&offset=The call log: tool, cost, status, which key
GET /api/supertool/overview?days=30Daily totals for the dashboard charts
GET | POST /api/supertool/my-budgetRead or set your per-call and daily caps
A run id from another account reads as 404, never 403, so ids cannot be probed.

Errors

CodeMeaning
400Bad body, an input that does not match the schema, or a run that ended in a non-COMPLETED state
401No key, a revoked key, or one without the skills scope
404No such tool, or no such run on this account
409The run is past the point where stopping does anything
More on what to do with each: Troubleshooting.

Next

MCP server

The same tools as a hosted MCP endpoint.

Spend caps

What decides whether a call runs at all.