DATPAQ PDF Toolkit API
Merge, split, extract, rotate, watermark, compress, encrypt, and inspect PDFs
Merge, split, extract, rotate, watermark, compress, encrypt, and inspect PDFs
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/datpaq-com:datpaq-com-pdf-toolkit-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Datpaq Com PDF Toolkit API
version: 1.1.0
contact:
name: Datpaq Support
url: https://datpaq.com
license:
name: Proprietary
description: 'Operations tagged PDF Toolkit across 2 of this provider''s published API definitions: datpaq-com.yaml, datpaq-com-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://datpaq.com/api/v1
description: Production
- url: https://staging.datpaq.com/api/v1
description: Staging
security:
- ApiKeyHeader: []
- ApiKeyQuery: []
tags:
- name: PDF Toolkit
description: Merge, split, extract, rotate, watermark, compress, encrypt, and inspect PDFs
paths:
/pdf-toolkit:
get:
tags:
- PDF Toolkit
operationId: pdfToolkitCatalog
summary: List supported operations and limits
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccess'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
default:
$ref: '#/components/responses/ServiceUnavailable'
post:
tags:
- PDF Toolkit
operationId: pdfToolkitRun
summary: Run a PDF operation on local files
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- operation
properties:
operation:
type: string
description: merge, split, extract, rotate, watermark, compress, encrypt, or inspect
file:
type: string
description: Local PDF for non-merge operations
files:
type: array
description: Comma-separated local PDFs for merge (2-20)
items: {}
pages:
type: string
description: 'Pages: all or ascending ranges'
angle:
type: number
description: 'Rotate: multiple of 90; watermark: any angle'
text:
type: string
description: Watermark text (1-200 characters)
opacity:
type: number
description: Watermark opacity 0-1 (default 0.6)
color:
type: string
description: Watermark RGB as three numbers 0-1
fontSize:
type: number
description: Watermark font size (8-300)
password:
type: string
description: 'Encrypt: user password (8+ characters)'
owner_password:
type: string
description: 'Encrypt: owner password'
example:
operation: inspect
file: <base64-pdf>
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/GenericSuccess'
example:
success: true
operation: inspect
result:
size: 4821
pages: 1
pdfVersion: '1.4'
encrypted: false
correlationId: req_abc123
metadata: {}
updatedAt: '2026-09-13T12:00:00.000Z'
processingTime: 42ms
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
default:
$ref: '#/components/responses/ServiceUnavailable'
servers:
- url: https://datpaq.com/api/v1
description: Production
- url: https://staging.datpaq.com/api/v1
description: Staging
components:
schemas:
ErrorResponse:
type: object
properties:
error:
type: string
description: Human-readable error message
example: Invalid API key
correlationId:
type: string
description: Request tracking identifier for support
example: abc123-def456-789ghi
service:
type: string
description: Service name that produced the error
example: ip-geolocation
GenericSuccess:
type: object
description: Standard success envelope. The data property structure varies by endpoint.
properties:
correlationId:
type: string
description: Request tracking identifier
example: abc123-def456
data:
type: object
description: Response payload (structure varies by endpoint)
cached:
type: boolean
description: Whether the response was served from cache
example: false
responses:
BadRequest:
description: Bad request — missing or invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
RateLimited:
description: Rate limit exceeded — retry after the indicated period
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
ServiceUnavailable:
description: Service temporarily unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized — missing or invalid API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
securitySchemes:
ApiKeyHeader:
type: apiKey
in: header
name: x-api-key
description: API key passed via x-api-key request header
ApiKeyQuery:
type: apiKey
in: query
name: api_key
description: API key passed as api_key query parameter
x-refined-from:
- datpaq-com.yaml
- datpaq-com-openapi.yaml