Watch feed
Read one Watch's signals as JSON or CSV from a revocable token URL.
A Watch feed returns the signals from the companies currently in one active Watch. Open Connect from the Watch workspace to get both URLs:
https://prospex.ch/app/watch/feed/<token>.json
https://prospex.ch/app/watch/feed/<token>.csv
The URL is the credential. Reads need no browser session or authorization header. Pausing the Watch stops its notifications while the feed continues to answer.
JSON
{
"version": 1,
"watch": {
"id": 7,
"name": "Renewal accounts",
"company_count": 42,
"topics": ["leadership", "growth_finance"],
"paused": false
},
"generated_at": "2026-08-21T08:15:00+00:00",
"count": 2,
"has_more": true,
"next_url": "https://prospex.ch/app/watch/feed/…json?limit=2&cursor=…",
"usage": {"rows_today": 214, "daily_limit": 5000},
"data": []
}
Rows are newest first. next_url is absolute and preserves the parameters from the first request. A keyset cursor prevents newer signals from shifting an older row past the next page.
JSON parameters
| Parameter | Meaning |
|---|---|
| cursor | JSON only. Opaque; follow next_url instead of building one. |
| limit | JSON rows per page, up to 500. |
| since | ISO date or datetime. Only signals recorded after it. |
| type | Topic keys, repeated or comma-separated. Narrows within the Watch's topics. |
CSV parameters
| Parameter | Meaning |
|---|---|
| since | ISO date or datetime. Only signals recorded after it. |
| type | Topic keys, repeated or comma-separated. Narrows within the Watch's topics. |
CSV streams up to 10000 rows or the account's remaining daily allowance, whichever is lower. Its rows are the same signal objects returned by JSON.
Topics
Omit type to read every topic configured on the Watch. Passing one or more of these keys narrows within that configuration:
company_structure: Company structureleadership: Leadership and teamsproducts_positioning: Products and positioninggrowth_finance: Growth and financecompany_news: Company news
CSV columns
| Column | JSON key |
|---|---|
| Signal ID | signal_id |
| Company | company_name |
| Company UID | company_uid |
| Website | company_website |
| Domain | company_domain |
| City | company_city |
| Canton | company_canton |
| Audience | company_audience |
| Employee Size | company_employee_size |
| NOGA Division | company_sector_code |
| Sector | company_sector |
| Signal Type | signal_type |
| Signal Type Label | signal_type_label |
| Title | title |
| Summary | summary |
| Why It Matters | why_it_matters |
| Event Date | event_date |
| Detected | detected_at |
| Confidence | confidence |
| Opportunity | opportunity |
| Opportunity Band | opportunity_band |
| Source | source_name |
| Source URL | source_url |
| Signal URL | signal_url |
| Status | review_status |
Refusals
| Status | Error | When |
|---|---|---|
| 400 | invalid_parameter | A parameter, date, topic or cursor could not be read. |
| 402 | subscription_required | The account behind the feed has lost access. |
| 404 | unknown_token | No active Watch feed answers this token. |
| 429 | daily_row_limit | The account's daily rows are spent. Read Retry-After. |
| 503 | feed_disabled | Token feeds are temporarily unavailable. |
Every response carries Cache-Control: no-store and X-Robots-Tag: noindex, nofollow. A rotated token, switched-off feed, deleted Watch or inactive Watch answers 404.