Search Pricing in 2026: Four Vendors, Four Different Units
Algolia counts requests and records, Typesense counts RAM-hours, Meilisearch will count either, and Elastic switched to VCU-hours. Off the published rates, a $129.60 Typesense box equals Algolia at 269,000 searches a month.
The feature tables for these four have converged. Everyone has typo tolerance, faceting, synonyms and some flavor of vector search. What has not converged is the unit on the invoice, and that is the only thing that decides which one is cheap for you.
Algolia charges per search request and per record. Typesense Cloud charges for a box by the hour and does not count searches at all. Meilisearch Cloud will sell you either shape. Elastic changed its unit since most comparison posts were written. Every number below came off the vendor pricing pages, the Typesense Cloud price calculator and the GitHub API on 22 August 2026.
What each one actually counts
| Metered unit | Entry price | What doubling traffic does | |
|---|---|---|---|
| Algolia | Search requests, plus records stored | Free: 10K requests, 50K records | Doubles that half of the bill |
| Typesense Cloud | RAM and vCPU by the hour, plus egress | $21.60 a month | Nothing, until the box runs out of CPU |
| Meilisearch Cloud | Your choice: documents and searches, or an instance | $23 a month for the XS instance | Depends which shape you picked |
| Elastic Cloud Serverless | VCU-hours, split by ingest, search and ML | Published per unit, not per month | Raises the search VCU line |
Algolia’s plan names have moved since most write-ups were published. The current ladder is Free, Grow, Grow Plus and Elevate. Build and Premium are gone, and the free tier holds 50,000 records rather than the million that older posts quote.
Algolia’s curve, calculated rather than guessed
Grow includes 10,000 search requests a month and then charges $0.50 per additional 1,000. Grow Plus is the same shape at $1.75. Both include 100,000 records and then charge $0.40 per additional 1,000 records per month.
That gives exact answers instead of ranges.
| Searches per month | Grow | Grow Plus |
|---|---|---|
| 200,000 | $95.00 | $332.50 |
| 500,000 | $245.00 | $857.50 |
| 1,000,000 | $495.00 | $1,732.50 |
| 10,000,000 | $4,995.00 | $17,482.50 |
The records meter is the one people forget, because it bills whether anyone searches or not. A 500,000 document index is 400 increments past the allowance, so $160 a month before the first query. A million documents is $360. On a capacity plan those same documents cost whatever RAM they occupy, which for text-only records is usually one step on the size ladder.
The crossover, and what sits on either side of it
Divide a fixed monthly box price by $0.0005 per request and add the included 10,000. That is the traffic at which Algolia Grow stops being the cheap option.
| Capacity plan | Monthly | Equals Algolia Grow at |
|---|---|---|
| Typesense 0.5 GB, 2 vCPU burst | $21.60 | 53,000 searches |
| Meilisearch XS instance | $23.00 | 56,000 searches |
| Typesense 4 GB, burst CPU | $72.00 | 154,000 searches |
| Typesense 4 GB, 2 dedicated vCPU | $129.60 | 269,000 searches |
| Typesense 4 GB, three-node HA | $410.40 | 831,000 searches |
On Grow Plus, divide those search numbers by 3.5. A $129.60 box matches Grow Plus at roughly 84,000 searches a month, which is a small site.
None of this prices the thing Algolia is actually selling above the API, which is the merchandising interface. Rules, curation and result pinning by someone who does not write code is a real organizational feature, and it is the reason plenty of retailers stay on the expensive line knowingly. Meilisearch and Typesense give you ranking rules in config, which is fine for engineers and useless to a merchandiser.
The keystroke problem is only a problem on one side
Search-as-you-type fires a request per keystroke unless you debounce it. A 19-character query without debouncing is up to 19 billable requests for one search intent, and the multiplier lands entirely on the metered plans.
Put the rates on it. A hundred thousand sessions doing one debounced search each is 100,000 requests, which is $45 a month on Grow. The same hundred thousand sessions at six keystroke-requests apiece is 600,000 requests, or $295. Nothing about the product changed.
Two details from Algolia’s own support docs are worth knowing before you estimate. A multi-index search sent through multipleQueries counts as one search request on current plans, though on legacy plans it counted one per index, so old cost models can be wrong in both directions. And the billing page and the analytics page report different totals when search-as-you-type is on, which makes the analytics number a poor basis for a forecast.
Capacity-priced engines do not care how many requests arrive. They care whether the CPU keeps up, and the failure mode is latency rather than an invoice.
Typesense and Meilisearch, at the actual rates
Typesense Cloud sells a cluster: “no limits on records or operations,” priced by RAM and vCPU per hour. In Oregon on version 30.2, single node, no high performance disk:
| Configuration | Per hour | Per month |
|---|---|---|
| 0.5 GB, 2 vCPU with 1 hr burst | $0.03 | $21.60 |
| 1 GB, 2 vCPU with 2 hr burst | $28.80 | |
| 2 GB, 2 vCPU with 4 hr burst | $43.20 | |
| 4 GB, 2 vCPU with 4 hr burst | $72.00 | |
| 4 GB, 2 dedicated vCPU | $0.18 | $129.60 |
| 8 GB, 4 dedicated vCPU | $0.34 | $244.80 |
| 4 GB, 2 dedicated vCPU, three-node HA | $410.40 | |
| 8 GB, 4 vCPU, three-node HA | $799.20 |
Egress is $0.09 per GB after the first 10 GB. The burst configurations are the interesting ones for small sites: full CPU for a limited window each day, at roughly half the price of the dedicated equivalent.
Meilisearch Cloud publishes both shapes on one page. Usage-based starts at $30 a month for 100,000 documents and 50,000 searches. Resource-based starts at $23 for an XS instance with 0.5 vCPU and 1 GB RAM, and the breakdown is worth reading: $18 for the instance and $5 for disk, where the disk line bills 32 GiB against a calculated need of 2.9 GiB. There is a 14 day trial and no permanently free tier.
Elastic changed the unit, so old comparisons read wrong
Elastic Cloud Serverless now bills VCU-hours, split by workload: $0.14 per VCU-hour for ingest, $0.09 for search, $0.07 for machine learning, plus $0.047 per GB retained per month and $0.05 per GB of egress. Comparisons quoting cents per GB ingested are describing a meter that no longer runs.
Elastic Cloud Hosted is the other case, and I am leaving its column empty on purpose. The pricing page compares tiers and support SLAs without putting a monthly figure next to a cluster size, which means any number in a comparison table came from a calculator run at one shape and does not transfer to yours. That is worth knowing as a fact about the vendor rather than a gap in the table.
Elasticsearch is still the right answer for log-shaped workloads with retention tiers, aggregations beyond faceting, and the very practical case where a cluster already exists and one more index is nearly free. For product search alone it is a large amount of machinery.
The line that moved, and nobody redrew it
Two durable facts you can check yourself with the GitHub API, and both have changed since the older comparisons.
Meilisearch is no longer plain MIT. The repository declares SPDX-License-Identifier: MIT AND BUSL-1.1, and the Enterprise Edition parts sit under a Business Source License with a four year change date and non-production use only. The feature behind that line is sharding and replication, which is exactly the feature you want when self-hosting stops being one container. Typesense is GPL-3.0, and its Raft based high availability is in the open source build, with a three node minimum to tolerate one failure. Elasticsearch is a triple license: AGPLv3, SSPL v1, or Elastic License 2.0.
So the self-hosted high availability story splits on license, not on capability: free on Typesense, a commercial agreement on Meilisearch.
Release cadence splits too, and it tells you how often you will be doing upgrades. Over the twelve months to 22 August 2026, Meilisearch shipped 64 releases and Elasticsearch 59. Typesense shipped 4, with 30.2 in April and release candidates for 31.0 in flight since. The repository is active either way. It is a difference in how the work reaches you, not a verdict.
Before any of this: do you need it
Postgres full text search with tsvector and a GIN index handles a few hundred thousand documents without complaint, costs nothing, and stays inside your transactions so the index cannot drift from the data. Three things push past it: typo tolerance that goes beyond bolting pg_trgm onto ranked search, faceted filtering with live counts, and sub-100ms responses on a large catalog with filters and sorting. If none of those describe your app, add the index and close the tab.
And if you are moving off Algolia because of the bill, the index mapping is the easy half. Ranking is not. Algolia applies tie-breaking criteria in a fixed order that shaped your results through defaults you never set, and neither Meilisearch’s rule chain nor Typesense’s weighted sort_by reproduces it. Pull your top few hundred queries from analytics, run them against both engines, and diff the first ten results before you cut over. The queries where the new engine is worse are a short list, and finding it after launch costs more than the migration saved.