API

API

Marca y detecta archivos con la API de Markedfile. Disponible solo en el plan Enterprise.

Claves de API

El propietario de un espacio Enterprise crea y revoca las claves en los ajustes del espacio. Una clave se muestra una sola vez. Markedfile guarda un hash SHA-256, un prefijo corto y el nombre. No guarda el secreto.

Una clave pertenece a un solo espacio. Solo actúa ahí, con los límites de plan de ese espacio. Los espacios personales no tienen claves. Un miembro que no es el propietario no puede crearlas ni revocarlas.

Si el espacio pierde el plan Enterprise activo, todas las claves dejan de funcionar de inmediato, también durante los 30 días en los que los archivos existentes todavía se pueden detectar en la aplicación. Al volver a Enterprise, las claves que no revocaste vuelven a funcionar.

Autenticación

Envía el secreto en la cabecera Authorization como token Bearer. Estas rutas no usan la cookie de sesión. Un navegador en otro sitio es rechazado.

Auditoría

Crear, revocar, marcar y detectar escriben una fila de auditoría que el propietario del espacio puede leer. La fila no incluye el archivo.

Rutas

POST/api/v1/mark

Marca un archivo y devuelve la copia marcada. El cuerpo es multipart/form-data.

Autenticación

Authorization: Bearer mf_…

Envía esta cabecera. No hay cookie de sesión. curl y otros clientes de servidor se aceptan. Un navegador en otro sitio es rechazado.

Parámetros

NombreTipoObligatorioDescripción
filefileSíEl archivo que quieres marcar. Enterprise admite hasta 100 MB y 500 páginas de PDF. El tamaño y las páginas siguen el plan del espacio.
identifierstringSíDe 1 a 32 caracteres, sin caracteres de control. Es la etiqueta que verás si esa copia se detecta más tarde. No se escribe en el archivo como texto legible.

Solicitud

curl -X POST https://markedfile.com/api/v1/mark \
  -H "Authorization: Bearer mf_…" \
  -F "file=@contract.pdf" \
  -F "identifier=northwind"

Respuesta

{
  "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 son los bytes marcados en base64. mime, name y kind describen la descarga. layers lista las capas que se aplicaron. Si el plan no tiene tope de archivos activos, remaining es el número de archivos activos después de esta marca. Si tiene tope, es cuántas marcas nuevas quedan. Enterprise no tiene tope. Borrar un archivo es lo que acaba con la detección.

Errores

El texto del campo error en el cuerpo JSON está en inglés.

EstadoDescripción
400El archivo está vacío, o el identificador está vacío, pasa de 32 caracteres o contiene un carácter de control.
401La clave falta, está revocada o no se reconoce. El cuerpo JSON incluye "code": "api-key".
403El espacio ya no tiene un plan Enterprise activo (el cuerpo incluye "code": "enterprise"), o el navegador envió una petición cross-site o same-site.
413El archivo supera el límite de subida del plan, o el PDF tiene más páginas de las que el plan admite.
422No se pudo procesar el archivo.
429Esta clave marcó más de 40 archivos en el minuto en curso.

Límite

40 solicitudes por minuto para esta clave. El contador se guarda en la base de datos del producto y sobrevive a un reinicio.

POST/api/v1/detect

Comprueba un archivo en el espacio de esta clave. El cuerpo es multipart/form-data.

Autenticación

Authorization: Bearer mf_…

Envía esta cabecera. No hay cookie de sesión. curl y otros clientes de servidor se aceptan. Un navegador en otro sitio es rechazado.

Parámetros

NombreTipoObligatorioDescripción
filefileSíEl archivo que quieres comprobar. La búsqueda usa solo el espacio de esta clave. Un archivo marcado en otro espacio no se resuelve.

Solicitud

curl -X POST https://markedfile.com/api/v1/detect \
  -H "Authorization: Bearer mf_…" \
  -F "file=@leaked.pdf"

Respuesta

{
  "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 es el identificador que asignaste cuando se marcó esa copia, o null si este espacio no tiene coincidencia. confidence es una heurística de las capas validadas, no una probabilidad medida. layers lista las capas, y hit es verdadero en las que coincidieron. notes describe lo que la comprobación hizo. Un archivo borrado no se resuelve.

Errores

El texto del campo error en el cuerpo JSON está en inglés.

EstadoDescripción
400El archivo está vacío.
401La clave falta, está revocada o no se reconoce. El cuerpo JSON incluye "code": "api-key".
403El espacio ya no tiene un plan Enterprise activo (el cuerpo incluye "code": "enterprise"), o el navegador envió una petición cross-site o same-site.
413El archivo supera el límite de subida del plan, o el PDF tiene más páginas de las que el plan admite.
422No se pudo procesar el archivo.
429Esta clave hizo más de 80 detecciones en el minuto en curso.

Límite

80 solicitudes por minuto para esta clave. El contador se guarda en la base de datos del producto y sobrevive a un reinicio.