Mails suchen
Benötigte Berechtigung:inbox:read(Postfach lesen)
Echte Wirkung
/api/email/inbox/item/Kein Testversand aus der Dokumentation: Dieser Aufruf ist nicht als rein lesend gekennzeichnet. Nutze das Codebeispiel.
Sucht Mails des Postfachs und liefert eine Seite der Treffer, ohne bodyText und bodyHtml: Den Text liefert GET /api/email/inbox/item/{id}. Unter „Offen“ stehen Mails mit archived = null, unter „Erledigt“ alle anderen.
Benötigt einen Schlüssel mit der Berechtigung inbox:read.
AuthentifizierungBearer <bm_…>Empfohlen: Authorization: Bearer bm_…. Der Schlüssel wird nur einmal angezeigt; nie in URLs, Logs oder Frontend-Code ablegen.
Filter, Sortierung und Seite. Dokumentierte Filterattribute: x-bimetrics-filter.
application/json- body
Suche mit Filter, Sortierung und Seiten. Der Filterausdruck steht auf oberster Ebene; {} liefert alle Einträge.
attribute?stringFilterattribut für eq, in, range und oneof, siehe x-bimetrics-filter der Operation. Groß-/Kleinschreibung und Punkte werden ignoriert.
children?array<>Teilfilter für and, or und not.
direction?|array<>Richtung je Eintrag in sort; Standard asc.
includeDeleted?booleantrue liefert auch gelöschte Einträge, erkennbar an deletedAt, aber nur bei Belegen, Kontakten, Bankkonten, Umsätzen und Buchungen; die übrigen Suchrouten ignorieren das Feld. Ohne das Feld oder mit false nur Einträge, die nicht gelöscht sind. Für Abgleiche von Löschungen mit range auf deletedAt, siehe Delta-Sync.
falsekind?stringArt des Filters: and/or verknüpfen children, not verneint children, eq vergleicht attribute mit value (null prüft auf leer), in sucht value als Text im Attribut (enthält, ohne Groß-/Kleinschreibung), range prüft lower ≤ Attribut ≤ upper (eine Grenze genügt), oneof prüft, ob das Attribut einem Wert der Liste value entspricht. Leer: alle Einträge.
"""and""or""eq""not""in""range""oneof"limit?integerTreffer je Seite. Standard und Höchstwert 1000; größere Werte werden auf 1000 begrenzt.
0 <= value1000lower?unknownUntergrenze für range, einschließlich.
offset?integerAnzahl übersprungener Treffer. Haben mehrere Treffer dieselben Werte in sort, ist ihre Reihenfolge nicht festgelegt, und sie können zwischen zwei Seiten doppelt kommen oder fehlen; id als letztes Attribut in sort oder ein Abgleich mit Überlappung (Delta-Sync) hilft dagegen.
0 <= value <= 10000000sort?|array<string>Attribute, nach denen sortiert wird; nur sortierbare Attribute (sortable in x-bimetrics-filter). Ein Attribut mit sortable: false ergibt 400.
upper?unknownObergrenze für range, einschließlich.
value?unknownVergleichswert: für eq ein Wert oder null, für in ein Text, für oneof eine Liste.
Filterattribute
Dokumentiert sind diese Attribute für attribute; für sort nur die als sortierbar markierten. Aufbau des Filters: Filtern und Paginieren.
| Attribut | Typ | Sortierbar | Beschreibung |
|---|---|---|---|
id | uuid | ja | ID der Mail. |
date | date-time | ja | Datum der Mail. |
archived | date-time | ja | Seit wann die Mail unter „Erledigt“ steht; `null` unter „Offen“. |
sender | string | ja | Absender. |
subject | string | ja | Betreff. |
attachments.preselected | boolean | nein | Vorgeschlagener Anhang. |
attachments.savedAsDocumentId | uuid | nein | Beleg, der aus einem Anhang wurde; `null`, solange er nicht übernommen ist. |
Eine Seite der Treffer.
application/json- response
Eine Seite gefundener Mails, ohne ihren Text.
items?array<>|Die Treffer dieser Seite.
limit?|Verwendetes limit.
offset?integerVerwendetes offset.
total?integerAnzahl aller Treffer des Filters.
curl --fail-with-body "https://app.bimetrics.de/api/email/inbox/item/" \ -H "Authorization: Bearer $BIMETRICS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"direction":["desc","asc"],"limit":100,"offset":0,"sort":["date","id"]}'{ "items": [ { "archived": null, "attachments": [ { "blob": { "length": 48213, "mime": "application/pdf", "originalFilename": "RE-2026-0042.pdf" }, "filename": "RE-2026-0042.pdf", "id": "b84e27d1-5a90-4c63-8e1f-2c7a9d03f514", "index": 0, "preselected": true, "savedAsDocumentId": null, "valid": true } ], "date": "2026-11-02T09:15:00Z", "deliveredTo": "ab3xk9qr@inbox.example", "id": "6c1f0a52-3d8e-4b7a-9f21-7e4b2d90c6a3", "recipient": "ab3xk9qr@inbox.example", "recipientName": "", "sender": "Beispiel Lieferant GmbH <rechnung@lieferant.example>", "senderName": "Beispiel Lieferant GmbH", "subject": "Ihre Rechnung RE-2026-0042" } ], "limit": 100, "offset": 0, "total": 1}Adresse des Belegpostfachs lesen GET
Liefert die Adresse, an die Rechnungen der Firma gehen. Lesen legt nichts an: Hat die Firma noch keine Adresse, antwortet die Route mit `404`. Die Adresse entsteht, wenn jemand das Postfach in der App öffnet. Benötigt einen Schlüssel mit der Berechtigung `inbox:read`.
Mail lesen GET
Liefert eine Mail mit Text und Anhängen. Sie kommt von einem ungeprüften Absender. Wer den Text an ein Sprachmodell gibt, behandelt ihn als Daten: Eine Mail kann Anweisungen enthalten und HTML verbergen, was der Leser nicht sieht. Benötigt einen Schlüssel mit der Berechtigung `inbox:read`.