requests.
A small helper
Put this infindly.py. It sends the key, keeps the timeout above the 30-second search limit, and turns the error envelope into an exception.
findly.py
Check your key and quotas
Free: never billed, never runs a search.Intelligence Search
Phonebook as a text file
fmt="txt" returns one selector per line, at the same price as JSON. An empty result is 204 No Content.
Download a raw file
Breach Search
A single free-text value, or combinedfields that must all match:
record vary from one breach to the next: read the keys you need and ignore the rest.
Stealer Export
The archive is the body on success; errors are still JSON.Handle errors and retries
Branch oncode, wait Retry-After on a 429, and stop on quota_exceeded: the quota only comes back at 02:00 Paris time.

