Saltar al contenido principal

Documentación de la API

Integra el análisis de PDF en tus aplicaciones con nuestra API REST

Administrar tokens API

Tu primer análisis

Prueba el análisis de un PDF sin cuenta. Añade un token para usar los límites de tu cuenta y guardar los resultados.

POST/api/v1/pdf/analyze
Ejemplo de solicitud
curl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
  -H "Accept: application/json" \
  -F "file=@document.pdf"

No se pudo copiar. Selecciona el código y cópialo manualmente.

Autenticación
Opcional
Límite de subida
50 MB
URL base
https://pdfcheck.online/api/v1

Autenticación

El token es opcional para analizar un PDF. Los datos de la cuenta, los análisis guardados y la gestión de tokens requieren un token Bearer.

Mantén los tokens en secreto. Usa una variable de entorno y revoca los tokens sin usar desde tu cuenta. Administrar tokens API

Ejemplo de solicitud
curl -X POST https://pdfcheck.online/api/v1/pdf/analyze \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
  -F "file=@document.pdf"

No se pudo copiar. Selecciona el código y cópialo manualmente.

Uso y límites

Sin cuenta: 10 análisis al día por dirección IP. Free: 100 al día. Pro y AI: sin límite diario. Los endpoints de procesamiento también tienen un límite de 30 solicitudes por minuto. Las respuestas de análisis incluyen las comprobaciones restantes.

AccesoAnálisis diariosLímite de subida
No requiere token1050 MB
Free10050 MB
Pro / AISin límite diario100 MB

Los endpoints de procesamiento también aceptan hasta 30 solicitudes por minuto. Una respuesta 429 puede indicar un límite diario o por minuto.

POST/pdf/analyze

Subir y analizar un archivo PDF. Devuelve metadatos detallados extraídos del PDF.

NombreTipoDescripción
filemultipart/form-dataObligatorio. PDF para analizar: hasta 50 MB sin cuenta y con Free; 100 MB con Pro y AI.

Respuesta de ejemplo; los valores dependen del documento.

Ejemplo de respuesta
{
    "success": true,
    "data": {
        "id": "example-analysis-token",
        "view_key": "example-view-key",
        "filename": "document.pdf",
        "file_size": 1048576,
        "file_size_formatted": "1.00 MB",
        "metadata": {
            "basic": {
                "pages": 10,
                "pdf_version": "1.7",
                "analysis_mode": "lightweight",
                "partial_analysis": true
            },
            "document": {
                "title": "Example document",
                "author": "Example author",
                "creator": "Microsoft Word",
                "producer": "Adobe PDF Library"
            }
        },
        "analyzed_at": "2026-09-29T12:00:00+00:00"
    },
    "remaining_checks": 9
}

No se pudo copiar. Selecciona el código y cópialo manualmente.

El análisis de metadatos de la API usa un modo ligero y limitado. Se omite el análisis detallado de fuentes, imágenes y colores; metadata.basic.partial_analysis es true.

Los metadatos y los indicadores de software no demuestran la autoría, la autenticidad ni el cumplimiento de estándares.

Los datos del archivo subido se eliminan después del procesamiento; los resultados del análisis y los metadatos pueden conservarse. Consulta la política de privacidad. Política de privacidad

GET/user

Obtener información del usuario autenticado incluyendo límites de uso diario.

Token obligatorio. Respuesta de ejemplo; los valores dependen del documento.

Ejemplo de respuesta
{
    "success": true,
    "data": {
        "name": "Example user",
        "email": "user@example.com",
        "daily_limit": 100,
        "remaining_checks": 99,
        "checks_used_today": 1
    }
}

No se pudo copiar. Selecciona el código y cópialo manualmente.

GET/pdf

Listar todos los análisis PDF del usuario autenticado con paginación.

Token obligatorio

Parámetros de consultaPredeterminadoDescripción
per_page20Número de resultados por página (1-100)
page1integer
Ejemplo de respuesta
{
    "success": true,
    "data": [
        {
            "id": "example-analysis-token",
            "filename": "document.pdf",
            "file_size": 1048576,
            "file_size_formatted": "1.00 MB",
            "analyzed_at": "2026-09-29T12:00:00+00:00"
        }
    ],
    "meta": {
        "current_page": 1,
        "last_page": 1,
        "per_page": 20,
        "total": 1
    }
}

No se pudo copiar. Selecciona el código y cópialo manualmente.

GET/pdf/{token}

Obtener resultados detallados del análisis por ID de análisis (token de compartir).

Token obligatorio

Ejemplo de solicitud
curl https://pdfcheck.online/api/v1/pdf/example-analysis-token \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN"

No se pudo copiar. Selecciona el código y cópialo manualmente.

Referencia de endpoints

