DocoMatic

Para desarrolladores

Desarrolle con DocoMatic: lo que funciona hoy

Todavía no hay una API para clientes con claves.

Hoy puede leer nuestros datos públicos de accesibilidad sin cuenta y enviar documentos a su espacio de trabajo con un webhook firmado.

Si necesita más, únase a la lista de espera y cuéntenos qué construiría.

Lo que existe hoy

Puntos de conexión de datos públicos
Disponible
Sin clave ni cuenta. Plazos y estadísticas de entidades en JSON.
Ingesta por webhook firmado
Disponible
Envíe un archivo o una URL pública a su espacio de trabajo, firmado por conexión.
Claves de API
Solo carga
Para el agente de carpeta vigilada. Una clave carga en una conexión y no puede hacer nada más.
API para clientes: trabajos, estado, informes
Lista de espera
No está construida. Sin fecha.

En qué punto estamos

En qué punto está la API

Actualizado el 18 de septiembre de 2026

Cuatro puertas: dos abiertas e iluminadas, una con solo una cerradura, una con andamios y una corta fila esperando afuera

Una API completa para clientes — puntos de conexión versionados para enviar documentos y obtener informes, claves con permisos acotados, entorno de pruebas y webhooks de eventos salientes — no está disponible hoy en DocoMatic. No publicamos una fecha.

Las claves de API en la configuración de su espacio de trabajo no son esa API. Una clave permite que el agente de carpeta vigilada de DocoMatic cargue documentos en una conexión de carpeta vigilada, y nada más: no puede leer sus documentos, cambiar la configuración ni gastar créditos en otra cosa que las cargas que realiza.

DocoMatic no llama a sus sistemas. Nada avisa a su URL cuando un documento termina; el estado se consulta en la aplicación.

Lo que puede usar ahora está abajo: los puntos de conexión de datos públicos y la ingesta por webhook firmado, una de nuestras integraciones disponibles. Para probar un solo PDF a mano, use el verificador de accesibilidad gratuito. Ambos forman parte de la plataforma de accesibilidad de documentos.

Datos públicos · sin clave

Puntos de conexión de datos públicos

JSON de solo lectura, sin clave ni cuenta, servido desde este sitio. Úselo para citar plazos o mostrar las estadísticas de documentos de una entidad pública.

GET /api/public/deadlines.jsonPlazos de cumplimiento de accesibilidad para EE. UU., Canadá y la UE, cada uno con la URL de su fuente primaria.
Solicitudbash
# Accessibility deadline catalog (US, Canada, EU), each entry
# with its primary-source URL. No key, no account, CORS enabled.
curl https://www.docomatic.ai/api/public/deadlines.json

Los campos cohortKey y labelKey nombran nuestras propias cadenas de traducción, no etiquetas legibles. Apóyese en regulation, jurisdiction y date, y siga sourceUrl para el texto de la norma. Se muestra una entrada de 7.

Respuesta, abreviadaJSON
{
  "version": 1,
  "generatedAt": "2026-09-18T00:00:00.000Z",
  "source": "api-with-fallback",
  "canonical": "https://www.docomatic.ai/api/public/deadlines.json",
  "deadlines": [
    {
      "id": "ada-title-ii-large",
      "jurisdiction": "US",
      "regulation": "ada-title-ii",
      "cohortKey": "deadlines.cohorts.adaTitleIiLarge",
      "date": "2027-04-26",
      "sourceUrl": "https://www.federalregister.gov/documents/2026/04/20/2026-07663/extension-of-compliance-dates-for-nondiscrimination-on-the-basis-of-disability-accessibility-of-web",
      "sourceCitation": "91 FR 20902 (April 20, 2026), amending 28 CFR 35.200(b)",
      "originalRuleUrl": "https://www.federalregister.gov/documents/2024/04/24/2024-07758/nondiscrimination-on-the-basis-of-disability-accessibility-of-web-information-and-services-of-state",
      "originalRuleCitation": "89 FR 31320 (April 24, 2024)",
      "labelKey": "deadlines.labels.adaTitleIiLarge"
    }
  ]
}
GET /api/public/entity/{id-or-slug}.jsonEl registro de una entidad pública y las estadísticas de su último rastreo, por identificador corto o por ID. Una entidad desconocida devuelve un 404 en JSON.
Solicitudbash
# One public entity's registry row and its latest crawl
# statistics. Slug or UUID; the .json suffix is required.
curl https://www.docomatic.ai/api/public/entity/fresno-unified-school-district.json

