Prospex docs

List feed

One list's companies as JSON or CSV, on a revocable URL that needs no session, with the list's own reasons on every row.

One revocable URL per list, in two formats, found on the list's Connect page. The token in the path is the whole credential, with no session and no header, so treat the URL the way you treat a password. Regenerating it revokes the previous one immediately.

curl -s 'https://prospex.ch/app/lists/feed/<token>.json?limit=200'
curl -s -o list.csv 'https://prospex.ch/app/lists/feed/<token>.csv'

Each row is one company, with the list's reasons and recent events attached.

Every response carries Cache-Control: no-store.

Parameters

ParameterMeaning
tab core (the default) or explore. Core is the list's answer to who to sell to. Explore is the wider bucket you have not decided about yet.
limit Rows per page, up to 500. Ignored by the CSV, which streams the whole bucket in one response.
cursor Opaque, and issued by this feed. Follow next_url rather than building one.

Extra parameters are ignored.

The envelope

KeyTypeMeaning
version integer The payload contract. 1 today.
market object The list's id, its name, and when it was last refreshed.
generated_at string ISO 8601 UTC, the moment this page was built.
count integer Rows in data on this page.
total integer Rows in the served bucket, across every page.
has_more boolean Whether a page follows this one.
next_url string The next page, absolute and carrying every parameter you sent. Empty on the last page.
usage object rows_today, daily_limit, rows_this_month and monthly_limit, so a workflow can stop before the feed stops it.
data array The companies. One flat object per company.

version is bumped when a field changes meaning or leaves. A new field does not bump it.

Pagination

Follow next_url. It is absolute and carries every parameter you sent.

The cursor carries the build it was issued under. A list's order changes only when a build refreshes it, so a cursor from an older build answers 400 invalid_parameter and asks you to start again.

The CSV takes no cursor. It streams up to 10,000 rows in one response and stops where the account's row budget does.

A row

Flat, with a company_ prefix on the registry facts:

FieldMeaning
fit The stored word. fit_label is the same judgement in the language of the workspace, so a filter written against fit survives a retranslation.
reasons Why this company is in the list, in the same words the workspace shows.
missing What the list asked about and Prospex does not know for this company. A blank field means missing data, not a failed criterion. Useful for deciding what to enrich.
company_group_id The group this company belongs to, such as the entities of one bank. Every member stays in the list, and rows carrying the same id are one group. company_is_group_primary marks its main company, and company_head_office_id names the company a register branch belongs to.
in_crm Whether your connected CRM already holds this company. Populated from the CRM mirror, so it is as current as the last mirror pass.
signals Up to 3 recent events, newest first, each with its type, its date, its title and a link that opens on the event itself. Suppressed events are absent.

Position in the list is the rank.

The CSV columns

One line per company, in this order. The second column is the JSON key a Clay column or an n8n expression maps:

HeaderFrom
Company ID company_id
Company company_name
Company UID company_uid
Company URL company_url
Website company_website
Domain company_domain
Tagline company_tagline
City company_city
Canton company_canton
Audience company_audience
Employee Size company_employee_size
NOGA Division company_sector_code
Sector company_sector
Bucket bucket
Fit fit
Fit Label fit_label
Reasons reasons_text
Missing missing_text
Kept pinned
In CRM in_crm
Signal Count signal_count
Latest Signal latest_signal_date
Signal Titles signal_titles
Signal IDs signal_ids
Legal Form company_legal_form_label
Head Office ID company_head_office_id
Head Office company_head_office_name
Group ID company_group_id
Group company_group_name
Group Primary ID company_group_primary_id
Is Group Primary company_is_group_primary
Website Relationship company_website_relationship
Trading Names company_trading_names
NOGA Code company_noga_code
NOGA Level company_noga_level
NOGA Activity company_noga_label
NOGA Source company_noga_source

Four of those keys exist only in the CSV, because the JSON field they come from is an array and a cell cannot nest. reasons_text joins with a pipe, missing_text with a comma, and the two signal columns carry the titles and the ids of the same recent events.

Refusals

StatuserrorWhen
404 unknown_token No feed answers this URL. Also the answer for a feed switched off and for a list that has been deleted, so a response never confirms that a token existed.
402 subscription_required The list owner's subscription is not active. The body carries a billing URL.
400 invalid_parameter A cursor this feed did not issue, or one issued before the list was last refreshed. Start again without a cursor.
429 daily_row_limit The account has taken its companies for the day. Retry-After points at midnight.
429 monthly_row_limit The account has taken its companies for the month. Retry-After points at the 1st.
503 feed_disabled The surface is switched off globally.

The same five codes come out of the project feed.

No push

There is no webhook on a list.

For push delivery, monitor the list (email) or its outreach (webhooks).