API

Timbrica API

Run Timbrica tools from your own code or from an AI agent. Every call is paid from a prepaid token balance, priced up-front, and never charged unless a result was delivered.

Base URL: https://timbrica.com

A human creates the key: sign in, open Settings → API, mint a key and hand it to your agent. The secret is shown once and cannot be recovered — if it leaks, revoke it and mint a new one.

Quick start

Discovery needs no key, so you can see the catalogue and prices before signing up.

# 1. What can I call?
curl https://timbrica.com/v1/tools

# 2. What will it cost?
curl -X POST https://timbrica.com/v1/tools/dns-lookup/estimate \
  -H "Authorization: Bearer $TIMBRICA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"name":"example.com"}}'

# 3. Run it
curl -X POST https://timbrica.com/v1/tools/dns-lookup/runs \
  -H "Authorization: Bearer $TIMBRICA_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"input":{"name":"example.com","type":"A"}}'
Always send Idempotency-Key. A retried call then returns the original run instead of charging twice. Networks fail; agents retry. Reusing a key with a different body is a conflict (409), not a silent second answer.

Lanes

A tool declares which lanes it offers. Pass "lane" in the request, or leave it out and get auto — the cheapest lane available.

LaneWho does the workWhy it costs what it costs
browser Your own browser or agent Compute is yours, so we only charge for the page and its assets — a token or three. The run answers 202 with a work order: open the URL, follow the recipe, and the run settles by itself when the tool hands over a file.
server Our CPU Priced per job, per character or per megabyte, with a floor. Long jobs answer 202 queued — poll poll_url or configure a webhook.

Rate limits follow the lane

The two lanes cost us completely different things, so they are limited completely differently. A browser run happens on your machine; a server run occupies a worker in the same pool that renders pages for people reading the site.

LaneConcurrent runs per keyRuns / minute
browser 16 120
server 2 (×2 on a paid plan) 20

There is also a ceiling of 12 server-lane runs across all keys at once. Hitting it returns 429 concurrency_limited with "scope":"global" — that one is not about you, and a short retry clears it. Browser-lane runs are never affected by it.

A paid plan is not an API allowance. It discounts the tokens every call spends, and it widens the server-lane ceiling — that is all. API usage is paid per call in tokens on every plan, which is why the browser lane, where the work is yours, is the cheap one. GET /v1/account reports the exact numbers in force for your key.

Files

Media tools take a staged file. Upload bytes, or hand us a URL and we fetch it — useful when a model has a link but not the file.

# upload bytes...
curl -X POST https://timbrica.com/v1/uploads \
  -H "Authorization: Bearer $TIMBRICA_KEY" \
  -F "file=@song.mp3"

# ...or hand us a URL
curl -X POST https://timbrica.com/v1/uploads \
  -H "Authorization: Bearer $TIMBRICA_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/song.mp3"}'

# then reference the returned id
{"input":{"audio":{"file_id":"01J…"}}}

Results come back as a link, not inline — a JSON call should not answer with a hundred megabytes. Both inputs and results expire; collect a result before it does.

MCP

The whole catalogue is available as native tools to any MCP client (Claude, Cursor, and others) with one line of configuration — no SDK, no glue code.

{
  "mcpServers": {
    "timbrica": {
      "url": "https://timbrica.com/mcp",
      "headers": { "Authorization": "Bearer $TIMBRICA_KEY" }
    }
  }
}

Money

Check the balance with GET /v1/balance. Read spendable_by_lane, not available: some tokens (welcome grants) do not fund API traffic, so the raw balance can be a true number about the wrong pool.

An agent cannot top itself up — card authentication needs a human. POST /v1/billing/topup_link returns a link to hand to the account owner.

Telling us something is wrong

POST /v1/feedback is the channel back, and it is free — reporting a defect never costs tokens. Our telemetry already records what happened: every run's status, error, price and timing. What it cannot see is a call that returned 200 with a wrong answer, a schema that disagrees with reality, or a tool you need that we do not have.

curl -X POST https://timbrica.com/v1/feedback \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"bug","tool":"ocr","run_id":"01J…",
       "message":"Recognised text is empty for a clean 300-dpi scan.",
       "expected":"the page text","actual":"empty file"}'

type is one of bug, tool_request, docs, other. Everything except type and message is optional.

Quote run_id whenever you have one. It links your report to our full server-side record of that call — input shape, price, error, timing — which turns "it broke" into something reproducible. Our own 5xx bodies carry a report_url and the request_id to quote, so an agent can file a report at the moment it hits the bug.

Rate limit: 20 per hour per key — the scarce resource behind this endpoint is a person reading it, not CPU. Repeat submissions of the same report collapse into one entry, so a retry loop cannot bury the queue.

Tools

SlugWhat it doesPrice
dns-lookup Resolve DNS records for a domain through Google, Cloudflare or Quad9 DoH. server · 1
ssl-checker Inspect a host TLS certificate: issuer, validity window, chain and expiry. server · 1
whois-lookup Look up domain registration data over RDAP. server · 1
ip-lookup Geolocation, network and ASN data for an IP address or host name. server · 1
redirect-checker Follow a URL hop by hop and report the whole redirect chain. server · 1
cookie-checker List the cookies a page sets, with their flags. server · 1
profanity-check Detect and mask profanity, slurs and abusive language in a text. server · 1
currency-rates Latest exchange rates for a base currency. server · 1
qr-code Generate a QR code and download it as PNG or SVG. browser · 1
audio-trim Trim an audio file to a time range, with optional fades and re-encoding. server · 5
music-mastering Master a track to a streaming-ready loudness target. browser · 3
heic-convert Convert HEIC/HEIF photos to JPG, PNG or WebP. browser · 3
pdf-compress Shrink a PDF by re-encoding the images inside it. browser · 3
ocr Read text out of a scanned image or PDF. browser · 10
video-compress Re-encode a video to a smaller file. browser · 3
photo-resize Resize one photo into every size a set of platforms wants. browser · 1
barcode Generate a retail, logistics or 2D barcode as PNG or SVG. browser · 1