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

NomTypeObligatoireDescription
filefileOuiLe 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.
identifierstringOui1 à 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.

ÉtatDescription
400Le fichier est vide, ou l'identifiant est vide, dépasse 32 caractères ou contient un caractère de contrôle.
401La clé manque, est révoquée ou est inconnue. Le corps JSON contient "code": "api-key".
403L'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.
413Le fichier dépasse la limite d'envoi de la formule, ou le PDF a plus de pages que la formule n'en permet.
422Le fichier n'a pas pu être traité.
429Cette 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

NomTypeObligatoireDescription
filefileOuiLe 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.

ÉtatDescription
400Le fichier est vide.
401La clé manque, est révoquée ou est inconnue. Le corps JSON contient "code": "api-key".
403L'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.
413Le fichier dépasse la limite d'envoi de la formule, ou le PDF a plus de pages que la formule n'en permet.
422Le fichier n'a pas pu être traité.
429Cette 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.