Voici RakeSign: la signature de documents gratuite et illimitée

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.

Retour aux notes
En bref
  • Six capacités, une seule surface. Extraire, caviarder, composer, remplir, réviser, signer. Chacune est un POST qui 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 citations et 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/api sur npm, cloudraker sur PyPI, le CLI paperwork, 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/extractExtraire

Sortir 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/redactCaviarder

Retirer 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/composeComposer

Gé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/fillRemplir

Complé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éviser

La révision devient une collaboration. Modifier, suggérer, accepter, refuser, exporter, avec les changements suivis dans le document lui-même.

POST /v1/signSigner

Emballer 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/api ou pip install cloudraker. client.extract({ file, schema }), c’est la requête ci-dessus en une ligne.
  • Terminal. Le CLI paperwork exé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

extract + process · un appel de clinicien devient une note structurée et citée

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

extract · les champs de n’importe quelle facture, avec l’arithmétique vérifiée

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

extract · unit: across_documents · plusieurs fichiers se replient en un seul dossier

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é

redact · renseignements personnels retirés d’un PDF ou d’un enregistrement, pour de bon

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

fillsign · lire une police, rédiger un certificat, l’envoyer pour signature

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

classifysplitextract · un PDF numérisé devient un fichier par document

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.