What developer tools does Papra offer for integration?
Updated
Papra provides four developer-facing integration options: a REST API, webhooks, a CLI, and an SDK. Together they let you upload, tag, and manage documents programmatically instead of through the web interface. This is the right fit if you need to archive documents in bulk, connect Papra to an existing automation pipeline, or trigger actions in other systems when documents arrive. If you only archive a few files by hand, the standard web app and email ingestion are simpler.
API: upload and manage documents over HTTP
The API is the core building block. Papra's site shows a document upload call that sends a file as multipart form data with a bearer token for authentication:
curl -X POST https://api.papra.ai/v1/documents \
-H "Authorization: Bearer $PAPRA_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "file=@/path/to/your/file.pdf"
What each part does:
- Input: a file on disk (
file=@...) and an API key stored in thePAPRA_API_KEYenvironment variable. - Action: an authenticated POST to the documents endpoint.
- Expected result: the file is added to your Papra documents, where it can then be organized with tags and found through search.
You will need to generate an API key from your Papra account before this call works; the site does not document key creation steps, so check the Docs section for the current procedure.
Where the API fits
- Bulk archiving: loop over a folder of PDFs and POST each one, rather than dragging files into the browser.
- Pipeline output: have a script that generates invoices or reports send the finished file straight to Papra.
- Custom tooling: build your own intake form or internal dashboard that writes into Papra.
Webhooks: react when documents arrive
Webhooks reverse the direction of the API. Instead of your system calling Papra, Papra notifies your system when an event occurs, such as a new document being added. That makes it possible to chain Papra into a larger workflow — for example, notifying a team channel or kicking off a downstream process when a contract is archived. The site lists webhooks as a supported integration but does not publish event names or payload formats, so confirm those in the Docs before designing around them.
CLI and SDK: script without raw HTTP
The CLI lets you drive Papra from a terminal, which suits scheduled jobs and one-off batch operations. The SDK wraps the API in a programming language so you can call Papra from application code without hand-building HTTP requests. The site does not specify which languages the SDK covers or list CLI commands, so treat both as "available, details in Docs" rather than assuming a particular language or syntax.
Email ingestion as a no-code alternative
If your documents arrive as email attachments, you may not need any developer tooling. Each organization can have one or more dedicated addresses (the site shows the form [email protected]). You send or forward an email to that address, and the attachments are extracted and added to the organization automatically. This is the lowest-effort integration path and works well alongside the API — email for inbound documents, API for generated ones.
Choosing between the options
| Need | Best fit |
|---|---|
| Upload files from a script or app | API |
| React in another system when a document is added | Webhooks |
| Run batch jobs from a terminal | CLI |
| Call Papra from application code | SDK |
| Capture attachments people email to you | Email ingestion |
A common pattern combines them: email ingestion collects incoming attachments, tagging rules (which Papra supports for automatic categorization) organize them, and the API or webhooks connect the archive to the rest of your stack.
Before you build
- Get an API key. The upload example requires one; the site's Docs section is the place to confirm how to create and scope it.
- Check the Docs for specifics. Endpoint list, webhook events, SDK languages, and CLI commands are not detailed on the marketing pages, so verify them before committing to an integration design.
- Self-hosting changes the base URL. Papra is open-source and self-hostable, so a self-hosted instance will not use
api.papra.ai; point your requests at your own deployment. - Pricing is separate. Papra has a pricing page, and the site advertises "Start archiving - Free," but API limits or plan restrictions are not stated in the available material — check the pricing page if you expect heavy programmatic use.