Skip to main content
POST
Create a linkedin posts agent

Authorizations

Authorization
string
header
required

Your API token (af_…) as the Basic-auth username, with an empty password.

Body

application/json
keywords
string[]
required

Free text matched against the POST TEXT. Each value is trimmed and lowercased, then all values are OR-joined into one provider query (["hiring", "humanoids"] is sent as "hiring OR humanoids"), so a post matching ANY one of them qualifies; at least one keyword is required and there is no cap. A single value may itself carry boolean syntax: uppercase AND, OR and NOT, parentheses for grouping and double quotes for exact phrases, for example [""product manager" AND hiring"].

Minimum array length: 1
listName
string
required

Name for BOTH the agent and the results list it creates. Must be unique across your agents: a name already in use is rejected with 409 LIST_NAME_TAKEN.

start
boolean
default:false

true creates AND activates the agent (spends credits); false (default) saves a draft to activate later.

companyHeadcount
string[]

Size of the posting company, as a headcount bucket. Use one of exactly: 1-10, 11-50, 51-200, 201-500, 501-1,000, 1,001-5,000, 5,001-10,000, 10,001+ (the commas and the exact spacing are part of the value: "500-1000" is not a bucket). The upstream stores the string as sent and never checks it against a list, so any other value is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple buckets are OR-joined (a company in any listed band matches) and there is no cap. At least one of companyHeadcount or companyCountries must be set before this agent can start.

companyCountries
string[]

Headquarters country of the posting company. Use values from the provider's canonical country list: full English country names such as "United States", "United Kingdom", "Germany". ISO codes like "US" are not accepted, no lookup endpoint serves this vocabulary yet, and an unrecognised name is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple countries are OR-joined (a company headquartered in any of them matches) and there is no cap. At least one of companyHeadcount or companyCountries must be set before this agent can start.

industries
string[]

Industry of the person or company posting. Use exact values from GET /business/agents/autocomplete?field=industry (for example "Software Development", "Financial Services"). Any other wording is first resolved to the closest supported LinkedIn industry ("tech" becomes "Technology, Information and Internet"), and a value with no match is dropped rather than rejected, so the filter silently widens instead of failing. At most 1 value is allowed here; a second entry is rejected with 422 VALIDATION_FAILED.

Maximum array length: 1
authorCompany
string[]

Companies the post author currently works at, as company LinkedIn URLs, for example ["https://www.linkedin.com/company/google/"]. This filter resolves URLs only: a bare company name or domain is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple URLs are OR-joined (a post by an employee of any listed company matches) and there is no cap. Preferred over the deprecated currentCompany.

authorTitle
string[]

Current job title of the post author. Use exact values from GET /business/agents/autocomplete?field=title (for example "Vice President of Sales", "CEO"). The upstream stores the string as sent and never checks it against a list, so any other value is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple titles are OR-joined (a post by anyone holding any of them matches) and there is no cap. Preferred over the deprecated currentTitle.

authorLocation
string[]

Author location, matched geographically; at most one value, e.g. ["United States"]. Use exact values from GET /business/agents/autocomplete?field=region.

Maximum array length: 1
actorType
enum<string>[]

Whether to match posts from people, companies or both (the default). At most one entry each of "person" and "company".

Maximum array length: 2
Available options:
person,
company
reactors
boolean

Also deliver the people who REACTED to each matching post, not just its author. Reactions cost extra credits per delivered contact.

detailedReactorData
boolean

Enrich each delivered reactor with employer, education and summary data (only meaningful with reactors: true); costs more credits per contact.

postIntent
string[]

A single plain-language filter on the POST CONTENT itself, e.g. ["announcing a new product launch"]. It describes the post, never the person or company posting.

Maximum array length: 1
postCategory
string[]

Categories the post must fall into, for example ["Business", "Personal", "Events", "Social Commentary"]. Free text: the provider classifies every post with its own labels and files anything unmatched under "Others", so there is no fixed list and no endpoint to look one up, and a label it does not use is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple categories are OR-joined (a post in any of them matches); the provider caps this filter at 10 categories, and a longer array is accepted here and rejected upstream.

currentCompany
string[]

Deprecated, use authorCompany. Read only when authorCompany is omitted, and then sent as the author-company filter, which resolves company LinkedIn URLs only, for example "https://www.linkedin.com/company/google/": the bare name or domain this field is named after is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple URLs are OR-joined and there is no cap.

pastCompany
string[]

Past employer of the post author, as a company NAME or DOMAIN, for example ["Google"] or ["google.com"]. Free text resolved by the provider, so a name it cannot resolve is accepted, the create still answers 201, and the agent then silently matches nothing; a domain is the unambiguous form. Multiple values are OR-joined (an author who worked at any of them matches) and there is no cap.

currentTitle
string[]

Deprecated, use authorTitle. Read only when authorTitle is omitted, and then sent as the author-title filter. Use exact values from GET /business/agents/autocomplete?field=title (for example "Vice President of Sales"). The upstream stores the string as sent and never checks it against a list, so any other value is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple titles are OR-joined and there is no cap.

pastTitle
string[]

A job title anywhere in the post author's PAST work history. Use exact values from GET /business/agents/autocomplete?field=title (for example "Vice President of Sales", "CEO"). The upstream stores the string as sent and never checks it against a list, so any other value is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple titles are OR-joined (an author who held any of them matches) and there is no cap.

leadCompanyHeadcount
string[]

Size of the post author's CURRENT employer, as a headcount bucket. Use one of exactly: 1-10, 11-50, 51-200, 201-500, 501-1,000, 1,001-5,000, 5,001-10,000, 10,001+ (the commas and the exact spacing are part of the value: "500-1000" is not a bucket). The upstream stores the string as sent and never checks it against a list, so any other value is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple buckets are OR-joined (an author whose employer is in any listed band matches) and there is no cap.

leadCompanyCountries
string[]

Headquarters country of the post author's CURRENT employer. Use values from the provider's canonical country list: full English country names such as "United States", "United Kingdom", "Germany". ISO codes like "US" are not accepted, no lookup endpoint serves this vocabulary yet, and an unrecognised name is accepted, the create still answers 201, and the agent then silently matches nothing. Multiple countries are OR-joined (an author whose employer sits in any of them matches) and there is no cap.

expirationDate
string | null

Date the agent stops running, as YYYY-MM-DD (for example "2026-12-31"), and in the future. Pass null to run until you pause or delete it; omit it for the default of one month from creation.

maxContacts
integer

Cap on the total number of results this agent delivers into its list. Omit for no cap.

maxCreditSpend
integer

Maximum credits this agent may spend in a single run or refresh (1000 to 200000); delivery-driven monitors stop once their total delivered results reach it. Omit for no limit.

Required range: 1000 <= x <= 200000
notificationCount
integer

Maximum results the agent may deliver in a single run. Must be a positive multiple of 50.

enrichPhone
boolean
default:false

Also enrich every delivered contact with a phone number. Costs additional credits per contact enriched.

enrichEmail
boolean
default:false

Also enrich every delivered contact with a work email address. Costs additional credits per contact enriched.

Response

Success

agent
object
required