API
API
Marque et détecte des fichiers avec l'API Markedfile. Disponible seulement dans la formule Enterprise.
Clés API
Le propriétaire d'un espace Enterprise crée et révoque les clés dans les réglages de l'espace. Une clé n'est affichée qu'une fois. Markedfile enregistre un hachage SHA-256, un court préfixe et le nom. Il n'enregistre pas le secret.
Une clé appartient à un seul espace. Elle n'agit que là, avec les limites de formule de cet espace. Les espaces personnels n'ont pas de clés. Un membre qui n'est pas le propriétaire ne peut pas les créer ni les révoquer.
Si l'espace perd sa formule Enterprise active, toutes les clés cessent de fonctionner tout de suite, y compris pendant les 30 jours où les fichiers existants peuvent encore être détectés dans l'application. Revenir à Enterprise fait refonctionner les clés qui n'ont pas été révoquées.
Authentification
Envoie le secret dans l'en-tête Authorization comme jeton Bearer. Ces routes n'utilisent pas de cookie de session. Un navigateur sur un autre site est refusé.
Audit
Créer, révoquer, marquer et détecter écrivent une ligne d'audit que le propriétaire de l'espace peut lire. La ligne ne contient pas le fichier.
Points d'accès
POST/api/v1/mark
Marque un fichier et renvoie la copie marquée. Le corps est multipart/form-data.
Authentification
Authorization: Bearer mf_…Envoie cet en-tête. Il n'y a pas de cookie de session. curl et les autres clients serveur sont acceptés. Un navigateur sur un autre site est refusé.
Paramètres
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| file | file | Oui | Le fichier à marquer. Enterprise accepte jusqu'à 100 MB, 500 pages PDF et une vidéo jusqu'à 10 minutes. La taille, la durée et le nombre de pages suivent la formule de l'espace. |
| identifier | string | Oui | 1 à 32 caractères, sans caractère de contrôle. L'étiquette que tu vois si cette copie est détectée plus tard. Elle n'est pas écrite dans le fichier comme texte lisible. |
Requête
curl -X POST https://markedfile.com/api/v1/mark \
-H "Authorization: Bearer mf_…" \
-F "file=@contract.pdf" \
-F "identifier=northwind"Réponse
{
"file": "JVBERi0xLjQK…",
"mime": "application/pdf",
"name": "contract.pdf",
"kind": "pdf",
"layers": [
{
"name": "Metadata",
"detail": "Authenticated workspace reference; the identifier stays on the server",
"screenshot": "No",
"crop": "No",
"reencode": "No"
}
],
"remaining": 1
}file contient les octets marqués en base64. mime, name et kind décrivent le téléchargement. layers liste les couches qui ont été appliquées. Quand la formule n'a pas de plafond de fichiers actifs, remaining est le nombre de fichiers actifs après cette marque. Quand elle a un plafond, remaining est le nombre de nouvelles marques restantes. Enterprise n'a pas de plafond. Supprimer un fichier est ce qui arrête la détection.
Erreurs
Le texte du champ error dans le corps JSON est en anglais.
| État | Description |
|---|---|
| 400 | Le fichier est vide, ou l'identifiant est vide, dépasse 32 caractères ou contient un caractère de contrôle. |
| 401 | La clé manque, est révoquée ou est inconnue. Le corps JSON contient "code": "api-key". |
| 403 | L'espace n'a plus de formule Enterprise active (le corps contient "code": "enterprise"), ou le navigateur a envoyé une requête cross-site ou same-site. |
| 413 | Le fichier dépasse la limite d'envoi de la formule, ou le PDF a plus de pages que la formule n'en permet. |
| 422 | Le fichier n'a pas pu être traité. |
| 429 | Cette clé a marqué plus de 40 fichiers dans la minute en cours. |
Limite
40 requêtes par minute pour cette clé. Le compteur est dans la base du produit et survit à un redémarrage.
POST/api/v1/detect
Vérifie un fichier dans l'espace de cette clé. Le corps est multipart/form-data.
Authentification
Authorization: Bearer mf_…Envoie cet en-tête. Il n'y a pas de cookie de session. curl et les autres clients serveur sont acceptés. Un navigateur sur un autre site est refusé.
Paramètres
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| file | file | Oui | Le fichier à vérifier. La recherche ne se fait que dans l'espace de cette clé. Un fichier marqué dans un autre espace ne se résout pas. Un espace Enterprise actif peut aussi vérifier un fichier vidéo. Une capture d'une seule image est vérifiée comme une image. |
Requête
curl -X POST https://markedfile.com/api/v1/detect \
-H "Authorization: Bearer mf_…" \
-F "file=@leaked.pdf"Réponse
{
"id": "northwind",
"confidence": 0.95,
"layers": [
{
"name": "Metadata",
"hit": true,
"detail": "Authenticated metadata matched this workspace",
"screenshot": "No",
"crop": "No",
"reencode": "No"
}
],
"notes": [
"Confidence is 99% for an exact file or when an authenticated mark agrees with another mark. A visual match alone stays lower, and weak bit agreement stays far from a high score."
]
}id est l'identifiant que tu as choisi quand cette copie a été marquée, ou null si cet espace n'a pas de correspondance. confidence est de 99 % pour un fichier exact ou quand une marque authentifiée concorde avec une autre marque. Une correspondance seulement visuelle reste plus basse. layers liste les couches, et hit est vrai pour celles qui ont concordé. notes décrit ce que la vérification a fait. Un fichier supprimé ne se résout pas.
Erreurs
Le texte du champ error dans le corps JSON est en anglais.
| État | Description |
|---|---|
| 400 | Le fichier est vide. |
| 401 | La clé manque, est révoquée ou est inconnue. Le corps JSON contient "code": "api-key". |
| 403 | L'espace n'a plus de formule Enterprise active (le corps contient "code": "enterprise"), ou le navigateur a envoyé une requête cross-site ou same-site. |
| 413 | Le fichier dépasse la limite d'envoi de la formule, ou le PDF a plus de pages que la formule n'en permet. |
| 422 | Le fichier n'a pas pu être traité. |
| 429 | Cette clé a fait plus de 80 détections dans la minute en cours. |
Limite
80 requêtes par minute pour cette clé. Le compteur est dans la base du produit et survit à un redémarrage.