Processing Limits & Bring Your Own Keys

Document processing runs on shared platform accounts by default. Those accounts have real limits — listed honestly below. Bringing your own provider key removes the shared limits and puts the processing on your own account and bill.

OCR (text extraction)

Engine On the platform key With your own key
Azure Document Intelligence
default engine
The platform runs Azure's free tier (F0):
  • Only the first 2 pages of each document are read — longer documents are silently truncated.
  • 500 pages per month, shared across all platform-key clients.
A paid Azure DI key (S0) removes the 2-page truncation and the monthly cap; you pay Azure per page. Store it under provider key azure-di (endpoint URL + key).
Google Cloud Vision
alternative engine
No platform key is configured by default. When one is present, Google's free allowance is ~1,000 pages per month — with no per-document page truncation (multi-page PDFs are read in full, one unit per page). Your Vision API key processes on your Google account (~1,000 pages/month free, then ≈ $1.50 per 1,000 pages). Store it under provider key google-vision. Once an active key is stored, your documents automatically route to Google Vision.

AI processing (LLM)

Extraction, classification, and enrichment run on the platform's LLM account by default. Platform-key usage is metered per client as AI documents per calendar month, by license tier:

License tierAI documents / month
Free20
Starter75
Growth200
Enterprise2,000

Over-quota uploads are declined with a clear message until the next month — nothing is silently dropped. Clients using their own LLM key are not metered at all: you carry the provider cost on your own account, so the platform quota does not apply.

Accepted LLM providers: openai (any OpenAI-compatible endpoint, including OpenRouter or xAI Grok via their base URLs), anthropic, and azure-openai. Per-request token limits are those of the model you choose.

How to bring your own key

Keys are stored per client, encrypted at rest, and only ever displayed masked. A user with the ClientAdmin role sets them in the app under Providers (the setup wizard, with per-provider connection tests) — or directly through the credentials API:

PUT /api/provider-credentials/{provider}
Content-Type: application/json
Authorization: (your signed-in session)

{
  "apiKey":  "sk-…",                              // required
  "baseUrl": "https://openrouter.ai/api/v1",      // optional — endpoint override
  "modelId": "anthropic/claude-sonnet-4.5",       // optional — default model
  "isActive": true
}

Providers: azure-di, google-vision (OCR) · openai, anthropic, azure-openai (LLM) · brave (web enrichment). GET /api/provider-credentials lists yours, masked. Deactivate a key ("isActive": false) to fall back to the platform engine and its limits.

Figures on this page reflect provider free-tier terms and Entwine license tiers as of August 2026; provider pricing is set by the provider and may change.