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):
|
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 tier | AI documents / month |
|---|---|
| Free | 20 |
| Starter | 75 |
| Growth | 200 |
| Enterprise | 2,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.