Der Status einer Markierung
GET https://api.kennmarq.com/v1/marks/{id}
Ein Clip wird als Auftrag markiert (POST /v1/mark antwortet mit 202 und seiner ID): Fragen Sie hier ab, bis er fertig ist, und laden Sie dann den markierten Clip herunter. Abfragen zählt keine Markierungen. Erfordert einen Schlüssel mit der Berechtigung mark, aus der Organisation und Umgebung der Markierung.
Beispiel
curl https://api.kennmarq.com/v1/marks/mk_… -H "Authorization: Bearer $KENNMARQ_API_KEY"{
"object": "mark", "id": "mk_…", "status": "completed", "kind": "clip",
"created_at": "2026-11-12T10:00:00.000Z", "finished_at": "2026-11-12T10:01:12.000Z",
"file": { "type": "video/mp4", "bytes": 18734211, "sha256": "…", "seconds": 9.6, "width": 1920, "height": 1080, "frames": 230 },
"watermark_id": "1d455a804e9802a6",
"watermarks": { "video": { "alg": "Meta Video Seal 1.0", "id": "1d455a804e9802a6", "read_back": 1, "frames": 64, "strength": 0.2 },
"audio": { "alg": "Meta AudioSeal (16 bits)", "claimed": true, "detected": 0.71, "bits": 16 } },
"manifest": "urn:c2pa:…", "log_index": 1234, "marks": 10, "safety": null,
"download": { "url": "https://…", "expires_at": "2026-11-12T10:06:12.000Z" },
"download_until": "2026-11-13T10:01:12.000Z", "download_links_left": 4, "download_error": null
}Solange der Auftrag läuft, lautet die Antwort {"object": "mark", "id": "mk_…", "status": "running", …}. Die meisten Clips brauchen ein bis zwei Minuten; fragen Sie alle paar Sekunden ab, oder lassen Sie sich von einem Webhook benachrichtigen. Der Download-Link braucht keinen Schlüssel: Der Link selbst gewährt den Zugriff, geben Sie ihn also mit Bedacht weiter. Ein Bild oder Song wurde in seinem eigenen Aufruf markiert: Hier hat die Markierung den Status completed, ohne Download.
Downloads
Die Datei eines fertigen Clips wird einen Tag lang aufbewahrt. Jeder Link dazu funktioniert 5 Minuten lang: Starten Sie den Download innerhalb dieser Zeit (ein begonnener Download läuft zu Ende). Eine erneute Abfrage innerhalb dieser 5 Minuten liefert denselben Link mit derselben Ablaufzeit; danach einen neuen Link, bis zu 5 je Clip. Die Größe der Datei zählt einmal gegen Ihr monatliches Datenkontingent, wenn der Auftrag abgeschlossen ist, was den ersten Link abdeckt, und erneut für jeden späteren Link. Ist das Datenkontingent des Monats aufgebraucht, wird bis zum Monatsersten (UTC) oder bis zu einem größeren Plan kein neuer Link erstellt.
Felder
| Feld | Beschreibung |
|---|---|
status | running, completed oder failed. |
kind | picture, song oder clip (eine MP4-Datei, die nur Ton enthält, kommt als Song zurück). |
file | Die markierte Datei: type, bytes, sha256, seconds und bei einem Clip width, height und frames. |
watermark_id | Die Video-Seal-ID eines Clips (16 Hexadezimalziffern), der Schlüssel zu seinen dauerhaften Content Credentials; null bei einem Song. |
watermarks | video: die ID und wie viel davon zurückgelesen wurde; audio: ob das Manifest die Markierung im Ton angibt. |
manifest, log_index | Das Label des Manifests und wo seine Signatur im Transparenzprotokoll steht. |
marks | Die gezählten Markierungen: fünf je Sekunde und zwei je geprüftes Einzelbild. |
safety | Mit eingeschaltetem check: die Richtlinie und das Ergebnis (allow oder flag, bei flag mit dem Grund). |
download | url und expires_at: ein Link zur markierten Datei, der 5 Minuten lang funktioniert (siehe Downloads); null, wenn es keinen gibt, mit dem Grund in download_error. |
download_until | Die Datei wird nach Abschluss des Auftrags einen Tag lang aufbewahrt. |
download_links_left | Wie viele weitere Links der Clip erhalten kann: insgesamt 5. |
download_error | Warum download null ist: gone (sein Tag ist vorbei), download_limit (seine 5 Links sind verbraucht), quota_exceeded (das Datenkontingent des Monats ist aufgebraucht), storage_unavailable (erneut versuchen). Sonst null. |
error | Code und Meldung eines fehlgeschlagenen Auftrags (wie in einem Fehler-Body) sowie safety bei einem blockierten Einzelbild. |
Nachweise
GET https://api.kennmarq.com/v1/marks/{id}/receipt
Eine Markierung, die mit markets erstellt wurde, hat einen Nachweis: für jeden Markt das Gesetz, was die Datei dafür trägt, was ihr fehlt und was bei Ihnen als Anbieter bleibt. Auf Wunsch signieren wir ihn mit dem Schlüssel unseres Prüftools, sodass Sie ihn als Beleg aufbewahren können; GET /v1/verify/key liefert denselben Schlüssel. Markierungen ohne markets oder im lokalen Modus haben keinen (404 not_found).
curl https://api.kennmarq.com/v1/marks/mk_4Q8oT1n6mWc2fLr0aZ9eYb/receipt \
-H "Authorization: Bearer $KENNMARQ_API_KEY"{
"receipt": {
"object": "receipt",
"mark_id": "mk_4Q8oT1n6mWc2fLr0aZ9eYb",
"made_at": "2026-10-24T10:00:00Z",
"file": { "type": "image/png", "sha256": "…" },
"marks": {
"credential": { "manifest": "urn:c2pa:…", "time_stamp": { "serial": "…", "time": "2026-10-24T10:00:00Z" } },
"watermark": { "alg": "com.adobe.trustmark.Q", "id": "1a2b3c4d5e6f7081" },
"sound_watermark": null
},
"origin": { "provider": "Acme Inc.", "system": "Acme Studio", "system_version": "2.1", "source": "created", … },
"markets": [
{ "market": "us-ca", "law": "California AI Transparency Act …", "applied": ["a latent disclosure: …", …], "missing": [], "yours": ["being the covered provider", …] }
],
"rules_checked": "2026-10-24",
"guarantee": "…"
},
"jws": "eyJhbGciOiJFUzI1NiIs…",
"key_id": "…",
"public_key": "-----BEGIN PUBLIC KEY-----…"
}Wenn ein Auftrag fehlschlägt
status: failed, mit dem Fehler, mit dem ein Aufruf geantwortet hätte: content_blocked (ein Einzelbild, das die Sicherheitsprüfung blockiert hat, in safety, mit seinem frame), quota_exceeded (der Clip braucht mehr Markierungen, als übrig waren), payload_too_large (über unseren Grenzen), invalid_request (eine Datei, die wir nicht lesen können), mark_failed oder marker_unavailable. Ein fehlgeschlagener Auftrag zählt nichts, außer bei einer Blockierung die Prüfungen, sofern Sie sie angefordert haben. Nach einem Fehler auf unserer Seite funktioniert der Upload wieder, bis seine Stunde um ist. Für Clips, die mit mark_failed fehlschlagen, nachdem wir sie bearbeitet haben, gilt eine tägliche Obergrenze (Clips).
401, 403, 404 not_found, 429.