Démarrage rapide

De zéro à votre premier résultat en cinq étapes.

1. Créez un compte

Inscrivez-vous sur app.hotdoc.io — aucune carte bancaire requise.

2. Créez une clé API hotdoc

Dans le tableau de bord, sous « API keys ». La clé complète n’est affichée qu’une seule fois, à sa création — enregistrez-la. Format : hotdoc_<id>.<secret>.

3. Préparez vos clés BYOK

Le traitement de documents nécessite deux clés :

  • Clé du fournisseur de modèle (neural.apiKey) — issue de l’un des fournisseurs pris en charge : OpenAI, Anthropic (Claude), xAI (Grok), Together, DeepSeek, Xiaomi ou OpenRouter. Utilisée à l’étape LLM.
  • Clé du fournisseur OCR (ocr.providerKey) — une clé BYOK pour l’étape OCR. Transmettez le fournisseur via ocr.provider (par ex. NEURAL_CLIENT_TYPE_MISTRAL) et le modèle via ocr.model (par ex. mistral-ocr-latest). Requise à chaque requête.

Les deux clés ne sont acceptées qu’en entrée ; aucune n’est stockée en clair — les copies chiffrées sont supprimées en même temps que le job (~7 jours).

4. Créez un job

Transmettez les URL de vos fichiers, vos prompts et la configuration du modèle :

curl -X POST https://api.hotdoc.io/v1/jobs \
  -H "Authorization: Bearer hotdoc_<id>.<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "sourceUrls": ["https://example.com/invoice.pdf"],
    "title": "Invoice #42",
    "prompts": ["Extract the invoice number, date, supplier, line items, and total. Return strict JSON."],
    "ocr": { "provider": "NEURAL_CLIENT_TYPE_MISTRAL", "model": "mistral-ocr-latest", "providerKey": "<YOUR_KEY>" },
    "neural": {
      "type": "NEURAL_CLIENT_TYPE_XIAOMI",
      "model": "mimo-v2-flash",
      "apiKey": "<YOUR_PROVIDER_KEY>",
      "reasoningEffort": "low"
    }
  }'

Quel modèle utiliser ? Comparez l’intelligence, le prix par token et les fournisseurs dans le comparatif LLM, puis choisissez le modèle adapté.

Vous recevrez en retour un job au statut JOB_STATUS_NEW, avec son id.

5. Attendez le résultat

Interrogez le statut du job jusqu’à ce qu’il atteigne un état terminal (JOB_STATUS_COMPLETE, JOB_STATUS_PARTIAL ou JOB_STATUS_FAILED) :

curl https://api.hotdoc.io/v1/jobs/JOB_ID \
  -H "Authorization: Bearer hotdoc_<id>.<secret>"

Une fois le job terminé, récupérez le résultat complet avec le texte reconnu et les réponses du modèle :

curl https://api.hotdoc.io/v1/jobs/JOB_ID/result \
  -H "Authorization: Bearer hotdoc_<id>.<secret>"

Exemple de réponse :

{
  "result": {
    "job": { "status": "JOB_STATUS_COMPLETE" },
    "ocr": [{ "status": "JOB_OCR_STATUS_DONE", "content": "<p>Invoice #42 dated 2026-06-01…</p>" }],
    "llm": [{ "status": "JOB_LLM_STATUS_DONE", "content": "{\"number\": \"42\", \"date\": \"2026-06-01\", \"total\": \"15000\"}" }]
  }
}

Vous n’êtes pas obligé d’héberger le fichier à une URL publique — vous pouvez l’envoyer directement. Voir « Envoi de fichiers ».

Exemples de chaînes model

Transmises telles quelles au fournisseur (à jour au 2026-06-17, vérifiez le catalogue du fournisseur) : Xiaomi — mimo-v2-flash (vérifié) ; OpenAI — gpt-4o-mini ; Anthropic — claude-3-5-sonnet-latest. hotdoc ne valide pas cette valeur — en cas de faute de frappe, le fournisseur renvoie une erreur dans llm[].error.