Loading…
We use cookies to improve your experience and analyze site traffic. See our Privacy Policy for details.
Every API request to ParseFlow requires authentication via an API key. This guide covers how to create, use, rotate, and secure your keys.
You can also create API keys programmatically via the POST /api/auth/register endpoint.
Include your key in every request using one of these methods:
curl -X POST https://parseflow.dev/api/v1/extract \ -H "X-API-Key: dm_live_your_api_key_here" \ -F "file=@invoice.pdf"
curl -X POST https://parseflow.dev/api/v1/extract \ -H "Authorization: Bearer dm_live_your_api_key_here" \ -F "file=@invoice.pdf"
import requests
response = requests.post(
"https://parseflow.dev/api/v1/extract",
headers={"X-API-Key": "dm_live_your_api_key_here"},
files={"file": open("invoice.pdf", "rb")},
data={"document_type": "invoice"}
)
print(response.json())const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
const form = new FormData();
form.append('file', fs.createReadStream('invoice.pdf'));
form.append('document_type', 'invoice');
const response = await axios.post(
'https://parseflow.dev/api/v1/extract',
form,
{
headers: {
'X-API-Key': 'dm_live_your_api_key_here',
...form.getHeaders()
}
}
);
console.log(response.data);req, _ := http.NewRequest("POST",
"https://parseflow.dev/api/v1/extract", body)
req.Header.Set("X-API-Key", "dm_live_your_api_key_here")
req.Header.Set("Content-Type", writer.FormDataContentType())
resp, _ := http.DefaultClient.Do(req)All ParseFlow API keys follow a consistent format:
| Prefix | Environment | Example |
|---|---|---|
| dm_live_ | Production | dm_live_a1b2c3d4e5f6... |
| dm_test_ | Testing (coming soon) | dm_test_a1b2c3d4e5f6... |
Keys are 56 characters long: 8-character prefix + 48 random hex characters.
To rotate a key without downtime:
Both keys will work simultaneously during the transition, so there is no downtime.
| Plan | Requests/min | Documents/month | Max File Size |
|---|---|---|---|
| Free | 60 | 100 | 5 MB |
| Starter | 60 | 1,000 | 20 MB |
| Pro | 60 | 10,000 | 50 MB |
| Enterprise | 120 | 100,000 | 100 MB |
Authentication-related errors:
| Status | Code | Description |
|---|---|---|
| 401 | AUTH_MISSING | No API key provided. Include X-API-Key or Authorization header. |
| 401 | AUTH_INVALID | API key is invalid, expired, or has been revoked. |
| 429 | RATE_LIMITED | Too many requests per minute. Check the Retry-After header. |
| 429 | QUOTA_EXCEEDED | Monthly document limit reached. Upgrade your plan. |
{
"error": "Missing API key. Include X-API-Key header.",
"code": "AUTH_MISSING"
}