Skip to main content
An agent watches for one buying signal and drops whoever matches into a list, on a schedule. Signals → Agents describes what each kind finds; this page is how you create and run one over the API. Every endpoint here needs a key with the agents scope. The shape of the work is always the same:
1

Pick a kind

Each kind has its own create endpoint and its own config fields.
2

Save it as a draft

start: false (the default) costs nothing and lets you read the config back before committing.
3

Start it

Activation is free. The agent then charges per result it delivers, or per record it watches on each check.
4

Read the results list

The agent creates its own list and fills it as it runs.

Pick a kind

GET /business/agents/signal-types returns every kind you can create, with the type slug you post to.
The slug is the last path segment of the create call: POST /business/agents/web-monitor, POST /business/agents/funding-announcements, and so on. There are 18 of them, each with a different config — the API reference lists the exact fields per kind.

Every kind and what it needs

listName is required on all of them and is omitted below. Watchers also require exactly one of listId or listIds, the source list to watch.

Find new people and companies

Company growth signals

Watch a list you already have

Scrape a known URL

A watcher builds its own results list and never writes back into the list it watches, so the source list is left untouched.

Fill in the config

Two fields appear on every kind: Everything else is specific to the kind. A website monitor takes a prompt and an entityType; a funding agent takes fundingRoundTypes; a headcount agent takes a growth band.
Most config filters are accepted as plain strings by the service behind them. Send a value outside the accepted vocabulary and the agent is created — 201 Created — and then quietly matches nothing. There is no error to debug, so check your values before you start an agent.
Every field in the API reference states which values it takes and where they come from. See Finding accepted values for the general rules; the short version for agents is below.

Look up the canonical value

GET /business/agents/autocomplete resolves free text to the exact strings a config accepts. Both field and q are required.
There is no country vocabulary. region returns LinkedIn geographies that include sub-national areas such as "California, United States", so it is not a source for companyCountries or leadCompanyCountries — those take full English country names ("United States", "Germany") and no endpoint serves them.
Fields with a short fixed vocabulary carry it inline in the API reference instead — headcount bands (1-10, 11-50, 51-200, …), timeframe (YoY, MoM, QoQ, 6M, 2Y), funding round types, departments.

Save a draft first

With start: false nothing is billed and nothing runs. You get an agent with status initializing.
On a web monitor maxCreditSpend covers everything it ever delivers, so 5000 pauses this one after 100 results at 50 credits each. Read it back with GET /business/agents/{agentId} and adjust anything with PATCH /business/agents/{agentId} — the patch takes the same config fields and merges them, so you can send one key at a time.

Start it

POST /business/agents/{agentId}/activate starts the agent. It answers 202 with the agent’s new status, processing or active depending on the kind. Starting is free; the agent charges as it delivers or checks.
Activation is draft-only. An agent that has already run — active, paused, expired — cannot be activated again, and pausing is one way: there is no resume in this API. To restart a paused agent, POST /business/agents/{agentId}/duplicate and activate the copy, which delivers into a new results list.
Passing start: true on the create call does both steps at once, without the chance to review the config first. It also reports a config problem as a specific error, where activating a draft with the same problem can answer 500 UNEXPECTED_ERROR.

Bound the spend

These fields decide what an agent can cost, and are worth setting explicitly: Discovery agents bill 100 credits per contact or company delivered, and a web monitor 50 per result. The watchers bill 50 for every contact or company they watch, on every check: daily by default for the people and companies watchers, monthly for the job-changes watcher, and frequency changes it. See Credits for every kind.

Watch it and read results

GET /business/agents/{agentId} returns the agent with its current status: The agent’s own list holds the results — the listId on the agent’s row in GET /business/agents. GET /business/agents/{agentId} returns the config but not the list id. Read the list with GET /business/lists/{listId}/rows like any other list, which means custom columns, filters and exports all work on agent output.
To contact everyone an agent finds as soon as they arrive, point a dynamic campaign at its results list. Automate job change outreach walks through it, and Funding round outreach covers agents that deliver companies.

Housekeeping

Errors worth handling

The full list is in the error catalogue.