API Endpoints
Authentication
Section titled “Authentication”The public API uses a bearer token for authentication. You can get a token by logging to your Papra account and creating an API token.
How to create an API token

Endpoints
Section titled “Endpoints”Create a document
Section titled “Create a document”POST /api/organizations/:organizationId/documents
Create a new document in the organization.
- Required API key permissions:
documents:create - Body (form-data)
file: The file to upload.ocrLanguages: (optional) The languages to use for OCR.
- Response (JSON)
document: The created document.
List documents
Section titled “List documents”GET /api/organizations/:organizationId/documents
List all documents in the organization.
- Required API key permissions:
documents:read - Query parameters
pageIndex: (optional, default: 0) The page index to start from.pageSize: (optional, default: 100) The number of documents to return.tags: (optional) The tags IDs to filter by.
- Response (JSON)
documents: The list of documents.documentsCount: The total number of documents.
List deleted documents (trash)
Section titled “List deleted documents (trash)”GET /api/organizations/:organizationId/documents/deleted
List all deleted documents (in trash) in the organization.
- Required API key permissions:
documents:read - Query parameters
pageIndex: (optional, default: 0) The page index to start from.pageSize: (optional, default: 100) The number of documents to return.
- Response (JSON)
documents: The list of deleted documents.documentsCount: The total number of deleted documents.
Get a document
Section titled “Get a document”GET /api/organizations/:organizationId/documents/:documentId
Get a document by its ID.
- Required API key permissions:
documents:read - Response (JSON)
document: The document.
Delete a document
Section titled “Delete a document”DELETE /api/organizations/:organizationId/documents/:documentId
Delete a document by its ID.
- Required API key permissions:
documents:delete - Response: empty (204 status code)
Get a document file
Section titled “Get a document file”GET /api/organizations/:organizationId/documents/:documentId/file
Get a document file content by its ID.
- Required API key permissions:
documents:read - Response: The document file stream.
Search documents
Section titled “Search documents”GET /api/organizations/:organizationId/documents/search
Search documents in the organization by name or content.
- Required API key permissions:
documents:read - Query parameters
searchQuery: The search query.pageIndex: (optional, default: 0) The page index to start from.pageSize: (optional, default: 100) The number of documents to return.
- Response (JSON)
documents: The list of documents.
Get organization documents statistics
Section titled “Get organization documents statistics”GET /api/organizations/:organizationId/documents/statistics
Get the statistics (number of documents and total size) of the documents in the organization.
- Required API key permissions:
documents:read - Response (JSON)
organizationStats: The organization documents statistics.documentsCount: The total number of documents.documentsSize: The total size of the documents.
Update a document
Section titled “Update a document”PATCH /api/organizations/:organizationId/documents/:documentId
Change the name or content (for search purposes) of a document.
- Required API key permissions:
documents:update - Body (form-data)
name: (optional) The document name.content: (optional) The document content.
- Response (JSON)
document: The updated document.
Get document activity
Section titled “Get document activity”GET /api/organizations/:organizationId/documents/:documentId/activity
Get the activity log of a document.
- Required API key permissions:
documents:read - Query parameters
pageIndex: (optional, default: 0) The page index to start from.pageSize: (optional, default: 100) The number of documents to return.
- Response (JSON)
activities: The list of activities.
Create a tag
Section titled “Create a tag”POST /api/organizations/:organizationId/tags
Create a new tag in the organization.
- Required API key permissions:
tags:create - Body (form-data)
name: The tag name.color: The tag color in hex format (e.g.#000000).description: (optional) The tag description.
- Response (JSON)
tag: The created tag.
List tags
Section titled “List tags”GET /api/organizations/:organizationId/tags
List all tags in the organization.
- Required API key permissions:
tags:read - Response (JSON)
tags: The list of tags.
Update a tag
Section titled “Update a tag”PUT /api/organizations/:organizationId/tags/:tagId
Change the name, color or description of a tag.
- Required API key permissions:
tags:update - Body
name: (optional) The tag name.color: (optional) The tag color in hex format (e.g.#000000).description: (optional) The tag description.
- Response (JSON)
tag: The updated tag.
Delete a tag
Section titled “Delete a tag”DELETE /api/organizations/:organizationId/tags/:tagId
Delete a tag by its ID.
- Required API key permissions:
tags:delete - Response: empty (204 status code)
Add a tag to a document
Section titled “Add a tag to a document”POST /api/organizations/:organizationId/documents/:documentId/tags
Associate a tag to a document.
- Required API key permissions:
tags:readanddocuments:update - Body
tagId: The tag ID.
- Response: empty (204 status code)
Remove a tag from a document
Section titled “Remove a tag from a document”DELETE /api/organizations/:organizationId/documents/:documentId/tags/:tagId
Remove a tag from a document.
- Required API key permissions:
tags:readanddocuments:update - Response: empty (204 status code)