Loading...
Loading...
Process PDFs programmatically. Compress, convert, extract text, and more with a simple REST API. Built for developers who need reliable document processing at scale.
curl -X POST https://api.pdfscanpro.com/v1/pdf/compress \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@document.pdf" \
-o compressed.pdfStart processing PDFs in under 5 minutes.
Create a free account and generate your API key from the dashboard. Your key starts with psp_.
Include your API key as a Bearer token in the Authorization header of every request.
Authorization: Bearer psp_your_key_hereSend files to our endpoints and get results back. All endpoints use multipart/form-data.
Base URL
https://api.pdfscanpro.com/v1
Four powerful endpoints to handle any PDF processing task.
Reduce PDF file size while maintaining quality. Returns the compressed PDF as a binary blob.
multipart/form-data with file field
Compressed PDF blob (application/pdf)
| Name | Type | Required | Description |
|---|---|---|---|
file | file | Required | The PDF file to compress (max size depends on plan) |
quality | string | Optional | Compression quality: "low", "medium", "high". Default: "medium" |
curl -X POST https://api.pdfscanpro.com/v1/pdf/compress \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@document.pdf" \
-F "quality=medium" \
-o compressed.pdfSimple, transparent pricing. Scale as you grow.
Get started with basic API access.
Rate limits are applied per API key and reset every minute.
| Plan | Requests / Minute | Requests / Month | Max File Size |
|---|---|---|---|
| Free | 60 | 100 | 10 MB |
| Pro | 300 | 10,000 | 100 MB |
| Enterprise | Custom | Unlimited | No limit |
Rate limit headers
Every response includes rate limit information in headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. When you receive a 429 response, use the Retry-After header to determine when to retry.
All errors return a consistent JSON body with error and message fields.
{
"error": "rate_limit_exceeded",
"message": "You have exceeded the rate limit. Please retry after 42 seconds.",
"status": 429
}| Status | Error | Description |
|---|---|---|
| 400 | Bad Request | Missing required fields, unsupported file format, or invalid parameters. |
| 401 | Unauthorized | Missing or invalid API key. Check your Authorization header. |
| 403 | Forbidden | Your plan does not include access to this endpoint, or your account is suspended. |
| 404 | Not Found | The requested endpoint does not exist. Check the URL path. |
| 413 | Payload Too Large | File exceeds the maximum size for your plan. |
| 422 | Unprocessable Entity | The file is corrupted, password-protected, or cannot be processed. |
| 429 | Too Many Requests | Rate limit exceeded. Check Retry-After header for reset time. |
| 500 | Internal Server Error | An unexpected error occurred. Retry with exponential backoff. |
| 503 | Service Unavailable | The service is temporarily down for maintenance. Retry later. |