Skip to main content
One natural-language query returns a table of companies and people. Every row has source URLs and a rationale for each filter the row passed. The server searches the web, checks the filters, and streams JSON events until it hits your target or finishes its rounds. It does not invent rows. A search is a server-side job. POST /v1/searches returns an id straight away, and you then either stream the events or poll the run. A run takes minutes, so there is no single blocking call to make.

Quickstart

Start a search, then stream its events or poll it until it is terminal.

Agent prompt

Paste one prompt into a coding agent and let it integrate the API.

Result schema

Fields on every row, including per-filter rationales and page URLs.

Eniac

Run a search in the browser before you wire it up.

Base URL

Every request needs a credential. To get one, sign in with Google at eniac.floworks.ai/?panel=keys, create an API key, and copy it straight away: the key is shown once and never again. Send it as an Authorization: Bearer <credential> header on every call. A session token and an API key both work. An API key starts lf_live_ and a session token starts eyJ, which is the quickest way to tell which one you pasted when a call comes back 401. A request with no credential, or one that does not resolve, is refused and no search starts. Read the credential from configuration and never hardcode it.

Billing in one paragraph

Starting a search holds 5.00ofyourbalanceupfront.Ifyoudonothave5.00 of your balance up front. If you do not have 5.00 available, the POST is refused with 402 and nothing runs. When the search ends you are charged what it actually spent, which is the figure the cost events report, and the rest of the hold is released. See Errors for the 402 body and Cost for the number to show a user.