ParsePrime API Documentation
Extract tables from PDFs and images into structured CSV data.
https://api.parseprime.com
Introduction
The ParsePrime API lets you extract tables from PDF documents and images (PNG, JPG, WEBP) into downloadable CSV files. Upload a file, poll for results, and download your structured data.
Credits System
ParsePrime uses a credit-based system. Each page costs 6 credits. New accounts receive 20 free credits on signup. Purchase additional credit packages when needed.
Rate Limiting
Most endpoints are rate-limited. When exceeded, you'll receive a 429 response with {"error": "Too many requests. Please try again later."}
Authentication
Most endpoints require a JWT Bearer token. Include it in the Authorization header:
Authorization: Bearer eyJhbGciOi...
Obtain tokens via the Login endpoint. Refresh expired tokens via Refresh Token. API keys can also be used for programmatic access (requires credits).
Data Handling & Privacy
ParsePrime processes data in accordance with the EU General Data Protection Regulation (GDPR). The data controller is TAGonSoft SRL, Iași, Romania.
File Processing & Retention
- Uploaded files are processed in isolated environments and automatically deleted after processing completes.
- Download links are signed and expire after 1 hour.
- All files are permanently removed from servers within 24 hours.
- We do not use uploaded files for training, analytics, or any purpose other than providing the extraction service.
Account Data
- Account data (email, API keys) is retained while your account is active.
- You may request deletion of your account and all associated data at any time by contacting [email protected].
Sub-processors
- Stripe (stripe.com) — Payment processing (USA/EU)
- Google Cloud — File processing infrastructure
Your Rights (GDPR)
You have the right to access, correct, delete, restrict, or port your personal data. To exercise these rights, contact [email protected]. We respond within 30 days.
For the full privacy policy, visit parseprime.com/privacy.html.
Security
- TLS encryption for all data in transit
- Signed, time-limited download URLs
- API key authentication with rate limiting
- Isolated file processing environments
Auth
Creates a new user account and initializes a credit balance with 20 free signup credits.
{
"email": "[email protected]",
"password": "securepass123"
}
| Field | Type | Description |
|---|---|---|
| string required | Valid email address | |
| password | string required | Minimum 8 characters |
{
"message": "Account created successfully.",
"user": {
"email": "[email protected]"
},
"token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token": "abc123def456...",
"expires_in": 3600
}
- 400 Registration failed. Please check your input.
- 409 An account with this email already exists.
- 429 Too many requests.
curl -X POST https://api.parseprime.com/api/register \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"securepass123"}'
{
"email": "[email protected]",
"password": "securepass123"
}
{
"token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token": "abc123def456...",
"expires_in": 3600
}
- 401 Invalid credentials.
- 429 Too many requests.
curl -X POST https://api.parseprime.com/api/login \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"securepass123"}'
Refresh tokens are single-use. The old token is revoked and a new pair is issued.
{
"refresh_token": "abc123def456..."
}
{
"token": "eyJhbGciOiJSUzI1NiIs...",
"refresh_token": "new_refresh_token...",
"expires_in": 3600
}
- 401 Invalid or expired refresh token.
curl -X POST https://api.parseprime.com/api/token/refresh \
-H "Content-Type: application/json" \
-d '{"refresh_token":"abc123def456..."}'
{
"refresh_token": "abc123def456..."
}
{
"message": "Logged out successfully."
}
curl -X POST https://api.parseprime.com/api/logout \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"refresh_token":"abc123def456..."}'
Extraction
Upload a single file as file or multiple files as files[] (max 10, requires credits). Accepted formats: PDF, PNG, JPG, WEBP. File content is validated against magic bytes. Credits are checked before processing: each page costs 6 credits.
| Field | Type | Description |
|---|---|---|
| file | file | Single file upload |
| files[] | file[] | Batch upload (max 10, requires credits) |
{
"job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "pending",
"total_files": 1,
"poll_url": "/api/extract/a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
- 400 No file uploaded / Unsupported file type / File content does not match declared type / Max 10 files per batch
- 403 Batch upload requires credits / Not enough credits
- 429 Too many requests.
curl -X POST https://api.parseprime.com/api/extract \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "[email protected]"
curl -X POST https://api.parseprime.com/api/extract \ -H "Authorization: Bearer YOUR_TOKEN" \ -F "files[][email protected]" \ -F "files[][email protected]"
Returns the current status of an extraction job. You can only access your own jobs.
| Parameter | Type | Description |
|---|---|---|
| jobId | string (UUID) required | The job ID from the extract response |
{
"job_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "done",
"total_files": 1,
"completed_files": 1,
"results": [
{
"file": "document.pdf",
"status": "completed",
"tables_found": 2,
"downloads": [
{
"table_id": "uuid",
"table_name": "Table 1",
"download_url": "/api/download/uuid?sig=...&exp=..."
}
],
"error": null
}
]
}
| Status | Description |
|---|---|
pending | Job created, waiting to be processed |
processing | Currently extracting tables |
done | All files processed successfully |
failed | Processing failed |
- 400 Invalid job ID.
- 404 Job not found.
curl https://api.parseprime.com/api/extract/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \ -H "Authorization: Bearer YOUR_TOKEN"
Download links are signed and time-limited. Use the URLs from the job results directly.
| Parameter | Type | Description |
|---|---|---|
| uuid | string (UUID) required | File identifier |
| sig | string (query) required | HMAC signature |
| exp | integer (query) required | Expiration timestamp |
Binary CSV file with Content-Disposition: attachment and Content-Type: text/csv
- 400 Invalid download link.
- 403 Invalid signature.
- 404 File not found or has been cleaned up.