Official Python SDK for Orves Parse — turn PDFs into clean, structured Markdown through the Orves API.
Project description
Orves Python SDK
Official Python SDK for Orves Parse — turn PDFs into clean, structured Markdown through the Orves API.
Alpha release. The SDK exposes exactly what the API serves today: Parse (PDF in, Markdown out, with job status and per-page billing metadata). The surface will grow as new capabilities ship — nothing here is a placeholder.
Installation
pip install orves
Quickstart
export ORVES_API_KEY="orves_live_..." # from the Orves dashboard
from orves import Orves
client = Orves()
document = client.parse("report.pdf")
print(document.markdown)
print(document.page_count, document.credits_used)
Explicit control
job = client.parse.submit("report.pdf")
print(job.id, job.status) # prs_..., queued
document = job.wait(timeout=600) # poll until completed/failed
Fetch a job later, from anywhere:
job = client.parses.retrieve("prs_...")
if job.done:
document = job.result()
Async
from orves import AsyncOrves
client = AsyncOrves()
job = await client.parse.submit("report.pdf")
document = await job.wait()
Errors
All API errors derive from OrvesError and carry code, request_id
(citable in support), status_code and retryable:
from orves import Orves, RateLimitError, BillingError, ParseFailedError
try:
document = client.parse("report.pdf")
except RateLimitError as e:
print("daily limit reached, retry after", e.retry_after, "seconds")
except BillingError:
print("workspace has no credits")
except ParseFailedError as e:
print("parse failed:", e.code, e.request_id) # failed jobs are never charged
Retries with exponential backoff and Retry-After support are built in for
transient failures. Submissions carry an automatic Idempotency-Key, so a
retried upload never creates a duplicate job.
Limits (pilot)
- PDF only · max 100 MB per file · max 5000 pages per job
- 100 parses per day per workspace
- Credits are reserved on submit and settled to the actual page count; failed jobs are never charged.
Configuration
| Setting | Default | Override |
|---|---|---|
| API key | ORVES_API_KEY env var |
Orves(api_key=...) |
| Base URL | https://api.orves.ai |
Orves(base_url=...) / ORVES_BASE_URL |
| Timeout | 60 s per request | Orves(timeout=...) |
| Retries | 3 | Orves(max_retries=...) |
The API contract lives at specs/public/openapi.yaml in the Orves repository
and is enforced against the live gateway by automated contract tests.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
File details
Details for the file orves-0.1.0a1.tar.gz.
File metadata
- Download URL: orves-0.1.0a1.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1db8ecc86e52efc051ea5036b506ef44451a9c4443331903a1a4d37cb265559
|
|
| MD5 |
005848bbee774edab3d9640a19b6e415
|
|
| BLAKE2b-256 |
7ba4e437532dddd28de8497cfaa7f43695fa2643353eeea21946ca09a9c12bed
|
Provenance
The following attestation bundles were made for orves-0.1.0a1.tar.gz:
Publisher:
release-pypi.yml on orves-ai/orves
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orves-0.1.0a1.tar.gz -
Subject digest:
f1db8ecc86e52efc051ea5036b506ef44451a9c4443331903a1a4d37cb265559 - Sigstore transparency entry: 2281103817
- Sigstore integration time:
-
Permalink:
orves-ai/orves@90677ae403cb3a01434d22ec655b5df2d20a86af -
Branch / Tag:
refs/tags/sdk-v0.1.0a1 - Owner: https://github.com/orves-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@90677ae403cb3a01434d22ec655b5df2d20a86af -
Trigger Event:
push
-
Statement type:
File details
Details for the file orves-0.1.0a1-py3-none-any.whl.
File metadata
- Download URL: orves-0.1.0a1-py3-none-any.whl
- Upload date:
- Size: 15.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a559b35562c1cd85fea930527d1a9f3389bf97b9e0bcc09d992279791448590c
|
|
| MD5 |
45b7878bdd93612eeb58926ac4ae5b93
|
|
| BLAKE2b-256 |
8cfd0b0e288600e9a65ccfab4fbb5fdaeedd1a43dc64f6baf3e67796d711771c
|
Provenance
The following attestation bundles were made for orves-0.1.0a1-py3-none-any.whl:
Publisher:
release-pypi.yml on orves-ai/orves
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
orves-0.1.0a1-py3-none-any.whl -
Subject digest:
a559b35562c1cd85fea930527d1a9f3389bf97b9e0bcc09d992279791448590c - Sigstore transparency entry: 2281103879
- Sigstore integration time:
-
Permalink:
orves-ai/orves@90677ae403cb3a01434d22ec655b5df2d20a86af -
Branch / Tag:
refs/tags/sdk-v0.1.0a1 - Owner: https://github.com/orves-ai
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@90677ae403cb3a01434d22ec655b5df2d20a86af -
Trigger Event:
push
-
Statement type: