API Key Format
DocIntell uses two types of API keys:| Key Type | Prefix | Purpose |
|---|---|---|
| Live | dk_live_ | Production usage, billable |
| Test | dk_test_ | Development and testing, free |
Using Your API Key
Include your API key in theAuthorization header of every request:
Obtaining API Keys
Via Dashboard
- Log in to app.docintell.com
- Navigate to Settings → API Keys
- Click Create API Key
- Choose:
- Name: A descriptive name (e.g., “Production Server”, “CI/CD Pipeline”)
- Environment: Live or Test
- Click Create
Via API
You can also create API keys programmatically:The
key field contains the full API key and is only included in the creation response.
Subsequent API calls will only show the masked key_prefix.Best Practices
Store Keys Securely
Environment Variables
Store keys in environment variables, never in code.
Secret Managers
Use AWS Secrets Manager, GCP Secret Manager, or HashiCorp Vault for production.
Use Separate Keys per Environment
| Environment | Key Type | Purpose |
|---|---|---|
| Development | dk_test_ | Local development, no billing |
| Staging | dk_test_ | Integration testing |
| Production | dk_live_ | Customer-facing workloads |
Rotate Keys Regularly
- Create a new API key
- Update your applications to use the new key
- Monitor for any requests using the old key
- Delete the old key once migration is complete
Listing API Keys
View all API keys for your tenant:For security, the full API key is never shown after creation. Only the prefix is displayed.
Error Responses
Missing API Key
401 Unauthorized
Invalid API Key
401 Unauthorized
Malformed Authorization Header
401 Unauthorized
Tenant Isolation
Each API key is associated with a tenant. All resources (documents, jobs, webhooks) are scoped to your tenant and isolated from other customers. DocIntell uses Row-Level Security (RLS) at the database level to enforce strict tenant isolation. Even if a bug exists in the application logic, the database prevents cross-tenant data access.Rate Limits
API keys are subject to per-tenant rate limits:| Operation | Limit | Window |
|---|---|---|
| Document Ingestion | 100 documents | 1 hour |
| Job Status Checks | 1,000 requests | 1 hour |
Public Endpoints
The following endpoints do not require authentication:| Endpoint | Purpose |
|---|---|
GET / | API info and version |
GET /health | Health check |
GET /healthz | Kubernetes-style health check |