Skip to main content

iil-dvelop-client

Python client for the d.velop DMS REST API (JSON-HAL, Bearer Auth, 2-Step Blob Upload).

Installation

pip install iil-dvelop-client

Quick Start

from dvelop_client import DvelopClient

with DvelopClient(base_url="https://iil.d-velop.cloud", api_key="...") as client:
    # List repositories
    repos = client.list_repositories()

    # Upload document (2-step: blob + object)
    doc = client.upload_document(
        repo_id="...",
        filename="Audit_2026-03-26.pdf",
        content=pdf_bytes,
        category="DSGVO_AUDIT",
        properties={"Mandant": "Landratsamt", "Datum": "2026-03-26"},
    )
    print(doc.id, doc.location_uri)

    # Search
    results = client.search(repo_id="...", query="Datenpanne 2026")

    # List categories
    categories = client.list_categories(repo_id="...")

Async

async with DvelopClient(base_url="https://iil.d-velop.cloud", api_key="...") as client:
    repos = await client.list_repositories_async()
    doc = await client.upload_document_async(repo_id="...", ...)

API Reference

DvelopClient

Method Description
list_repositories() List all DMS repositories
list_categories(repo_id) List categories for a repository
upload_blob(repo_id, content, filename) Step 1: Upload binary blob
create_document(repo_id, blob_ref, category, properties) Step 2: Create DMS object
upload_document(repo_id, filename, content, category, properties) Convenience: Steps 1+2
search(repo_id, query) Full-text search
get_document(repo_id, doc_id) Get document by ID

All methods have _async variants for async usage.

Exceptions

Exception HTTP Status Retry?
DvelopAuthError 401 No — key invalid/expired
DvelopForbiddenError 403 No — missing Origin or permissions
DvelopNotFoundError 404 No
DvelopRateLimitError 429 Yes — check retry_after attribute
DvelopError other Depends

d.velop Upload Sequence

1. POST /dms/r/{repo_id}/b        → 201 + Location: /dms/r/{id}/b/{blob_id}
2. POST /dms/r/{repo_id}/o        → 201 + Location: /dms/r/{id}/o/{doc_id}

Required Headers (handled automatically)

  • Authorization: Bearer {api_key} — all requests
  • Accept: application/hal+json — all requests
  • Origin: {base_url} — write requests (CSRF)

Development

pip install -e ".[dev]"
pytest tests/ -v

Related

  • ADR-149: DMS-Hub Architecture Decision
  • dms-hub: Django Service-Hub consuming this package
  • Platform: platform/packages/dvelop-client/

Metadata

Release files for iil-dvelop-client 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for iil-dvelop-client 0.1.0
File Size Uploaded Provenance
iil_dvelop_client-0.1.0.tar.gz 10.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for iil-dvelop-client 0.1.0
File Interpreter ABI Platform
iil_dvelop_client-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 18.2 kB

Release files / iil_dvelop_client-0.1.0.tar.gz

Download URL iil_dvelop_client-0.1.0.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3f551587b903f65634ffc00c37fea5e3dd08c2bf881ff015e27839f8076d4d9e
BLAKE2b-256 checksum
How to use checksums
6ce60b589a3880abbb7b3acc41cd3c3b35f4cb23db674a3914aedaf4d64fb73d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / iil_dvelop_client-0.1.0-py3-none-any.whl

Download URL iil_dvelop_client-0.1.0-py3-none-any.whl
Size 8.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b72fb5522141096078c47ab066d0b04e24860fb01dedf52e7431a2439f6cc5c3
BLAKE2b-256 checksum
How to use checksums
39866d0804d0ab30b6822cdb05dfbaa7e1768871a023711b1f4e12cdd3804626
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Security for iil-dvelop-client 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page