# Limits and plans

> What each plan includes and costs, its rates and quotas, and the limits on documents, writes, queries and imports.

There are two plans. **Free** has hard limits: past what's included a request is refused with a 402, never billed. **Pro** is pay as you go, with a $10 monthly minimum that your usage counts against: you pay the larger of $10 and your usage. Current prices are on [skimmerdb.com/pricing](https://skimmerdb.com/pricing), and `GET /v1/usage` shows this period's usage and bill.

## Plans

| | Free | Pro |
|---|---|---|
| Price | $0 | $10 a month minimum; usage counts against it |
| Storage (as stored) | 1 GB-month | $0.10 per GB-month |
| Written | 1 GB, 100,000 documents | $0.25 per GB |
| Queries (searches, counts, reads, warms, SQL) | 100,000 | $0.50 per million |
| Object-store reads by queries (cold queries) | 1 million a month | $0.50 per million |
| Query CPU (`cpu_ms` in each answer) | 1 hour a month | Metered, not billed |
| Hosted embedding (`"provider": "skimmerdb"`) | 5 million tokens a month | $0.02 per million tokens (Voyage's price, no margin) |
| Embedding with your own provider key | not counted | not billed by SkimmerDB (the provider bills you) |
| Bytes of answers sent back | 10 GB a month | Metered, not billed |
| Past what's included | Refused (402) | Billed |
| Storage quota | 1 GB | 10 TB |
| Namespaces | 1,000 (and 1,000 made a day, per server) | Unlimited |

> **Note** Until an owner of a free tenant verifies their email, the tenant has 1% of every free-plan allowance: 1,000 queries, 1,000 documents written, 0.01 GB-month of storage (about 10 MB kept for a month), 10 namespaces, and 1% of the CPU, cold reads and answer bytes. Past that, requests answer 402 `email_unverified`. Signup's key works at once.

## Rates and concurrency

| | Free | Pro |
|---|---|---|
| Requests a second, per tenant | 100 | 1,000 |
| Requests in flight, per tenant | 16 | 64 |
| Time limit of a search, count or vector query | 10 s | 30 s |
| Time limit of a SQL query | 10 s | 30 s |
| SQL queries running at once, per tenant | 2 | 8 |

- Past a rate or concurrency limit, a request waits briefly for a slot, then answers 429 with `Retry-After`. Answers carry `RateLimit-*` headers: see [Errors](/reference/errors#rate-limit-headers).
- A key can have its own, tighter limits: requests a second (`rate_per_s`) and queries or writes a billing period (`cap_queries`, `cap_writes`). See [Keys, scopes and tenants](/guides/keys).
- **Limits are per server.** A deployment of several servers admits up to that many times a tenant's rate and concurrency; key caps and the storage quota may overshoot by what other servers admitted in the last few seconds.
- Past a search's time limit, it answers what it found with `"partial": true` and `"timed_out": true`; a count or SQL query fails with 422 `query_timeout`.

## Documents and writes

| Limit | Value |
|---|---|
| Namespace name | 1 to 64 of `a-z 0-9 - _ .` |
| Document id | Up to 512 bytes, one line (slashes allowed) |
| Document text | 2 MB |
| Metadata (`meta`) | 16 KB of JSON, an object |
| Metadata keys that are SQL columns | The 256 most frequent |
| Documents and deletes a write | 1 to 10,000 |
| Body of a write | 64 MB |
| Vector dimensions | 1 to 2,048, fixed when the namespace is made |
| Import | 2 GB and 1,000,000 rows a request |

## Queries

| Limit | Value |
|---|---|
| Results a search or vector query | `limit` up to 1,000 (default 20 for search, 10 for vectors) |
| Namespaces a listing | `limit` up to 1,000 a page, default 100 (`next` for the rest) |
| Text predicates a SQL query | 8 |
| Rows a SQL answer | 10,000 (`truncated: true` past it) |
| A regex the index can't narrow | Refused past 100,000 documents or about 100 MB, unless `"scan": true` |

Queries on a namespace also stop at a budget of object-storage reads; past it the answer is partial, never wrong. See [Performance and cost](/guides/performance).
