Cost per tool
Search bills per run, not per result. Asking for 100 results costs the same as asking for 10, so request what you will actually use and let cost follow your reading, not your ambition.
What is free
None of these consume credits:- Validation failures — a bad parameter, an oversized limit, a malformed URL
- Authorization failures — a missing scope or an invalid key
- Insufficient credits — the preflight check rejects before any work begins
- Rejected URLs — anything blocked by URL safety
- Failed fetches — a URL that returns no record
- Blocked or rate-limited searches that deliver nothing
- Crawl records dropped for being cross-origin
- Polling with
titan_get_runand browsing withtitan_list_templates
One deliberate exception
A search that completes and confidently returns zero organic results is billable. It delivered a valid answer—that the query has no results—and that answer required real work. A zero-result search caused by a block, a rate limit, a layout failure, or a timeout is not billed. The difference is whether the provider answered.Reading the usage object
Every run reports its own cost:
While a run is in flight, only
credits_estimated is meaningful and billing_status is pending. Both settle at terminal status.
Credit preflight
Before starting work, Titan checks your balance against the maximum estimate—the worst case for what you asked for. If your balance is short, the call fails with:Keeping agent spend predictable
Reconciling with billing
Becauserun_id is the Titan execution_id, agent spend reconciles like any other usage:
Next steps
- Credits and billing — the platform-wide model
- Idempotency and retries — retry without double-charging
- Limits and safety — the caps that bound cost