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 what spends credits.
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 20 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 additionally take the source list to watch (listId or listIds).

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.
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 is what spends credits. It answers 202 and moves the agent to processing.
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. Pause an agent you still want and you will have to create a new one.
Passing start: true on the create call does both steps at once. It is the same spend, without the chance to review the config first.

Bound the spend

Two fields decide what an agent can cost, and both are worth setting explicitly: Delivery is what costs — a web monitor bills 50 credits per delivered result. See Credits.

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 row. Read it with GET /business/lists/{listId}/rows like any other list, which means custom columns, filters and exports all work on agent output.

Housekeeping

Errors worth handling

The full list is in the error catalogue.