Los recuentos provienen del rastreo detrás del monitoreo de documentos: lo que se encontró en el sitio web de la entidad, por formato y por categoría, más una tasa de aprobación muestreada. Los campos que no aparecen aquí se omitieron, no están ocultos.

Entidad desconocidaJSON
{
  "error": "entity not found",
  "id": "no-such-entity.json"
}
Respuesta, abreviadaJSON
{
  "version": 1,
  "generatedAt": "2026-09-18T00:00:00.000Z",
  "source": "api-with-fallback",
  "canonical": "https://www.docomatic.ai/api/public/entity/e4420e3f-7595-4c6a-ac6f-383717e56ad4.json",
  "page": "https://www.docomatic.ai/deadline/us/ca/school-district/fresno-unified-school-district",
  "entity": {
    "id": "e4420e3f-7595-4c6a-ac6f-383717e56ad4",
    "name": "Fresno Unified School District",
    "slug": "fresno-unified-school-district",
    "state": "CA",
    "entityType": "school-district",
    "population": 402208,
    "deadlineCohort": "2027",
    "officialWebsite": "https://www.fresnounified.org",
    "status": "published",
    "documentsFound": 800,
    "byFormat": {
      "pdf": 790,
      "docx": 7,
      "pptx": 1,
      "xlsx": 2
    },
    "estimatedPages": 6832,
    "sampledCount": 42,
    "samplePassRate": 0.2857,
    "lastCrawledAt": "2026-09-18T00:44:32Z"
  }
}

Las respuestas son JSON y permiten solicitudes entre orígenes. Los campos pueden cambiar mientras estos puntos de conexión son jóvenes, así que lea solo los que necesite.

Las respuestas se guardan en caché cinco minutos en el navegador y hasta una hora en el borde, así que consultar con más frecuencia devuelve los mismos bytes.

Uso de los datos

Uso de los datos públicos de plazos

deadlines.json es gratuito, sin clave y accesible entre orígenes, y cada entrada lleva la URL de su fuente primaria. Úselo en una página de intranet, en un panel de cumplimiento o en el portal de clientes de una consultora.

Lo que pedimos
Cite la fuente primaria, no a nosotros. El valor está en que cada plazo enlaza con la norma de la que proviene. Si lo atribuye a DocoMatic, enlace a esta página para que la gente pueda comprobarlo por sí misma.
Lo que no prometemos
Que sea jurídicamente completo para su jurisdicción. Es un catálogo con sus fuentes, mantenido porque nosotros mismos lo necesitábamos. La determinación la hace su asesor legal.

No es asesoramiento legal. DocoMatic publica estos datos como información general para equipos de accesibilidad, gestión documental y TI. Para decisiones sobre las obligaciones de su entidad, apóyese en las fuentes primarias enlazadas en cada entrada y consulte a su abogado.

Cuerpo → HMAC → encabezado → POST

Ingesta por webhook firmado

Envíe documentos a su espacio de trabajo desde sus propios sistemas. Cree una conexión Webhook / API en la pantalla Integraciones de la aplicación para obtener un ID de conexión y un secreto de firma; el secreto se muestra una sola vez. La misma pantalla muestra la URL completa del punto de ingesta, que los ejemplos llaman DOCOMATIC_INGEST_URL.

POST /connectors/ingestEnvíe un archivo por solicitud (PDF, PNG o JPEG), o un cuerpo JSON con la URL pública de un archivo.

