Voici l’API Paperwork : toute la plateforme, une seule surface
Trois jours de modèles et de produits. Aujourd’hui, l’API qui les relie. Six capacités, un seul patron d’appel, des preuves à chaque étape, et un dépôt d’exemples exécutables à copier sans gêne.
- Six capacités, une seule surface. Extraire, caviarder, composer, remplir, réviser, signer. Chacune est un
POSTqui prend un fichier et retourne un run. Même authentification, même objet run, mêmes webhooks. - Une preuve à côté de chaque valeur. Demandez des
citationset chaque champ extrait revient avec la page et la région d’où il vient, un code temporel pour l’audio, ou un introuvable explicite. Jamais une supposition. - Des webhooks fiables. Chaque livraison est un JWT signé avec notre clé privée et vérifié contre un JWKS public. Aucun secret partagé à stocker ni à faire tourner.
- SDK, CLI, MCP.
@cloudraker/apisur npm,cloudrakersur PyPI, le CLIpaperwork, et un serveur MCP pour qu’un agent utilise les six mêmes verbes. - Six exemples exécutables. De vraies applications, pas des extraits, sur GitHub sous licence MIT. Clonez,
bun install, ajoutez une clé. Une vidéo accompagne chacun ci-dessous.
Cette semaine, on a livré les morceaux. Lundi, rakedoc-nano, le modèle de vision à poids ouverts qui lit la page. Mardi, RakeSign, la signature électronique gratuite et illimitée, en même temps que notre rapport SOC 2 Type 2. Mercredi, rakeaudio-asr, parce qu’une conversation est aussi un document.
Aujourd’hui, c’est l’ensemble. L’API Paperwork, c’est la surface derrière laquelle ces morceaux s’assemblent, et c’est ce qu’on bâtit depuis deux ans sans jamais l’avoir vraiment annoncé. Chaque entreprise roule sur la paperasse, et chaque bout de paperasse se ramène aux mêmes actions répétables. Cette API les fait toutes.
Six capacités
Chacune est un seul POST. Chacune prend un fichier (une URL, ou l’identifiant d’un fichier déjà téléversé) et retourne un run. Les runs partagent un seul modèle de statut, une seule expiration, un seul contrat de webhook. Apprenez-en une, vous connaissez les six.
POST /v1/extractExtraireSortir les faits de n’importe quel document ou fichier audio en JSON, selon votre schéma. Chaque valeur pointe vers l’endroit exact d’où elle vient.
POST /v1/redactCaviarderRetirer les renseignements personnels pour de bon. Le texte est coupé du flux PDF, l’audio est masqué par un bip et la transcription réécrite. Disparu du fichier, pas caché sous une boîte.
POST /v1/composeComposerGénérer de nouveaux documents à partir de vos gabarits, vérifiés contre vos données, pour que la lettre dise ce que le dossier dit.
POST /v1/fillRemplirCompléter des formulaires automatiquement à partir d’un document source, de la même façon à chaque fois. Chaque valeur écrite revient regroupée par la case où elle est allée.
redlineRéviserLa révision devient une collaboration. Modifier, suggérer, accepter, refuser, exporter, avec les changements suivis dans le document lui-même.
POST /v1/signSignerEmballer un document dans une enveloppe à signer, envoyer un courriel aux signataires, et recevoir un PDF scellé, juridiquement contraignant, avec sa piste d’audit.
En dessous, les primitives : parse transforme un PDF, un scan, un fichier bureautique ou un enregistrement en texte et en structure propres, classify trouve les frontières entre documents dans une liasse, et split coupe le long de ces frontières sans appel de modèle. Les pipelines exécutent plusieurs capacités sur un même ensemble de fichiers en un seul appel, en analysant chaque fichier une seule fois. Et les agents enchaînent des étapes avec une approbation humaine intégrée, pour les flux où quelqu’un doit regarder avant que quelque chose parte.
Un appel, avec des preuves
Voici toute l’idée en une requête. Un document entre avec un schéma JSON. Les données ressortent selon le schéma, et comme citations est activé, chaque champ porte la page et la région d’où il a été lu.
curl -X POST https://api.cloudraker.com/v1/extract \
-H "Authorization: Bearer $CLOUDRAKER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file": { "url": "https://example.com/invoice.pdf", "name": "invoice.pdf" },
"citations": true,
"schema": {
"type": "object",
"properties": {
"vendor": { "type": ["string", "null"] },
"total": { "type": ["number", "null"] }
}
}
}'
{
"output": {
"value": { "vendor": "Northwind Fabrication Ltd", "total": 16796.70 },
"citations": {
"total": [
{ "fileId": "fil_…", "page": 0,
"bbox": { "x": 0.71, "y": 0.62, "width": 0.11, "height": 0.02 },
"text": "16,796.70", "confidence": 5 }
]
}
}
}
Un enregistrement est cité de la même façon, avec un timecode en secondes au lieu d’une page. Un champ que le document ne contient pas revient à null avec une citation notFound. Avec les citations activées, chaque champ rempli est cité ou déclaré absent. Il n’y a pas de troisième état.
L’appel reste ouvert jusqu’à la fin du run, jusqu’à deux minutes. Si le document est lent, vous recevez un 202 et un identifiant de run plutôt qu’un délai dépassé. Pointez un webhook sur la requête et le run terminé vous arrive comme un événement signé : un JWT que vous vérifiez contre notre JWKS public, avec un hachage du corps pour qu’une signature valide ne puisse pas être rejouée sur une autre charge utile.
Pas encore de schéma? Omettez-le, envoyez une phrase de hints, et la plateforme en déduit un et le rapporte sur le run pour que vous puissiez le sauvegarder. Prototypez avec des indices, livrez avec un schéma.
Les six mêmes verbes pour les humains, le code et les agents
L’API est l’une de trois portes d’entrée, et elles partagent tout.
- Code.
npm install @cloudraker/apioupip install cloudraker.client.extract({ file, schema }), c’est la requête ci-dessus en une ligne. - Terminal. Le CLI
paperworkexécute chaque capacité depuis un script shell ou une tâche cron. - Agents. Le serveur MCP expose les mêmes verbes à Claude, ou à n’importe quel agent, avec les mêmes citations en retour. On a écrit sur donner un outil de paperasse à un agent le mois dernier.
Tout roule sur une infrastructure canadienne, et le rapport SOC 2 Type 2 publié cette semaine couvre l’ensemble.
Six exemples que vous pouvez exécuter
Les extraits de code mentent. Ils sautent le téléversement, l’interrogation, le serveur de webhook, le moment où il faut vérifier le résultat. On a donc publié six applications exécutables à la place, sur github.com/CloudRaker/cloudraker-api-examples-typescript. Chacune est une petite application Bun avec une page web, autonome, sous licence MIT. Clonez, bun install, mettez votre clé dans .env, bun app.ts.
Chaque exemple choisit un verbe différent, un type d’entrée différent, et une façon différente de prouver le résultat. Il y a une courte vidéo pour chacun.
Notes d’appel médical
Téléversez un enregistrement, recevez le motif de consultation, les médicaments, l’évaluation, le plan. Le même audio de trois façons : le point d’accès process avec un webhook signé pour la production, un schéma en ligne pour le contrôle, des indices en prose pour la vitesse. Chaque champ renvoie au moment de l’appel où le patient l’a dit.
Extraction de factures
PDF, Word, Excel ou scan. La forme vient d’un schéma, d’une action installée ou d’une phrase d’indices. Ensuite, la page vérifie la facture contre elle-même : les lignes font-elles le sous-total, le sous-total plus les taxes fait-il le total. De l’arithmétique de base qui attrape les erreurs d’extraction, et ça marche encore.
Extraction de baux
Un bail, un résumé et une fiche sur la même propriété, fusionnés en un seul dossier. Quand deux documents se contredisent, des règles déterministes choisissent un gagnant et la révision liste chaque conflit, ce que chaque fichier disait, et lequel a gagné. Pas de favori choisi en douce.
Caviardage en santé
Destructif, pas cosmétique. Les catégories disent ce qui compte comme sensible, les règles maison disent à qui, et une action sauvegardée porte la politique de l’organisation. L’exemple documente aussi le mieux la vérification de signature des webhooks : JWT ES256, JWKS public, hachage du corps. Copiez-le en production.
Certificat d’assurance
Deux appels avec un humain entre les deux, exprès. Fill lit la police et remplit les cases du certificat. Une personne vérifie chaque valeur. Puis sign envoie un courriel aux signataires et retourne le PDF scellé. C’est la forme de la plupart des bonnes automatisations documentaires, en miniature.
Séparer une liasse
Classify en mode page trouve les frontières, split coupe le long de celles-ci sans appel de modèle, et extract s’exécute sur chaque enfant avec des indices choisis selon la classe. Trois appels, une liasse, chaque page comptabilisée.
Chacun est assez petit pour se lire d’une traite et conçu pour être copié.
Pour commencer
export CLOUDRAKER_API_KEY="sk_…"
git clone https://github.com/CloudRaker/cloudraker-api-examples-typescript
cd cloudraker-api-examples-typescript/medical-call-notes
bun install
echo "RAKERONE_API_KEY=$CLOUDRAKER_API_KEY" > .env
bun app.ts
Référence complète pour chaque capacité, les webhooks, les pipelines et les agents : docs.cloudraker.com. Tarifs : cloudraker.com/fr/tarifs. Obtenez une clé d’API sur signup.cloudraker.com.
Semaine de lancement : Jour 1, rakedoc-nano · Jour 2, RakeSign · SOC 2 Type 2 · Jour 3, rakeaudio-asr · Jour 4, l’API Paperwork.