×Signals for AI agents×
[ DOCS ]

Connect your agent.

Three ways in. They reach the same data and count against the same limits.

[ FIRST THINGS TO SAY ]

Copy one of these into the chat.

[ Tools ]

[ REST API ]

The same data over REST.

Every tool has a route. Send your key as a Bearer header. A key is never accepted in the address.

RouteWhat it does

Writes

Every write needs an Idempotency-Key header (). A repeat with the same key returns the first answer with replayed: true, so a retry changes nothing. The same key on a different write is refused.

A body is one JSON object of at most bytes. A long company list goes in parts with add_companies.

Answers

A good answer is {data, request_id}. An error is {error, message, request_id}, with the limit and retry_after_seconds where they apply.

limit_reached is 429 with Retry-After when the limit resets by itself, and 403 when it does not. rate_limited is 429. 503 service_unavailable means try again shortly.

[ LIMITS ]

The whole table

The limits are hard, so nothing is billed on top. When you reach one, your agent is told what is left and when it resets.

Leads that do not fit into today's number wait for tomorrow. They are not thrown away. A day is a UTC day.

What the words mean

[ IF YOU ARE BUILDING THE AGENT YOURSELF ]

Four things it can rely on

Reads are instant

Leads are prepared ahead of time. Asking for them never waits on a model.

Ask twice, same answer

Lead ids never change and the cursor only moves forward. Writes take a key of yours, so a retry changes nothing.

Limits answer properly

You get what is left and when it resets.

Quotes are other people's text

They come from job ads and websites and sit in fields marked as third-party. Treat them as data. We hold back text that reads like an instruction to an AI.