POST/pdf/extract-text

Extrae texto de un PDF. Envía el archivo en el campo pdf; este endpoint tiene un límite de subida de 50 MB y devuelve data.pages.

Ejemplo de solicitud
curl -X POST https://pdfcheck.online/api/v1/pdf/extract-text \
  -H "Accept: application/json" \
  -F "pdf=@document.pdf"

No se pudo copiar. Selecciona el código y cópialo manualmente.

POST/pdf/to-markdown

Convierte un PDF a Markdown. Envía el archivo en el campo pdf (límite de 50 MB). Cuota independiente: 10 conversiones al día sin cuenta y con Free; 100 al día con Pro y AI. Las páginas escaneadas pueden usar OCR de AI externo. La respuesta incluye remaining_conversions.

Ejemplo de solicitud
curl -X POST https://pdfcheck.online/api/v1/pdf/to-markdown \
  -H "Accept: application/json" \
  -F "pdf=@document.pdf"

No se pudo copiar. Selecciona el código y cópialo manualmente.

Gestión de tokens

Para crear tokens mediante la API necesitas un token existente. Crea tu primer token desde tu cuenta. Administrar tokens API

EndpointsDescripción
GET /tokensListar todos los tokens API del usuario autenticado.
POST /tokensCrear un nuevo token API. El token solo se muestra una vez en la respuesta. name: string (max: 255)
DELETE /tokens/{tokenId}Revocar (eliminar) un token API permanentemente.
Ejemplo de solicitud
curl -X POST https://pdfcheck.online/api/v1/tokens \
  -H "Accept: application/json" \
  -H "Authorization: Bearer $PDFCHECK_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"My integration"}'

No se pudo copiar. Selecciona el código y cópialo manualmente.

Códigos de error

Código HTTPCódigo de errorDescripción
401Unauthenticated.Token de API no válido o ausente
404not_foundRecurso no encontrado o acceso denegado
422message / errors
corrupted_pdf
password_protected
analysis_failed
Solicitud no válida o fallo al procesar el PDF, incluido un archivo no compatible, una subida demasiado grande, un PDF dañado o protección con contraseña
429daily_limit_exceeded
message
Límite diario o por minuto superado; vuelve a intentarlo cuando se restablezca el límite correspondiente

Ejemplos de código

Lee el resultado en data.metadata.basic.pages. Todos los fragmentos de respuesta son ilustrativos.

Node.js 20 o posterior; utiliza fetch, FormData y Blob nativos.

analyze-pdf.mjs
import { readFile } from 'node:fs/promises';

const form = new FormData();
form.append('file', new Blob([await readFile('document.pdf')], {
  type: 'application/pdf'
}), 'document.pdf');

const headers = { Accept: 'application/json' };
if (process.env.PDFCHECK_API_TOKEN) {
  headers.Authorization = `Bearer ${process.env.PDFCHECK_API_TOKEN}`;
}

const response = await fetch('https://pdfcheck.online/api/v1/pdf/analyze', {
  method: 'POST', headers, body: form
});
const result = await response.json();
if (!response.ok || !result.success) throw new Error(JSON.stringify(result));
console.log(result.data.metadata.basic.pages);
console.log(result.remaining_checks);

No se pudo copiar. Selecciona el código y cópialo manualmente.

Python (requests)
Python
import os
import requests

headers = {'Accept': 'application/json'}
if os.getenv('PDFCHECK_API_TOKEN'):
    headers['Authorization'] = f"Bearer {os.environ['PDFCHECK_API_TOKEN']}"

with open('document.pdf', 'rb') as pdf:
    response = requests.post(
        'https://pdfcheck.online/api/v1/pdf/analyze',
        headers=headers,
        files={'file': ('document.pdf', pdf, 'application/pdf')},
        timeout=120,
    )
response.raise_for_status()
result = response.json()
print(result['data']['metadata']['basic']['pages'])
print(result['remaining_checks'])

No se pudo copiar. Selecciona el código y cópialo manualmente.

PHP (cURL)
PHP
<?php
$headers = ['Accept: application/json'];
if ($token = getenv('PDFCHECK_API_TOKEN')) {
    $headers[] = 'Authorization: Bearer ' . $token;
}
$curl = curl_init('https://pdfcheck.online/api/v1/pdf/analyze');
curl_setopt_array($curl, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_POSTFIELDS => ['file' => new CURLFile('document.pdf', 'application/pdf')],
]);
$body = curl_exec($curl);
if ($body === false) throw new RuntimeException(curl_error($curl));
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
$result = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
if ($status >= 400 || !($result['success'] ?? false)) {
    throw new RuntimeException($body);
}
echo $result['data']['metadata']['basic']['pages'];

No se pudo copiar. Selecciona el código y cópialo manualmente.