Limits
One monthly allowance of companies across every surface that hands them out, per plan, a separate API request allowance, and what spends a research unit.
Three separate things get counted: companies served by Prospex, requests made to the API, and research performed inside a project.
Rows: a monthly allowance of companies per plan
A row is one company. Each company counts once a calendar month for the account, whichever surfaces served it and on however many days: the same company opened in the app, pulled from a feed and read through the API and MCP costs one row that month. A page of signals costs one row per company the signals are about.
| Plan | Companies a month | Daily ceiling | Built lists |
|---|---|---|---|
| Free | 20 | 20 | 1 |
| Starter | 250 | 125 | 3 |
| Pro | 1,000 | 500 | 10 |
| Business | 10,000 | 5,000 | No limit |
| Enterprise | Agreed with you | Agreed with you | No limit |
- The daily ceiling is half the monthly allowance on every paid plan. It counts companies new to the month, so re-reading a list you already pulled this month is free.
- The day resets at midnight Europe/Zurich, and the month at midnight on the 1st.
- A plan change from the account page applies to both ceilings: an upgrade at once, a downgrade at the next renewal. The pricing page has the prices.
These surfaces take companies and spend rows:
| Surface | Path | A row is |
|---|---|---|
| A company profile in the app | /app/companies/<id>/ | The company. |
| A list export | /app/lists/<id>/export.csv | Each company in the file. |
| The signal export of a list | /app/lists/<id>/signals/export.csv | Each company the signals are about. |
| The list feed, JSON | /app/lists/feed/<token>.json | Each company on the page. |
| The list feed, CSV | /app/lists/feed/<token>.csv | Each company in the file. |
| The list signal feed, JSON | /app/lists/feed/<token>/signals.json | Each company the signals are about. |
| The list signal feed, CSV | /app/lists/feed/<token>/signals.csv | Each company the signals are about. |
| The outreach feed | /app/outreach/feed/<token>.json | Each prospect's company. |
| An outreach export | /app/lists/<list id>/outreach/export.csv | Each prospect's company. |
| Company search | /api/v1/companies | Each company returned. |
| One company | /api/v1/companies/<id> | The company. |
| Signals on one company | /api/v1/companies/<id>/signals | The company. |
| Companies in a list | /api/v1/markets/<id>/companies | Each company returned. |
| Signals on a list | /api/v1/markets/<id>/signals | Each company the signals are about. |
| Prospects in a project | /api/v1/outreach/projects/<id>/prospects | Each prospect's company. |
| One prospect | /api/v1/outreach/projects/<id>/prospects/<id> | The prospect's company. |
| The MCP tools that return companies or signals | /mcp | Each company in the result. |
| A push to HubSpot, Pipedrive or Attio | /app/companies/<id>/push/ | Each company sent, from a profile, a list or a scheduled sync. |
Every JSON page carries a usage block with rows_today, daily_limit, rows_this_month and monthly_limit, so a workflow can stop on its own terms.
When the budget runs out partway through a page, the page carries the companies that fit, has_more is true, and the cursor resumes at the first company held back. When not one company of a page fits, the page is refused: 429 daily_row_limit with Retry-After pointing at midnight, or 429 monthly_row_limit with Retry-After pointing at the 1st. Companies already served today count nothing, so you can read them again at the ceiling.
A CSV response streams up to 10,000 rows in one go and stops where the budget does, so a single export of a large list can take the whole day. The budget is per account: all users and automations share it.
Browsing on the website: no rows spent
The tables on the website show companies without spending rows. They have their own ceiling instead, of distinct companies a day: 100 on the free plan and 1,000 on a paid one. A company already taken this month browses free. Past the ceiling, a table shows the companies that fit and says how many it held back until midnight, Swiss time.
| Table | Path |
|---|---|
| The signal feed | /app/feed/ |
| The company tables, directory and discover | /app/companies/ |
| Similar companies on a profile | /app/companies/<id>/similar/ |
| A list in the app | /app/lists/<id>/ |
| The Outreach workspace | /app/lists/<id>/outreach/ |
The browse ceiling applies to the website only. Every feed, export, API and MCP read is a take and spends rows from the monthly allowance.
Requests: 10,000 per account per day
- Counted on the API only, and reported in
X-RateLimit-Limit,X-RateLimit-RemainingandX-RateLimit-Reseton every response. Past it, 429rate_limited. - A request body is capped at 1 MiB. Larger is refused before it is parsed.
- One
POST .../prospectscarries at most 100 companies. - A list page is at most 500 rows and a project page at most 200. Ask for more and you get the ceiling.
- Events stay replayable for 30 days. Past that a webhook cannot be replayed, and the state it described is still readable through the feed.
Research units
The expensive thing in the product is research: fetching public pages about a company and reading them. It is metered per company entering research.
- Adding companies and resolving identity consume no research unit. A whole CRM segment can be posted just to find out which rows Prospex can place.
- External qualification jobs consume none either. Their dispatch is bounded by the project's outstanding-job allowance, and resumes with later cycles when that is full.
- A company entering research occupies one place in the cycle budget whether Prospex or your own worker performs it. A corrected submission and an explicit retry of the same input do not occupy another.
- Prospex-executed and externally executed research are counted separately on every cycle.
- One project has at most one queued or running cycle, and the project budget is a ceiling per cycle rather than per month.
Objects
- Built lists per account follow the plan, in the table above. Imported lists do not count.
- Imported lists, projects and API credentials have no per-account cap.
- A webhook endpoint that fails 20 times in a row is switched off, and its own page says why.