Plan entitlements
Solo is the display name of the starter tier — accounts.plan_tier and the API still
say starter.
Active searches is the fan-out fuse, not the axis you shop on: one keyword claims one
slot per search per enabled Source (searchSlots in the estimate), and
the cap sits well above what a plan’s keywords produce in normal use. You meet the keyword
cap first.
Credit packs top up your balance but never change the limits above — those move only with
the plan.
Terms per search
A search carries either a singlequery or a list of terms, never both. A term list is
OR’d into one upstream request, so a brand plus its variants costs one poll and one
tick — the same as a single term. Your plan caps the list length.
terms is accepted only on the Sources whose own search supports boolean OR, measured
live rather than read off their docs:
Sending
terms to one of the last three answers 400 VALIDATION naming the Source. It
is never split into several searches behind your back: that would be a surprise invoice.
Plan features
Beyond the four figures above, a plan also unlocks a short list of dashboard features — capabilities a tier has or does not have, rather than has more of:
These gate the dashboard only. Nothing on
/v1 is ever gated by plan features — every
plan reaches the full pull surface, metered by credits and bounded by the request quota
above. A plan change never makes an API call that used to work start failing.
Request quota
/v1/* is limited per Account (not per API key) in a rolling 60-second window, at the
requests-per-minute figure for your plan. Exceeding it returns 429 with
code: "TOO_MANY_REQUESTS"; see Errors — Rate limits for the
envelope and the RateLimit-* / Retry-After headers.
Because the quota is per Account, extra API keys do not buy extra throughput.
Interval and slot limits
Polling limits are enforced at two levels, and the stricter one wins.Minimum interval
refreshIntervalSeconds: 15 is rejected with 400 VALIDATION even though the
Source itself allows it.
AI answers floors at 6 h on every plan — the Source floor wins, and a run
there is a paid prompt rather than a feed fetch.
The maximum is 86400s (24 h) on every plan and Source, except AI answers,
which allows up to 604800s (7 days) for the same reason.
A slow interval trades coverage for cost: each tick reads one page of the Source, so a
busy term polled daily reports what fits in that page and misses whatever scrolled past
it in between. Pick the slow end for terms that are quiet, not for terms that are noisy.
Active search cap
Creating or editing a keyword checks the plan’s cap on active searches account-wide across all Sources.POST /v1/keywords/estimate answers how many slots a body would
take (searchSlots.requested) against what is in use and the plan’s limit, before you
write anything.
Each Source also has its own ceiling on active searches per Account, whatever the plan:
50 on Vinted, 10 on AI answers and TikTok, 20 on every other Source. Three
Reddit searches count as three, whichever keywords they sit in. A write that would cross
a ceiling is refused with 400 VALIDATION naming the Source.
Downgrades pause what no longer fits
Moving to a lower plan does not delete anything. Polling that now breaks the new entitlements (faster than the new minimum, or beyond the new cap) is paused withpausedReason: plan_entitlement. The oldest are kept first; the newest are
paused.
Nothing resumes automatically. After upgrading again, call
POST /v1/keywords/{id}/resume. Resume re-checks the cap and interval, and names what
could not follow in blockedSources.
A Source paused by support (
admin_paused) cannot be resumed with the API: a keyword
resume leaves it stopped and names it in blockedSources.