Firme cada solicitud con un HMAC-SHA256 del cuerpo sin procesar de la solicitud, usando el secreto de la conexión como clave, y envíelo en el encabezado X-Docomatic-Signature como sha256= seguido del resumen en hexadecimal. Un archivo que ya llegó se reconoce por su huella y no se importa dos veces. Si la conexión tiene activada la remediación al ingresar, cada documento nuevo se remedia al nivel que eligió.

Cómo se firma una solicitudCuatro pasos: el cuerpo sin procesar de la solicitud, un HMAC-SHA256 de ese cuerpo con el secreto de conexión como clave, el encabezado X-Docomatic-Signature con sha256= y el resumen hexadecimal, y el POST a /connectors/ingest que lleva ambos.Cuerpo sin procesarbytes del archivo, o el JSONHMAC-SHA256clave: el secretoX-Docomatic-Signaturesha256=<resumen hex>POST /connectors/ingestcuerpo + ambos encabezados
Firme exactamente los bytes que envía. Firmar el archivo cuando el cuerpo es JSON, o el JSON cuando el cuerpo es el archivo, es la causa más común de un 401.
1. Calcular la firmabash
# Connection id, signing secret and the ingest URL (ending in
# /connectors/ingest) come from the Integrations screen when
# you create a "Webhook / API" connection. The secret is shown once.
FILE=board-packet-2026-09.pdf

# HMAC-SHA256 of the exact bytes you will send, as hex.
SIG="sha256=$(openssl dgst -sha256 -hmac "$DOCOMATIC_SECRET" "$FILE" | sed 's/^.*= //')"
2. Enviar un archivobash
# Push the file itself. Accepted content types:
# application/pdf, image/png, image/jpeg.
# X-Source-Id is optional: a stable id of your own, so a
# changed file replaces the earlier version instead of
# becoming a second document.
curl -X POST "$DOCOMATIC_INGEST_URL" \
  -H "X-Docomatic-Connection: $DOCOMATIC_CONNECTION_ID" \
  -H "X-Docomatic-Signature: $SIG" \
  -H "X-File-Name: $FILE" \
  -H "X-Source-Id: board-packet-2026-09" \
  -H "Content-Type: application/pdf" \
  --data-binary "@$FILE"
3. O enviar una URL públicabash
# Or hand us a public URL instead of the bytes. The signature
# covers the raw JSON body, not the file. Private and link-local
# hosts are refused.
printf '%s' '{"url":"https://example.gov/agendas/2026-09.pdf"}' > body.json
SIG="sha256=$(openssl dgst -sha256 -hmac "$DOCOMATIC_SECRET" body.json | sed 's/^.*= //')"

curl -X POST "$DOCOMATIC_INGEST_URL" \
  -H "X-Docomatic-Connection: $DOCOMATIC_CONNECTION_ID" \
  -H "X-Docomatic-Signature: $SIG" \
  -H "Content-Type: application/json" \
  --data-binary "@body.json"

Firme el cuerpo JSON en lugar del archivo.

Qué devuelve una llamada correcta

201 CreatedJSON
{
  "outcome": "ingested",
  "documentId": "a551abb2-e141-4db9-aa84-3933abe8b4eb",
  "versionId": "63c06fc2-67c2-42bc-af56-a78178fc4551",
  "versionNo": 1,
  "sha256": "7d5371d3d9d5588cdb4c7851773488380aa8e9644001ad32ba5dad8084272746",
  "syncId": "d8aadb2f-4dfe-4761-9e23-4cd6e1add414"
}

outcome toma uno de tres valores:

  • ingested: se creó un documento nuevo y se envió por la canalización.
  • replaced: envió un X-Source-Id estable ya usado antes con bytes distintos, así que el documento existente recibió una versión nueva en lugar de un duplicado.
  • unchanged: idéntico byte a byte a un archivo que esta conexión ya ingirió. No se importó nada y no se cobra nada; se devuelve el documentId existente.

Qué puede fallar, y cómo lo sabrá

Cada rechazo es un 4xx con un cuerpo JSON que lleva un código error y, normalmente, una frase detail. Dos respuestas vienen del servidor web antes de que la solicitud llegue al punto de conexión y llevan statusCode y message en su lugar.

