Pour les développeurs
Développer avec DocoMatic : ce qui fonctionne aujourd'hui
Il n'existe pas encore d'API client avec clés.
Aujourd'hui, vous pouvez lire nos données publiques sur l'accessibilité sans compte et envoyer des documents dans votre espace de travail avec un webhook signé.
Pour aller plus loin, inscrivez-vous à la liste d'attente et dites-nous ce que vous voulez bâtir.
Ce qui existe aujourd'hui
- Points de terminaison de données publiques
- Offert
- Sans clé ni compte. Échéances et statistiques d'organismes en JSON.
- Réception par webhook signé
- Offert
- Envoyez un fichier ou une URL publique dans votre espace de travail, signé par connexion.
- Clés d'API
- Téléversement seulement
- Pour l'agent de dossier surveillé. Une clé téléverse dans une connexion et ne peut rien faire d'autre.
- API client : tâches, état, rapports
- Liste d'attente
- Pas construite. Pas de date.
Où en sommes-nous
Où en est l'API
Mis à jour le 18 septembre 2026

Une API client complète — points de terminaison versionnés pour soumettre des documents et récupérer des rapports, clés à portée limitée, bac à sable et webhooks d'événements sortants — n'est pas offerte dans DocoMatic pour l'instant. Nous ne publions pas de date.
Les clés d'API dans les paramètres de votre espace de travail ne sont pas cette API. Une clé permet à l'agent de dossier surveillé DocoMatic de téléverser des documents dans une connexion de dossier surveillé, et rien d'autre : elle ne peut ni lire vos documents, ni modifier des paramètres, ni dépenser des crédits pour autre chose que les téléversements qu'elle effectue.
DocoMatic n'appelle pas vos systèmes. Rien n'avertit votre URL quand un document est terminé; vous consultez l'état dans l'application.
Ce que vous pouvez utiliser dès maintenant figure ci-dessous : les points de terminaison de données publiques et la réception par webhook signé, l'une de nos intégrations offertes. Pour tester un seul PDF à la main, utilisez le vérificateur d'accessibilité gratuit. Les deux font partie de la plateforme d'accessibilité des documents.
Données publiques · sans clé
Points de terminaison de données publiques
Du JSON en lecture seule, sans clé ni compte, servi depuis ce site. Utilisez-le pour citer des échéances ou afficher les statistiques de documents d'un organisme public.
GET /api/public/deadlines.jsonÉchéances de conformité en accessibilité pour les États-Unis, le Canada et l'UE, chacune avec l'URL de sa source primaire.# 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.jsonLes champs cohortKey et labelKey désignent nos propres chaînes de traduction, pas des libellés lisibles. Appuyez-vous sur regulation, jurisdiction et date, et suivez sourceUrl pour le libellé du règlement. Une entrée sur 7 est affichée.
{
"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}.jsonLa fiche d'un organisme public et les statistiques de son dernier balayage, par identifiant court ou par ID. Un organisme inconnu renvoie un 404 en JSON.# 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.jsonLes décomptes proviennent du balayage derrière la surveillance des documents : ce qui a été trouvé sur le site de l'organisme, par format et par catégorie, plus un taux de réussite sur échantillon. Les champs absents ici sont omis, pas cachés.
{
"error": "entity not found",
"id": "no-such-entity.json"
}{
"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"
}
}Les réponses sont en JSON et acceptent les requêtes inter-origines. Les champs peuvent changer tant que ces points de terminaison sont jeunes : ne lisez que ceux dont vous avez besoin.
Les réponses sont mises en cache cinq minutes dans le navigateur et jusqu'à une heure en périphérie; interroger plus souvent renvoie les mêmes octets.
Utiliser les données
Utiliser les données publiques d'échéances
deadlines.json est gratuit, sans clé et accessible inter-origines, et chaque entrée porte l'URL de sa source primaire. Utilisez-le sur une page intranet, dans un tableau de bord de conformité ou dans le portail client d'un cabinet-conseil.
- Ce que nous demandons
- Citez la source primaire, pas nous. La valeur, c'est que chaque échéance renvoie au règlement dont elle provient. Si vous l'attribuez à DocoMatic, faites un lien vers cette page pour que les gens puissent vérifier eux-mêmes.
- Ce que nous ne promettons pas
- Qu'il soit juridiquement complet pour votre territoire. C'est un catalogue avec ses sources, tenu parce que nous en avions besoin nous-mêmes. C'est votre conseiller juridique qui tranche.
Ceci n'est pas un avis juridique. DocoMatic publie ces données à titre d'information générale pour les équipes d'accessibilité, de gestion documentaire et de TI. Pour les décisions concernant les obligations de votre organisme, appuyez-vous sur les sources primaires liées dans chaque entrée et consultez votre avocat.
Corps → HMAC → en-tête → POST
Réception par webhook signé
Envoyez des documents dans votre espace de travail depuis vos propres systèmes. Créez une connexion Webhook / API sur l'écran Intégrations de l'application pour obtenir un identifiant de connexion et un secret de signature; le secret est affiché une seule fois. Le même écran affiche l'URL complète du point de réception, que les exemples appellent DOCOMATIC_INGEST_URL.
POST /connectors/ingestEnvoyez un fichier par requête (PDF, PNG ou JPEG), ou un corps JSON avec l'URL publique d'un fichier.Signez chaque requête avec un HMAC-SHA256 du corps brut de la requête, avec le secret de la connexion comme clé, et envoyez-le dans l'en-tête X-Docomatic-Signature sous la forme sha256= suivi de l'empreinte en hexadécimal. Un fichier déjà reçu est reconnu par son empreinte et n'est pas importé deux fois. Si la remédiation à l'arrivée est activée pour la connexion, chaque nouveau document est remédié au niveau que vous avez choisi.
# 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/^.*= //')"# 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"# 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"Signez le corps JSON plutôt que le fichier.
Ce qu'un appel réussi renvoie
{
"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 prend l'une de trois valeurs :
ingested— un nouveau document a été créé et envoyé dans le pipeline.replaced— vous avez renvoyé unX-Source-Idstable déjà utilisé avec des octets différents; le document existant a reçu une nouvelle version au lieu d'un doublon.unchanged— identique octet pour octet à un fichier déjà reçu par cette connexion. Rien n'a été importé et rien n'est facturé; ledocumentIdexistant est renvoyé.
Ce qui peut échouer, et comment vous le saurez
Chaque refus est un 4xx avec un corps JSON portant un code error et, en général, une phrase detail. Deux réponses viennent du serveur web avant que la requête n'atteigne le point de terminaison et portent plutôt statusCode et message.
| Statut | Code d'erreur | Signification | Quoi faire |
|---|---|---|---|
| 400 | empty_body | Le corps de la requête était vide. | Envoyez les octets du fichier, ou un corps JSON avec une url. |
| 400 | missing_file_name | Un fichier a été envoyé sans l'en-tête X-File-Name. | Ajoutez X-File-Name avec le nom et l'extension du fichier. |
| 400 | invalid_body | Le corps JSON n'a pas de chaîne url, ou un champ n'a pas la bonne forme. | Envoyez un objet JSON avec une chaîne url; filename et sourceId sont des chaînes facultatives. |
| 400 | url_not_allowed | L'URL n'est pas en http(s), ou pointe vers un hôte privé, de bouclage ou de lien local. | Utilisez une URL résolvable publiquement. |
| 400 | url_fetch_failed | L'URL a répondu, mais pas avec le fichier; detail contient le statut HTTP en amont. | Vérifiez l'URL dans un navigateur sans être connecté au système source. |
| 401 | missing_credentials | Ni X-Docomatic-Connection avec X-Docomatic-Signature, ni jeton d'agent n'a été envoyé. | Envoyez les deux en-têtes indiqués sur l'écran Intégrations. |
| 401 | invalid_connection | Aucune connexion Webhook / API active ne porte cet identifiant; elle a peut-être été déconnectée. | Vérifiez la connexion sur l'écran Intégrations. |
| 401 | invalid_signature | La signature ne correspond pas au corps brut. | Signez exactement les octets envoyés avec le secret de cette connexion, et envoyez sha256= suivi de 64 caractères hexadécimaux. |
| 409 | processing_paused | Votre espace de travail est en retard de paiement, donc la réception est suspendue; un espace suspendu ou fermé répond ici aussi. | Régularisez le compte, puis renvoyez. |
| 413 | — | Le corps dépasse 100 Mo. Refusé avant la vérification de la signature. | Scindez le document, ou envoyez une URL plutôt que les octets. |
| 415 | unsupported_type | Le type de contenu n'est ni PDF, ni PNG, ni JPEG. | Convertissez d'abord; DOCX, PPTX et XLSX ne sont pas acceptés en réception aujourd'hui. |
| 500 | — | L'hôte de l'URL est complètement injoignable — échec DNS ou aucune route — et le serveur n'a pas traduit cela en 4xx. | Vérifiez que l'hôte se résout depuis l'Internet public, puis renvoyez. |
La réception par webhook ne fait qu'apporter des documents. L'état, les rapports et les fichiers remédiés sont accessibles dans l'application DocoMatic — il n'y a pas encore d'API pour les lire.
Honnêtes sur les limites
Limites et versions
- Points de terminaison de données publiques
- Sans clé ni compte, inter-origines. Aucune limite de débit n'est publiée pour l'instant; ce sont des JSON en cache, donc interroger plus vite que le cache de cinq minutes renvoie les mêmes octets. Chaque réponse porte un champ
version, actuellement à 1. Les champs peuvent changer tant que ces points de terminaison sont jeunes : ne lisez que ceux dont vous avez besoin. Quand ils se stabiliseront, nous les versionnerons et le dirons ici. - Réception par webhook
- Un fichier par requête, et un corps d'au plus 100 Mo; un corps plus gros est refusé avec un 413 avant même la lecture de la signature. Aucune limite de débit n'est publiée pour la réception signée aujourd'hui, ni de quota par connexion. Le trafic de l'application avec session ouverte est limité à 600 requêtes par minute par espace de travail, ce que notre équipe peut relever; cette limite ne compte pas les envois de réception.
- Changements incompatibles
- Il n'y a pas encore de politique formelle de dépréciation. Cette page tient lieu de journal des changements : quand un champ ou un code de statut change, l'entrée et sa date sont ajoutées ici, et la date en haut de la page avance.
- OpenAPI
- Il n'existe pas de document OpenAPI rédigé pour les clients. La référence générée automatiquement par l'API est liée depuis l'écran Intégrations une fois que vous avez une connexion webhook; elle décrit toute la plateforme, y compris des routes que vous ne pouvez pas appeler. Considérez donc cette page comme la référence de ce que vous pouvez utiliser.
La liste d’attente
Inscrivez-vous à la liste d'attente de l'API pour développeurs
Laissez votre courriel professionnel et nous vous écrirons quand une API client sera prête à essayer. L'inscription vous ajoute à une liste tenue à la main : pas de réponse automatique, pas de programme bêta, pas de date.
Vous achetez pour une grande organisation?
Réserver une démo de 20 minutes(s'ouvre dans un nouvel onglet)À la page, en crédits
Tarifs
Les points de terminaison de données publiques sont gratuits. Les documents reçus par webhook sont facturés comme les téléversements manuels — des crédits par page selon le niveau, seulement quand ils sont remédiés et seulement pour un résultat vérifié. Si vous remédiez pour des clients, voyez DocoMatic pour les agences et les consultants.
Vous n'êtes pas facturé pour un document qui échoue à la vérification. Comment fonctionne la règle de non-facturation.
Le paiement par carte arrivera avec le lancement de notre facturation. Aujourd'hui, les forfaits et les crédits sont établis par devis et payés par bon de commande.
Existe-t-il une API DocoMatic que je peux utiliser aujourd'hui?
Comment m'authentifier?
Y a-t-il un bac à sable?
Quand une API complète sera-t-elle offerte?
Où est la documentation?
Que renvoie le point de réception?
Quelles sont les limites de débit?
Y a-t-il une spécification OpenAPI?
Puis-je lire les rapports ou l'état des tâches par programme?
La suite
Vous voulez plus que la réception?
Inscrivez-vous à la liste d'attente et dites-nous ce que vous voulez bâtir, ou connectez une source dès aujourd'hui sur la page des intégrations — qui fait partie de la plateforme d'accessibilité des documents.
