Python SDK for the 0xPdf PDF-to-JSON API
Project description
oxpdf
Python SDK for the 0xPdf PDF-to-JSON API.
Installation
pip install oxpdf
Quick Start
from oxpdf import Client
client = Client(api_key="your_api_key")
# Parse with a built-in template
result = client.parse("invoice.pdf", schema_template="invoice")
print(result["data"])
# Parse with a custom schema
result = client.parse("doc.pdf", schema={
"type": "object",
"properties": {
"title": {"type": "string"},
"amount": {"type": "number"}
}
})
# Stream parse with real-time progress
for event in client.parse_stream("large.pdf", schema_template="invoice"):
if event["event"] == "page":
print(f"Progress: {event['data'].get('message')}")
elif event["event"] == "complete":
print("Done!", event["data"])
Error Handling
from oxpdf import Client, OxPDFError
client = Client(api_key="your_api_key")
try:
result = client.parse("doc.pdf", schema_template="invoice")
except OxPDFError as e:
print(f"API error: {e} (status: {e.status_code})")
except FileNotFoundError:
print("PDF file not found")
Full API Reference
Client
Client(api_key, base_url="https://api.0xpdf.com/api/v1")
PDF Parsing
| Method | Description |
|---|---|
parse(file_path, *, schema, schema_template, schema_id, use_ocr, ocr_engine, pages) |
Sync parse — returns structured JSON |
parse_stream(file_path, *, schema, schema_template, schema_id, use_ocr, ocr_engine, pages, batch_size) |
Streaming parse via SSE — yields events |
validate(file_path, *, schema_id, schema_name) |
Dry-run validation without processing |
Async Jobs
| Method | Description |
|---|---|
upload(file_path, *, schema_id, schema_name, use_ocr, ocr_engine) |
Queue PDF for background processing |
job_status(job_id) |
Poll async job status |
Image Extraction
| Method | Description |
|---|---|
extract_images(file_path, *, pages, min_width, min_height, use_ocr, ocr_engine) |
Extract images from a PDF |
list_images(*, limit, offset) |
List extracted images |
get_image_url(image_id, *, expiration_seconds) |
Get/refresh presigned URL |
delete_image(image_id) |
Delete a specific image |
delete_all_images() |
Delete all images |
File Management
| Method | Description |
|---|---|
list_files() |
List uploaded PDFs |
get_file(pdf_id) |
Get PDF metadata + download URL |
delete_file(pdf_id) |
Delete an uploaded PDF |
Schema CRUD
| Method | Description |
|---|---|
list_schemas() |
List saved schemas |
get_schema(schema_id) |
Get schema with full definition |
create_schema(name, schema, *, is_default) |
Create a new schema |
update_schema(schema_id, name, schema, *, is_default) |
Update existing schema |
delete_schema(schema_id) |
Delete a schema |
set_default_schema(schema_id) |
Set as default |
generate_schema(description, *, refinement, current_schema, selected_text) |
AI-generate a schema |
Templates
| Method | Description |
|---|---|
list_templates() |
Parse templates (invoice, receipt, etc.) |
list_schema_templates() |
Schema editor templates |
get_schema_template(template_id) |
Get template with full schema |
Analytics & Pricing
| Method | Description |
|---|---|
get_analytics() |
Usage analytics |
submit_feedback(feedback) |
Submit feedback |
get_pricing(*, billing_cycle) |
Get pricing tiers |
get_current_tier() |
Current subscription & quota |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
oxpdf-0.1.0.tar.gz
(7.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
oxpdf-0.1.0-py3-none-any.whl
(7.2 kB
view details)
File details
Details for the file oxpdf-0.1.0.tar.gz.
File metadata
- Download URL: oxpdf-0.1.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0fb74c75c9f6ad4b3873d018f15adad0d89da9fa3922ace55203699c4469ad81
|
|
| MD5 |
8c2a84d291cd984e90479678463558ae
|
|
| BLAKE2b-256 |
d7a87dae2d9ebce4005d6b071b0eed0305a821a1fb7609c0e01907ba3d82f7af
|
File details
Details for the file oxpdf-0.1.0-py3-none-any.whl.
File metadata
- Download URL: oxpdf-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9abc9409630b52697998d28e9db87b9cadb60e24644ab063e8d66cdc4b25d18
|
|
| MD5 |
2640197c97ff9163343268c9ddf5184f
|
|
| BLAKE2b-256 |
bef8fc213807a2808301d2fb80995d38e45a7d6fd898782628f88fde5752997e
|