Respuestas de POST /connectors/ingest, por estado y código de error
EstadoCódigo de errorSignificadoQué hacer
400empty_bodyEl cuerpo de la solicitud estaba vacío.Envíe los bytes del archivo, o un cuerpo JSON con una url.
400missing_file_nameSe envió un archivo sin el encabezado X-File-Name.Agregue X-File-Name con el nombre y la extensión del archivo.
400invalid_bodyEl cuerpo JSON no tiene una cadena url, o un campo tiene la forma incorrecta.Envíe un objeto JSON con una cadena url; filename y sourceId son cadenas opcionales.
400url_not_allowedLa URL no es http(s), o apunta a un host privado, de bucle local o de enlace local.Use una URL que se resuelva públicamente.
400url_fetch_failedLa URL respondió, pero no con el archivo; detail lleva el estado HTTP del origen.Compruebe la URL en un navegador sin haber iniciado sesión en el sistema de origen.
401missing_credentialsNo se envió ni X-Docomatic-Connection con X-Docomatic-Signature ni un token de agente.Envíe ambos encabezados de la pantalla Integraciones.
401invalid_connectionNinguna conexión Webhook / API activa tiene ese ID; puede haberse desconectado.Revise la conexión en la pantalla Integraciones.
401invalid_signatureLa firma no coincide con el cuerpo sin procesar.Firme exactamente los bytes que envía con el secreto de esta conexión, y envíe sha256= más 64 caracteres hexadecimales.
409processing_pausedSu espacio de trabajo tiene pagos vencidos, así que la ingesta nueva está en pausa; un espacio suspendido o cerrado responde aquí también.Regularice la cuenta y vuelva a enviar.
413El cuerpo supera los 100 MB. Se rechaza antes de comprobar la firma.Divida el documento, o envíe una URL en lugar de los bytes.
415unsupported_typeEl tipo de contenido no es PDF, PNG ni JPEG.Convierta primero; DOCX, PPTX y XLSX no se aceptan en la ingesta hoy.
500El host de la URL no pudo alcanzarse en absoluto — fallo de DNS o sin ruta — y el servidor no lo tradujo a un 4xx.Compruebe que el host se resuelve desde la internet pública y vuelva a enviar.

La ingesta por webhook solo trae documentos. El estado, los informes y los archivos remediados están disponibles en la aplicación DocoMatic; todavía no hay una API para leerlos.

Honestos sobre los límites

Límites y versiones

Puntos de conexión de datos públicos
Sin clave ni cuenta, entre orígenes. Hoy no hay un límite de frecuencia publicado; son JSON en caché, así que consultar más rápido que la caché de cinco minutos devuelve los mismos bytes. Cada respuesta lleva un campo version, actualmente 1. Los campos pueden cambiar mientras estos puntos de conexión son jóvenes, así que lea solo los que necesite. Cuando se estabilicen, los versionaremos y lo diremos aquí.
Ingesta por webhook
Un archivo por solicitud y un cuerpo de como máximo 100 MB; un cuerpo mayor se rechaza con un 413 antes de leer la firma. Hoy no hay un límite de frecuencia publicado para la ingesta firmada ni una cuota por conexión. El tráfico de la aplicación con sesión iniciada está limitado a 600 solicitudes por minuto por espacio de trabajo, que nuestro equipo puede elevar; ese límite no cuenta los envíos de ingesta.
Cambios incompatibles
Todavía no hay una política formal de desuso. Esta página es el registro de cambios: cuando cambie un campo o un código de estado, la entrada y su fecha se agregan aquí, y la fecha del inicio de la página avanza.
OpenAPI
No hay un documento OpenAPI redactado para clientes. La referencia generada automáticamente por la API se enlaza desde la pantalla Integraciones una vez que tiene una conexión de webhook; describe toda la plataforma, incluidas rutas que usted no puede llamar, así que trate esta página como la referencia de lo que puede usar.

La lista de espera

Únase a la lista de espera de la API para desarrolladores

