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.

curl https://keepbal.com/apis/v1/discover \
  -H "Authorization: Bearer $KEEPBAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"query":"page contents"}'

For the REST inspect and run operations, use provider and endpoint fields. Catalog inspection returns pricing metadata and known input fields; it does not calculate an input-specific quote. Variable tools settle at provider cost + 35%. Review any returned estimates as estimates, not guaranteed final charges.

curl https://keepbal.com/apis/v1/inspect \
  -H "Authorization: Bearer $KEEPBAL_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"provider":"exa","endpoint":"contents"}'

A direct public tool URL accepts the tool JSON body; it does not require a provider/endpoint/input envelope.

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.

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 · Search and extraction · MCP reference