Parseur Python Client API¶
This library provides a Python client and CLI to interact with the Parseur.com API.
Installation¶
pip install parseur-py
Quick Start¶
import parseur
parseur.api_key = "YOUR_API_KEY"
for mailbox in parseur.Mailbox.list():
print(mailbox["name"])
Configuration¶
The CLI can save and load configuration from a file:
By default:
~/.parseur.conf- Fields:
api_key: Your Parseur API token
api_base: (Optional) Override the Parseur API base URL
Example:
parseur init --api-key YOUR_API_TOKEN
Overview¶
API Key¶
import parseur
parseur.api_key = "YOUR_API_KEY"
Enums¶
ParseurEvent¶
Supported webhook events:
from parseur import ParseurEvent
ParseurEvent.DOCUMENT_PROCESSED
ParseurEvent.TABLE_PROCESSED
DocumentOrderKey¶
Used to sort documents:
from parseur import DocumentOrderKey
DocumentOrderKey.NAME
DocumentOrderKey.CREATED
DocumentOrderKey.PROCESSED
DocumentOrderKey.STATUS
MailboxOrderKey¶
Used to sort mailboxes:
from parseur import MailboxOrderKey
MailboxOrderKey.NAME
MailboxOrderKey.DOCUMENT_COUNT
MailboxOrderKey.TEMPLATE_COUNT
MailboxOrderKey.PARSEDOK_COUNT
DocumentStatus¶
Document processing status:
from parseur import DocumentStatus
DocumentStatus.INCOMING
DocumentStatus.PARSEDOK
DocumentStatus.EXPORTKO
Methods¶
Mailboxes¶
List all mailboxes, with optional search and sorting.
search: filter by mailbox name or email prefix
order_by: MailboxOrderKey
ascending: bool
mailboxes = parseur.Mailbox.list(search="Invoices", order_by=MailboxOrderKey.NAME) for m in mailboxes: print(m)
Get details of a mailbox.
mailbox = parseur.Mailbox.get(mailbox_id=123) print(mailbox)
Get the schema of a mailbox.
schema = parseur.Mailbox.schema(mailbox_id=123) print(schema)
Documents¶
List all documents in a mailbox with optional filtering.
search: Searches document id, name, template, email addresses, metadata
order_by: DocumentOrderKey
received_after / received_before: datetime.date
with_result: bool
from datetime import datetime documents = parseur.Document.list( mailbox_id=123, search="invoice", order_by=DocumentOrderKey.PROCESSED, ascending=False, received_after=datetime(2024, 1, 1), with_result=True ) for doc in documents: print(doc)
Get document details.
document = parseur.Document.retrieve(document_id="abcd-1234") print(document)
Reprocess a document.
result = parseur.Document.reprocess(document_id="abcd-1234") print(result)
Skip a document.
result = parseur.Document.skip(document_id="abcd-1234") print(result)
Copy document to another mailbox.
result = parseur.Document.copy(document_id="abcd-1234", target_mailbox_id=456) print(result)
Retrieve logs for a document.
logs = parseur.Document.logs(document_id="abcd-1234") for log in logs: print(log)
Delete a document.
parseur.Document.delete(document_id="abcd-1234") print("Deleted!")
Uploads¶
Upload a local file.
result = parseur.Document.upload_file(mailbox_id=123, file_path="/path/to/file.pdf") print(result)
Upload text/email content.
result = parseur.Document.upload_text( recipient="inbox@parseur.net", subject="Invoice 123", sender="billing@example.com", body_html="<p>Here is your invoice</p>" ) print(result)
Webhooks¶
Create a new custom webhook for documents or tables.
result = parseur.Webhook.create( event=ParseurEvent.DOCUMENT_PROCESSED, target_url="https://example.com/webhook", mailbox_id=123, headers={"X-Custom-Header": "value"}, name="My Webhook" ) print(result)
Get webhook details.
webhook = parseur.Webhook.retrieve(webhook_id=789) print(webhook)
Delete an existing webhook by its ID.
parseur.Webhook.delete(webhook_id=789) print("Webhook deleted.")
Enable a webhook for a specific mailbox.
mailbox = parseur.Webhook.enable(mailbox_id=123, webhook_id=789) print(mailbox)
Pause (disable) a webhook for a specific mailbox.
mailbox = parseur.Webhook.pause(mailbox_id=123, webhook_id=789) print(mailbox)
Retrieve a list of all registered webhooks.
webhooks = parseur.Webhook.list() for webhook in webhooks: print(webhook)
Command Line Interface¶
The CLI provides the same features as the API.
parseur init --api-key YOUR_TOKEN
parseur list-mailboxes
parseur get-mailbox 123
parseur list-documents 456 --search invoice --order-by status --descending
parseur upload-file 123 /path/to/file.pdf
parseur create-webhook --event document.processed --target-url https://example.com/webhook