Deje su correo de trabajo y le escribiremos cuando haya una API para clientes lista para probar. Unirse lo agrega a una lista que mantenemos a mano: no hay respuesta automática, ni programa beta, ni fecha.

Nos ayuda a vincular su solicitud con los documentos públicos de su organización.

Con una o dos líneas basta. Orienta lo que construimos primero.

Al enviar este formulario acepta recibir correos electrónicos relacionados de DocoMatic. Puede darse de baja en cualquier momento.

Por página, en créditos

Precios

  • Los puntos de conexión de datos públicos son gratuitos. Los documentos que llegan por webhook se facturan como las cargas manuales: créditos por página según el nivel, solo cuando se remedian y solo por un resultado verificado. Si remedia para clientes, vea DocoMatic para agencias y consultores.

  • No se le cobra por un documento que no supera la verificación. Cómo funciona la regla de no cobro.

  • El pago con tarjeta llegará con el lanzamiento de nuestra facturación. Hoy, los planes y créditos se acuerdan por cotización y se pagan con orden de compra.

Preguntas frecuentes

Preguntas frecuentes

¿Quiere más que la ingesta?

Unirme a la lista de espera

¿Hay una API de DocoMatic que pueda usar hoy?

En parte. Los puntos de conexión de datos públicos están abiertos a cualquiera, y la ingesta por webhook firmado le permite enviar documentos a su espacio de trabajo. Todavía no hay una API para clientes para enviar trabajos, consultar el estado o descargar informes.

¿Cómo me autentico?

Los puntos de conexión de datos públicos no requieren autenticación. La ingesta por webhook se autentica por conexión: cada solicitud lleva el ID de conexión y una firma HMAC-SHA256 del cuerpo sin procesar, calculada con el secreto de esa conexión. Las claves de API en la configuración de su espacio de trabajo son tokens del agente de carpeta vigilada: una clave carga en una conexión de carpeta vigilada por el mismo punto de ingesta, y no puede hacer nada más.

¿Hay un entorno de pruebas?

No. Para probar la ingesta por webhook con seguridad, cree una conexión aparte con la remediación al ingresar desactivada: los archivos se importan, pero no se remedia ni se cobra nada a menos que usted decida remediar un documento.

¿Cuándo estará disponible una API completa?

No publicamos una fecha. Únase a la lista de espera en esta página y le contactaremos cuando haya algo para probar.

¿Dónde está la documentación?

Esta página documenta las superficies que existen: los puntos de conexión de datos públicos, y los encabezados, la firma, los formatos de solicitud, las respuestas y los códigos de error de la ingesta por webhook. Su ID de conexión y su secreto están en la pantalla Integraciones de la aplicación.

¿Qué devuelve el punto de ingesta?

Un 201 con el resultado (ingested, replaced o unchanged), los ID del documento y de la versión, el número de versión, el SHA-256 del archivo y un ID de sincronización. Un rechazo es un 4xx con un código de error y, normalmente, una frase de detalle; la tabla de esta página enumera cada código que emite el punto de conexión.

¿Cuáles son los límites de frecuencia?

Hoy no se publica ninguno para los puntos de conexión de datos públicos ni para la ingesta firmada. Los cuerpos de ingesta tienen un tope de 100 MB por solicitud. El tráfico de la aplicación con sesión iniciada está limitado a 600 solicitudes por minuto por espacio de trabajo, ajustable por nuestro equipo, y ese límite no cuenta los envíos de ingesta.

¿Hay una especificación OpenAPI?

No para clientes. La referencia generada automáticamente por la API, enlazada desde la pantalla Integraciones, cubre toda la plataforma, incluidas rutas que usted no puede llamar. Los puntos de conexión que puede usar están documentados en esta página; una API para clientes vendría con su propia especificación.

¿Puedo leer informes o el estado de los trabajos de forma programática?

Todavía no. Es lo principal que agregará la API para clientes, y la razón principal para unirse a la lista de espera. Hoy los informes se descargan desde la aplicación en PDF y JSON.