API
API
Markiere und erkenne Dateien mit der Markedfile-API. Nur im Tarif Enterprise.
API-Schlüssel
Der Eigentümer eines Enterprise-Arbeitsbereichs erstellt und widerruft Schlüssel in den Einstellungen des Arbeitsbereichs. Ein Schlüssel wird einmal angezeigt. Markedfile speichert einen SHA-256-Hash, ein kurzes Präfix und den Namen. Das Geheimnis wird nicht gespeichert.
Ein Schlüssel gehört zu genau einem Arbeitsbereich. Er wirkt nur dort, mit den Tarifgrenzen dieses Arbeitsbereichs. Persönliche Arbeitsbereiche haben keine Schlüssel. Ein Mitglied, das nicht Eigentümer ist, kann sie nicht erstellen oder widerrufen.
Wenn der Arbeitsbereich seinen aktiven Enterprise-Tarif verliert, funktionieren alle Schlüssel sofort nicht mehr, auch während der 30 Tage, in denen vorhandene Dateien in der Anwendung noch erkannt werden können. Die Rückkehr zu Enterprise lässt die Schlüssel wieder funktionieren, die nicht widerrufen wurden.
Authentifizierung
Schick das Geheimnis im Authorization-Header als Bearer-Token. Diese Routen nutzen kein Sitzungscookie. Ein Browser auf einer anderen Website wird abgelehnt.
Audit
Erstellen, Widerrufen, Markieren und Erkennen schreiben eine Audit-Zeile, die der Eigentümer des Arbeitsbereichs lesen kann. Die Zeile enthält die Datei nicht.
Endpunkte
POST/api/v1/mark
Markiert eine Datei und gibt die markierte Kopie zurück. Der Körper ist multipart/form-data.
Authentifizierung
Authorization: Bearer mf_…Schick diese Kopfzeile. Es gibt kein Sitzungscookie. curl und andere Server-Clients werden angenommen. Ein Browser auf einer anderen Website wird abgelehnt.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| file | file | Ja | Die Datei, die du markieren willst. Enterprise nimmt bis zu 100 MB und 500 PDF-Seiten an. Upload-Größe und PDF-Seitenzahl folgen dem Tarif des Arbeitsbereichs. |
| identifier | string | Ja | 1–32 Zeichen, ohne Steuerzeichen. Die Bezeichnung, die du siehst, wenn diese Kopie später erkannt wird. Sie wird nicht als lesbarer Text in die Datei geschrieben. |
Anfrage
curl -X POST https://markedfile.com/api/v1/mark \
-H "Authorization: Bearer mf_…" \
-F "file=@contract.pdf" \
-F "identifier=northwind"Antwort
{
"file": "JVBERi0xLjQK…",
"mime": "application/pdf",
"name": "contract.pdf",
"kind": "pdf",
"layers": [
{
"name": "Opaque PDF fields",
"detail": "Three authenticated copies; no identifier text",
"screenshot": "No",
"crop": "No",
"reencode": "No"
}
],
"remaining": 1
}file sind die markierten Bytes in Base64. mime, name und kind beschreiben den Download. layers listet die Träger, die angewendet wurden. Wenn der Tarif keine Obergrenze für aktive Dateien hat, ist remaining die Zahl aktiver Dateien nach dieser Markierung. Wenn er eine Obergrenze hat, ist remaining, wie viele neue Markierungen noch bleiben. Enterprise hat keine Obergrenze. Eine Datei zu löschen ist das, was die Erkennung beendet.
Fehler
Der Text im Feld error im JSON-Körper ist Englisch.
| Status | Beschreibung |
|---|---|
| 400 | Die Datei ist leer, oder die Kennung ist leer, länger als 32 Zeichen oder enthält ein Steuerzeichen. |
| 401 | Der Schlüssel fehlt, ist widerrufen oder unbekannt. Der JSON-Körper enthält "code": "api-key". |
| 403 | Der Arbeitsbereich hat keinen aktiven Enterprise-Tarif mehr (der Körper enthält "code": "enterprise"), oder der Browser hat einen Cross-Site- oder Same-Site-Abruf gesendet. |
| 413 | Die Datei liegt über der Upload-Grenze des Tarifs, oder das PDF hat mehr Seiten, als der Tarif erlaubt. |
| 422 | Die Datei konnte nicht verarbeitet werden. |
| 429 | Dieser Schlüssel hat in der laufenden Minute mehr als 40 Dateien markiert. |
Grenze
40 Anfragen pro Minute für diesen Schlüssel. Der Zähler liegt in der Produktdatenbank und übersteht einen Neustart.
POST/api/v1/detect
Prüft eine Datei im Arbeitsbereich dieses Schlüssels. Der Körper ist multipart/form-data.
Authentifizierung
Authorization: Bearer mf_…Schick diese Kopfzeile. Es gibt kein Sitzungscookie. curl und andere Server-Clients werden angenommen. Ein Browser auf einer anderen Website wird abgelehnt.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| file | file | Ja | Die Datei, die du prüfen willst. Gesucht wird nur im Arbeitsbereich dieses Schlüssels. Eine Datei, die in einem anderen Arbeitsbereich markiert wurde, wird nicht aufgelöst. |
Anfrage
curl -X POST https://markedfile.com/api/v1/detect \
-H "Authorization: Bearer mf_…" \
-F "file=@leaked.pdf"Antwort
{
"id": "northwind",
"confidence": 0.9,
"layers": [
{
"name": "Opaque PDF fields",
"hit": true,
"detail": "1 authenticated field(s) recovered",
"screenshot": "No",
"crop": "No",
"reencode": "No"
}
],
"notes": [
"Confidence is a heuristic for validated layer matches, not a measured forensic probability."
]
}id ist die Kennung, die du vergeben hast, als diese Kopie markiert wurde, oder null, wenn dieser Arbeitsbereich keine Übereinstimmung hat. confidence ist eine Heuristik für die geprüften Schichten, keine gemessene Wahrscheinlichkeit. layers listet die Träger, und hit ist wahr bei denen, die gepasst haben. notes beschreibt, was die Prüfung getan hat. Eine gelöschte Datei wird nicht aufgelöst.
Fehler
Der Text im Feld error im JSON-Körper ist Englisch.
| Status | Beschreibung |
|---|---|
| 400 | Die Datei ist leer. |
| 401 | Der Schlüssel fehlt, ist widerrufen oder unbekannt. Der JSON-Körper enthält "code": "api-key". |
| 403 | Der Arbeitsbereich hat keinen aktiven Enterprise-Tarif mehr (der Körper enthält "code": "enterprise"), oder der Browser hat einen Cross-Site- oder Same-Site-Abruf gesendet. |
| 413 | Die Datei liegt über der Upload-Grenze des Tarifs, oder das PDF hat mehr Seiten, als der Tarif erlaubt. |
| 422 | Die Datei konnte nicht verarbeitet werden. |
| 429 | Dieser Schlüssel hat in der laufenden Minute mehr als 80 Erkennungen ausgeführt. |
Grenze
80 Anfragen pro Minute für diesen Schlüssel. Der Zähler liegt in der Produktdatenbank und übersteht einen Neustart.