> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.talqora.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.talqora.com/_mcp/server.

# Plans and billing

> Understand plan limits, monthly usage, Polar checkout, cancellation, and renewal.

Talqora starts every organization on Developer without creating a payment-provider subscription. A Polar subscription exists only after an owner chooses Scale and completes checkout.

| Plan       |       Price | Indexes | Documents | Storage | Monthly writes | Monthly queries | Multimodal credits | Active processing jobs | Members |
| ---------- | ----------: | ------: | --------: | ------: | -------------: | --------------: | -----------------: | ---------------------: | ------: |
| Developer  |        Free |       3 |      100K |    1 GB |           500K |             30K |                125 |                    200 |       1 |
| Scale      | \$500/month |     100 |      100M |    1 TB |           100M |             50M |             10,000 |                 10,000 |      50 |
| Enterprise |    Contract |  Custom |    Custom |  Custom |         Custom |          Custom |         Contracted |             Contracted |  Custom |

Limits are enforced by the API. Requests that would exceed an entitlement return `402` with an upgrade-safe error. Writes and queries reset on the first day of each UTC month. Stored documents and bytes are current-state limits and decrease when data is deleted.

## Multimodal credits

Multimodal credits are one organization-wide monthly allowance for the model-backed parts of File Processing. The dashboard exposes the single `Multimodal credits` field through `GET /v1/organization/usage`; it combines OCR and audio rather than giving each file type a separate pool.

* One credit is reserved for each image or rendered document page that requires OCR.
* One credit is reserved for each started minute of audio transcription. A 61-second recording uses two credits.
* Text-native PDFs, Office documents, CSV, JSON, Markdown, and plain text use no multimodal credits.
* Credits are reserved atomically by the serverless processor immediately before the model request. Browser values are informational only.

If an allowance is exhausted, the affected file job reaches the terminal `failed` state with `error_code: "multimodal_credit_limit_reached"`. Talqora does not send the image, page, or audio source to the model for that rejected operation, does not retry it, and emits the normal `file.processing.failed` webhook. The monthly counter resets at the start of the next UTC billing month; deleting a source does not reverse credits already reserved for processing.

## Serverless Processing capacity

An **active processing job** is an uploaded file, connector source, or public-web crawl that is in `uploading`, `queued`, or `processing`. The active-job limit is a concurrency and backlog safety limit, not a monthly allowance. A job stops consuming an active slot when it reaches a terminal lifecycle state such as `completed`, `failed`, `deleted`, or `superseded`.

This distinction matters for imports. A Developer organization can have up to 200 sources in flight at once; Scale can have 10,000. A completed job can still contribute documents, storage, and rows written to the index. Removing the source later decreases current document and storage usage, but monthly write usage remains historical for the billing period.

| Operation                                             | Counts toward active processing jobs?        | Counts toward documents/storage?                              | Counts toward monthly writes?                                         |
| ----------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------------- | --------------------------------------------------------------------- |
| Create file job, before upload                        | Yes, while `uploading`                       | No                                                            | No                                                                    |
| Queued or processing file, connector record, or crawl | Yes                                          | Not until retrieval records are written                       | Not until records are accepted                                        |
| Completed source                                      | No                                           | Yes, for live retrieval records                               | Yes, for accepted record writes                                       |
| Failed source                                         | No                                           | No for unwritten records                                      | Only for work that was successfully written before a terminal failure |
| Replace source                                        | The replacement occupies its own active slot | Both versions may exist briefly until replacement is accepted | Replacement writes count when accepted                                |
| Delete source                                         | No after deletion                            | Removes live records and storage                              | Does not reverse historical monthly writes                            |

The API checks capacity before creating a file or crawl job. Connector syncs use the same durable job system, so a large initial mailbox or Drive import must remain under the plan's active-job capacity as it creates source work. If the limit is reached, wait for jobs to reach a terminal state, reduce the import fan-out, or upgrade before submitting more work. Do not create duplicate jobs to bypass capacity: that produces duplicate source lifecycle state and makes auditing harder.

For large imports, submit bounded batches and poll job status. Start with a small scope, validate extraction and retrieval quality, then increase concurrency. The console's Processing tab reports each job's task count and vectors written; `GET /v1/organization/usage` exposes current active processing capacity for automation.

## Beta capabilities

Assistant RAG and Connectors are **Beta capabilities on Scale and Enterprise**. Developer organizations keep the same console surfaces so teams can evaluate the workflow, but creating an assistant, starting a connector authorization session, or creating a shareable connector link returns `402` until the organization upgrades. Scale includes custom onboarding and 1:1 support.

Developer is intentionally single-member. Scale supports fifty members total, including the owner. The API enforces these limits when an invitation is created; the console's remaining-capacity indicators are informational only.

## Request rate limits

Monthly usage limits and request rate limits are separate. The monthly limit controls total consumption during a billing period. The rate limit controls short bursts during a rolling 60-second window.

| Plan       |       Control plane | Vector writes and deletes |      Vector queries |
| ---------- | ------------------: | ------------------------: | ------------------: |
| Developer  |    120 requests/min |           30 requests/min |     60 requests/min |
| Scale      |  3,000 requests/min |        1,500 requests/min |  3,000 requests/min |
| Enterprise | 20,000 requests/min |       10,000 requests/min | 20,000 requests/min |

Limits are aggregated across the organization. Creating additional API keys does not create additional capacity. Writes and deletes share one bucket, while queries and authenticated control-plane operations use independent buckets. An Enterprise contract can raise these limits for a documented workload.

Paid checkout is owner-only. Existing paid subscriptions change products with Polar proration; new paid subscriptions use a hosted checkout. Cancellation is scheduled for the current period end, so access continues until `current_period_end`. Reactivation before that timestamp removes the scheduled cancellation without charging a second time.

Polar webhooks are signature-verified and idempotent. Subscription activation, product changes, cancellation state, renewal dates, and revocation update the organization entitlement. Revocation returns the organization to Developer.