Pasar al contenido principal
0Iniciar sesión

REST API

Imagen, PDF " procesamiento de archivos API

Todos los procesadores de archivos comparten un punto final de trabajo. Elija la operación con toolName; encuentre parámetros y ejemplos completos para cada herramienta a continuación.

1. Cree una tecla API
  1. Registrarse, verifique su correo electrónico y regístrese en una cuenta gratuita.
  2. Configuración abierta → API claves (también disponible en el menú del usuario), ingrese un nombre y cree una clave.
  3. La clave completa se muestra una vez. Copiar a su variable de entorno API_KEY lado servidor. Revoque y reemplace una clave perdida.
Authorization: Bearer $API_KEY

Subidas, trabajos, votación, descargas y gestión de reglas requieren una clave API válida o una sesión web firmada. Utilice una tecla API para scripts, MCP y automatización; nunca la ponga en código de frontend. Las teclas revocadas dejan de funcionar inmediatamente.

Cada clave permite hasta las solicitudes 120/minuto por defecto, incluyendo la votación. Las cuotas de trabajo se comparten a través de la cuenta y las claves: predeterminados gratuitos a 20/día, Pro a 100/día. Lea GET /api/tools/entitlements para la configuración actual.

2. Subir → crear trabajo → encuesta → descarga
SolicitudEntrada / respuesta
POST /api/tools/filesmultipart campo archivo → data.file.id; un archivo por subida
POST /api/tools/jobs{toolName, input: {fileId / fileIds, execution: "async", …}} → data.job.id
GET /api/tools/jobs?id=JOB_IDdata.job.status + data.job.result
GET /api/tools/artifacts?id=ARTIFACT_ID&download=1Descarga binaria autenticada; ID at data.job.result.data.artifact.id
DELETE /api/tools/jobs?id=JOB_IDCancelar un trabajo pendiente; los trabajos terminales pueden devolver 409

HTTP 202 (status: accepted) no está terminada. Votar cada 2 segundos hasta que los datos.job.status se complete, se cancele o vence. Lea los datos de éxito en data.job.result.data y los detalles de fallo en data.job.result.details. Inspection devuelve JSON sin un archivo de descarga.

Modo: must_pass requiere que cada regla pase; best_effort puede devolver a un candidato con advertencias. Envía reglas de línea o un ruleId salvado, nunca ambas. Herramientas de un solo cálculo aceptan un fileId por trabajo; crea un trabajo por imagen.

Subidas y artefactos normalmente duran 24 horas; uso expiresAt. Establecer Idempotency-Key en la creación de empleo y reutilizarlo con el mismo cuerpo después de fallas de red. 25 MB combinados, 100 páginas, 40 MP y hasta 10 entradas. Pro permite 100 entradas; los límites del motor siguen vigentes.

3. Parámetros y ejemplos por herramienta

Verificar archivo antes del envío · validate_file
POST /api/tools/validate

El archivo contiene los hechos suministrados y las reglas contiene restricciones. No se cargan ni inspeccionan los bytes. Guardado ruleId requiere autenticación.

{
  "file": {
    "name": "example.png",
    "mimeType": "image/png",
    "bytes": 180000
  },
  "rules": {
    "maxBytes": 200000
  },
  "mode": "must_pass"
}
Abrir herramienta y generar código de su formulario
Comprimir imagen a 200KB · compress_image
POST /api/tools/jobs

fileId, targetBytes (bytes), formato, allowDownscale; reglas.maxBytes puede validar la salida.

