Search
Pricing and billing
One price: €1 per 1,000 tokens in the passages a search returns. No subscription, no per-call fee, and nothing for a search that finds nothing.
The price
| What | Price |
|---|---|
| A search (REST or MCP) | €1 per 1,000 billable tokens in the returned passages |
| A search that returns no passages | Free, and it does not use a free search |
A replay with the same Idempotency-Key | Free |
| Fetching a search's results again within 7 days | Free |
| New organisation | 5 free searches |
The live price list is public: GET /api/v1/pricing needs no key and is what the dashboard itself reads, so it is always the price you are charged.
curl -sS "$TRIVDA_URL/api/v1/pricing"
{
"currency": "EUR",
"per_1k_tokens_eur": 1.0,
"own_data_per_1k_tokens_eur": 1.0,
"own_data_price_decided": false,
"per_source_eur": 0.0,
"credits_per_eur": 1000,
"platform_fee_bps": 3000,
"partner_share_bps": 7000,
"token_unit": "subword:BAAI/bge-m3",
"estimate_tokens_per_hit": 300,
"free_queries_per_org": 5
}
How tokens are counted
- Only the passages returned are counted. Your query text is not.
- Tokens are counted with the same subword tokenizer the search index uses (BGE-M3), passage by passage. That is the unit language-model providers price in, so a token here is close to a token in your model's context window.
token_unitin the price list names the counter. - The total is in
billing.tokensand theX-Tokens-Usedheader of every search. - A passage is usually 200–400 tokens. Five passages of 300 tokens are 1,500 tokens: €1.50.
top_kis the main control on what a search costs.
The wallet and credits
- Each organisation has one wallet, shared by its API keys and everyone in it who searches through the connector.
- The wallet holds credits: 1,000 credits = €1. A search takes
ceil(cost × 1,000)credits, so a priced search is never rounded down to free. - Top up under Settings → Billing by card. Each top-up comes with a VAT-correct invoice; your organisation's billing details are required first.
- Your balance:
GET /api/v1/usage/wallet, orX-Credits-Remainingon any search.
Free searches
Every new organisation gets 5 free searches. While any are left, a search that returns passages uses one instead of credits; billing.free_query_used is true and X-Query-Cost is 0.000000. A search with no results never uses one. Free searches pay no royalty to data partners.
Before a search runs
To stop a search running that the wallet cannot pay for, TRIVDA estimates its cost first: top_k × 300 tokens at the current price. If no free search is left and the wallet holds less than that estimate, the search is refused with 402 and nothing runs or is charged. Lower top_k or top up and retry. The actual charge is for what was returned, which is usually less than the estimate.
Searching your own data
Searches that return your own organisation's passages are priced at the same rate today. A separate price for knowledge-bank use (an organisation searching its own data) is being decided; own_data_price_decided in the price list turns true when it is set. Searching your own data never pays you a royalty.
Where the money goes
When another organisation's paid search returns passages from a partner's dataset, the partner earns 70% of what that search paid, split by each dataset's share of the tokens returned; TRIVDA keeps 30%. See For data partners.
Keeping track
GET /api/v1/usage/summary: spend per dataset and per day, with an end-of-month projection.GET /api/v1/usage/queries: recent searches with tokens and cost.GET /api/v1/usage/ledger: money spent and earned per day.