API- Dokumentation
Alle Endpoints mit Parametern, Beispiel-Responses und kopierbaren curl-Befehlen. Für Einsteiger und Profis.
Erste Schritte
Authentifizierung
Die API nutzt Bearer-Token-Authentifizierung. Du brauchst einen API-Schlüssel, den du in den Einstellungen deines Accounts erstellen kannst.
So funktioniert es
dk_ und wird nur einmal angezeigt — kopiere ihn sofort.curl -H "Authorization: Bearer dk_dein_schlüssel" \
https://documentr.app/api/v1/statsDein API-Schlüssel wird serverseitig mit SHA-256 gehasht gespeichert. Er ist an deinen Account gebunden — du siehst nur deine eigenen Dokumente. Maximal 5 Schlüssel pro Account.
Dokumente
Dokumente-Endpoints
Dokumente auflisten, einzelne Dokumente abrufen und PDF-Dateien herunterladen.
/api/v1/documentsGibt eine paginierte Liste deiner Dokumente zurück. Du kannst nach Tags, Ordnern, Absender, Favoriten, Archiv-Status und Datum filtern. Alle Filter sind optional und kombinierbar.
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
limit | integer | Anzahl Ergebnisse pro Seite (Standard: 50 (max. 100)) |
offset | integer | Überspringt die ersten N Ergebnisse (für Pagination) (Standard: 0) |
tag | string | Filtert nach Dokumenten mit diesem Tag (Teilsuche, Groß-/Kleinschreibung egal) |
folder | string | Filtert nach Dokumenten in diesem Ordner (Teilsuche) |
sender | string | Filtert nach Absender (Teilsuche) |
favorite | boolean | Wenn true, nur favorisierte Dokumente |
archived | boolean | Wenn true, nur archivierte Dokumente (Standard: false) |
fromDate | string (date) | Nur Dokumente ab diesem Datum (ISO 8601, z.B. 2025-01-01) |
toDate | string (date) | Nur Dokumente bis zu diesem Datum |
Response
{
"data": [
{
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Nebenkostenabrechnung 2024",
"summary": "Jährliche Nebenkostenabrechnung für die Wohnung in der Bergstraße 12.",
"sender": "Hausverwaltung Müller GmbH",
"documentDate": "2025-03-15T00:00:00.000Z",
"isFavorite": false,
"createdAt": "2025-03-20T14:30:00.000Z",
"folder": "Wohnung",
"tags": ["Nebenkosten", "2024", "Wohnung"]
}
],
"meta": {
"total": 142,
"limit": 50,
"offset": 0
}
}curl
curl -H "Authorization: Bearer dk_dein_schlüssel" \
"https://documentr.app/api/v1/documents?tag=Rechnung&limit=10"/api/v1/documents/:uuidGibt alle Details eines einzelnen Dokuments zurück, identifiziert per UUID. Enthält Titel, Zusammenfassung, Absender, Datum, Tags, Ordner und mehr.
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
uuid | string | Die UUID des Dokuments (findest du z.B. in der Dokumentliste) |
Response
{
"data": {
"info": "Dokument gefunden.",
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"title": "Mietvertrag Bergstraße 12",
"summary": "Mietvertrag zwischen Max Mustermann und Hausverwaltung Müller GmbH für die 3-Zimmer-Wohnung in der Bergstraße 12, 10115 Berlin.",
"sender": "Hausverwaltung Müller GmbH",
"documentDate": "2023-07-01T00:00:00.000Z",
"createdAt": "2023-07-05T10:15:00.000Z",
"folder": "Wohnung",
"tags": ["Mietvertrag", "Wohnung", "2023"],
"isFavorite": true,
"isArchived": false,
"pageCount": 8,
"hasVectorData": true
}
}curl
curl -H "Authorization: Bearer dk_dein_schlüssel" \
"https://documentr.app/api/v1/documents/a1b2c3d4-e5f6-7890-abcd-ef1234567890"/api/v1/documents/:uuid/downloadGibt die originale PDF-Datei eines Dokuments als Download zurück. Der Response hat den Content-Type application/pdf.
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
uuid | string | Die UUID des Dokuments |
Response
(Binäre PDF-Datei — Content-Type: application/pdf)curl
curl -H "Authorization: Bearer dk_dein_schlüssel" \
-o dokument.pdf \
"https://documentr.app/api/v1/documents/a1b2c3d4-.../download"Suche
Suche-Endpoints
Zwei Suchvarianten: Textsuche über Metadaten und semantische Suche im Dokumentinhalt.
/api/v1/documents/searchDurchsucht Titel, Zusammenfassung und Absender aller Dokumente per Trigram-Matching. Findet auch unscharfe Treffer — z.B. "Stromrechung" findet "Stromrechnung". Ideal wenn du nach einem bestimmten Dokumentnamen oder Absender suchst.
Request Body
{
"query": "Stromrechnung Stadtwerke"
}Response
{
"data": {
"info": "3 Treffer für \"Stromrechnung Stadtwerke\".",
"results": [
{
"uuid": "...",
"title": "Stromrechnung Q4 2024",
"summary": "Quartalsabrechnung der Stadtwerke München...",
"sender": "Stadtwerke München",
"similarity": 0.85,
"documentDate": "2025-01-15T00:00:00.000Z",
"tags": ["Rechnung", "Strom", "2024"]
}
]
}
}curl
curl -X POST \
-H "Authorization: Bearer dk_dein_schlüssel" \
-H "Content-Type: application/json" \
-d '{"query": "Stromrechnung Stadtwerke"}' \
"https://documentr.app/api/v1/documents/search"/api/v1/documents/search-contentDurchsucht den gesamten Inhalt deiner Dokumente per Vektorähnlichkeit. Versteht die Bedeutung deiner Anfrage — nicht nur Schlüsselwörter. Perfekt wenn du eine spezifische Information suchst, die irgendwo im Text steht.
Request Body
{
"query": "Wie hoch ist die Kündigungsfrist meines Mietvertrags?",
"limit": 5
}Response
{
"data": {
"info": "5 semantische Treffer.",
"results": [
{
"uuid": "...",
"title": "Mietvertrag Bergstraße 12",
"content": "...Die Kündigungsfrist beträgt drei Monate zum Monatsende gemäß § 573c BGB...",
"similarity": 0.92,
"pageNumber": 4,
"documentDate": "2023-07-01T00:00:00.000Z"
}
]
}
}curl
curl -X POST \
-H "Authorization: Bearer dk_dein_schlüssel" \
-H "Content-Type: application/json" \
-d '{"query": "Kündigungsfrist Mietvertrag", "limit": 5}' \
"https://documentr.app/api/v1/documents/search-content"Organisation
Organisation-Endpoints
Tags und Ordner deiner Bibliothek abfragen — inklusive der Anzahl enthaltener Dokumente.
/api/v1/foldersGibt alle Ordner zurück — sortiert nach Dokumentanzahl. Jeder Ordner hat einen Namen, ein optionales Icon und die Anzahl enthaltener Dokumente.
Parameter
| Name | Typ | Beschreibung |
|---|---|---|
limit | integer | Anzahl Ergebnisse (Standard: 50 (max. 100)) |
offset | integer | Offset für Pagination (Standard: 0) |
Response
{
"data": [
{ "name": "Versicherungen", "icon": "🛡️", "documentCount": 28 },
{ "name": "Wohnung", "icon": "🏠", "documentCount": 19 },
{ "name": "Arbeit", "icon": "💼", "documentCount": 15 },
{ "name": "Steuer", "icon": "📊", "documentCount": 12 }
],
"meta": { "total": 8, "limit": 50, "offset": 0 }
}curl
curl -H "Authorization: Bearer dk_dein_schlüssel" \
"https://documentr.app/api/v1/folders"Statistik
Statistik-Endpoints
Kennzahlen deiner Dokumentenbibliothek auf einen Blick.
/api/v1/statsGibt einen Überblick über deine gesamte Bibliothek: wie viele Dokumente du hast, wie viele davon analysiert, archiviert oder favorisiert sind, plus Anzahl deiner Tags und Ordner.
Response
{
"data": {
"totalDocuments": 142,
"analyzedDocuments": 138,
"archivedDocuments": 12,
"favoriteDocuments": 23,
"totalTags": 35,
"totalFolders": 8
}
}curl
curl -H "Authorization: Bearer dk_dein_schlüssel" \
"https://documentr.app/api/v1/stats"Technische Details
Pagination & Rate-Limiting
Pagination
Listen-Endpoints unterstützen limit und offset Parameter.
Standard: 50 Ergebnisse pro Seite, maximal 100.
Jede Antwort enthält ein meta-Objekt mit total, limit und offset.
Rate-Limiting
Die Limits hängen von deinem Plan ab:
Response-Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
Fehlerbehandlung
HTTP Status-Codes
Bei Fehlern gibt die API einen passenden HTTP-Statuscode mit einer Fehlernachricht zurück.
Bad Request
Die Anfrage ist fehlerhaft — z.B. fehlt ein Pflicht-Parameter oder das JSON-Format ist ungültig.
Unauthorized
Kein API-Schlüssel mitgesendet oder der Schlüssel ist ungültig. Prüfe den Authorization-Header.
Not Found
Das angeforderte Dokument wurde nicht gefunden — entweder existiert die UUID nicht oder es gehört einem anderen Account.
Too Many Requests
Rate-Limit überschritten. Warte die im Retry-After Header angegebene Zeit ab, bevor du es erneut versuchst.
Bereit, die API zu nutzen?
Erstelle einen API-Schlüssel und schicke deinen ersten Request in unter einer Minute.
Datenschutz & Cookies
Mit deiner Einwilligung messen wir pseudonym die Reichweite dieser Seite (Google Analytics) und den Erfolg unserer Anzeigen. In der App tracken wir nicht. Du kannst frei entscheiden und deine Wahl jederzeit über „Cookie-Einstellungen" im Footer ändern.
Mehr in der Datenschutzerklärung