{
  "toolName": "compress_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "format": "jpeg",
    "targetBytes": 200000,
    "allowDownscale": true,
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Convertir imágenes · convert_image
POST /api/tools/jobs

fileId, formato; fondo opcional (#RRGGBB) y dpi (JPEG/PNG únicamente).

{
  "toolName": "convert_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "format": "webp",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Redimensionar imágenes · resize_image
POST /api/tools/jobs

fileId, al menos uno de ancho/altura (pixels), ajuste (contain/cover), allowUpscale, formato, dpi.

{
  "toolName": "resize_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "width": 1200,
    "fit": "contain",
    "allowUpscale": false,
    "format": "jpeg",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Recortar imágenes · crop_image
POST /api/tools/jobs

fileId, cultivo: {x,y,width,height} en píxeles desde la esquina superior izquierda; el formato selecciona el tipo de salida.

{
  "toolName": "crop_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "crop": {
      "x": 0,
      "y": 0,
      "width": 200,
      "height": 200
    },
    "format": "png",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Quitar fondo · remove_background
POST /api/tools/jobs

Quita el fondo y descarga un PNG transparente.

{
  "toolName": "remove_background",
  "input": {
    "fileId": "FILE_ID",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Inspeccionar imágenes · inspect_image
POST /api/tools/jobs

fileId; devuelve las dimensiones descodificadas, DPI y EXIF/GPS hechos.

{
  "toolName": "inspect_image",
  "input": {
    "fileId": "FILE_ID",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Imágenes a PDF · convert_image_to_pdf
POST /api/tools/jobs

fileIds en orden de página; pageSize (original/a4/letter), pageOrientation (portrait/landscape), marginPoints (A/C.)0–144 pt), pageDpi (A/C.)36–600).

{
  "toolName": "convert_image_to_pdf",
  "input": {
    "fileIds": [
      "FILE_ID_1",
      "FILE_ID_2"
    ],
    "mode": "best_effort",
    "pageSize": "a4",
    "pageOrientation": "portrait",
    "marginPoints": 24,
    "pageDpi": 150,
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Inspeccionar PDF · inspect_file
POST /api/tools/jobs

fileId; devuelve páginas PDF reales, dimensiones, fuentes y datos de imagen incrustados.

{
  "toolName": "inspect_file",
  "input": {
    "fileId": "FILE_ID",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Comprimir PDF a 200KB · compress_pdf
POST /api/tools/jobs

fileId; rules.maxBytes establece el objetivo en bytes. El modo más estricto falla con un informe de reglas si el objetivo no se puede cumplir.

{
  "toolName": "compress_pdf",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "rules": {
      "maxBytes": 200000
    },
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Fusionar PDF · merge_pdfs
POST /api/tools/jobs

fileIds, al menos 2, fusionado en orden de matriz; reglas opcionales validan el resultado.

{
  "toolName": "merge_pdfs",
  "input": {
    "fileIds": [
      "FILE_ID_1",
      "FILE_ID_2"
    ],
    "mode": "best_effort",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Extraer páginas PDF · split_pdf
POST /api/tools/jobs

fileId, pageRange (por ejemplo, 1-3,5,2) o matriz de páginas; los números de página comienzan en 1 y pueden ser reordenados o repetidos.

{
  "toolName": "split_pdf",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "pageRange": "1-2",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Girar páginas PDF · rotate_pdf
POST /api/tools/jobs

fileId, rotación (90/180/270); opcional pageRange/pages, omitido para rotar todas las páginas.

{
  "toolName": "rotate_pdf",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "rotation": 90,
    "pageRange": "1",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Paquete ZIP para enviar · create_submission_package
POST /api/tools/jobs

fileIds, packageName, namingTemplate; plantilla gratuita: {index}-{name}.{ext}. Las plantillas personalizadas requieren Pro. ZIP incluye archivos, informes manifiestos y por archivo.

{
  "toolName": "create_submission_package",
  "input": {
    "fileIds": [
      "FILE_ID_1",
      "FILE_ID_2"
    ],
    "mode": "best_effort",
    "packageName": "submission-package",
    "namingTemplate": "{index}-{name}.{ext}",
    "execution": "async"
  }
}
Abrir herramienta y generar código de su formulario
Errores, permisos e integraciones

401: llave desaparecida, inválida o revocada. 403: cuenta/key carece de permiso. 429 / rate_limited: tarifa de solicitud o cuota diaria alcanzada; retroceder sólo cuando se permite la reinstalación. invalid_input: Parámetros de verificación. subscription_required: la capacidad del plan necesaria. processing_failed/rule failures: inspectir error.details. Polling HTTP 200 solo no significa que el procesamiento haya tenido éxito.

El catálogo, OpenAPI y los artefactos suministrados /api/tools/validate endpoint son públicos. El procesamiento web de invitados tiene una sesión separada / ruta limitada por IP, no credenciales de automatización anónimas. Los archivos, trabajos, reglas y artefactos son controlados por el propietario.

Utiliza /api/tools/rules (GET/POST/DELETE) para reglas guardadas y GET /api/tools/jobs para la historia. OpenAPI contiene esquemas completos. MCP y REST compartir herramientas y cuotas de cuenta. Pro checkout y top-ups no están abiertos todavía.

# CLI: ATTACHREADY_BASE_URL + ATTACHREADY_API_KEY
node scripts/tools-cli.mjs run convert_image --input '{"fileId":"FILE_ID","format":"webp"}' --wait