L’API WorkHive
Les 18 outils de WorkHive sont appelables en HTTP, avec les mêmes prompts et les mêmes résultats que dans l’application. Envoyez du JSON, recevez du JSON.
L’accès API est inclus dans le plan Pro. Chaque appel apparaît dans votre historique, comme s’il avait été lancé depuis l’interface.
Démarrer
Créez une clé depuis Compte → Accès API. Elle n’est affichée qu’une seule fois : copiez-la immédiatement, elle n’est pas récupérable ensuite. Si vous la perdez, révoquez-la et créez-en une autre.
Vérifiez ensuite votre câblage sans dépenser d’appel — cet endpoint ne consomme rien :
curl https://workhive.tools/api/v1/me \
-H "Authorization: Bearer wh_live_VOTRE_CLE"{
"plan": "pro",
"api_access": true,
"usage": {
"used": 12,
"limit": 1000,
"remaining": 988,
"resets_at": "2026-09-01T00:00:00.000Z"
}
}Authentification
Chaque requête porte sa clé dans l’en-tête Authorization. Il n’y a pas de session : la clé suffit, et elle vaut pour toute la durée de vie qu’on lui laisse.
Authorization: Bearer wh_live_...Une clé donne accès à tout ce que votre compte peut faire. Traitez-la comme un mot de passe : jamais dans un dépôt Git, jamais dans du code exécuté par un navigateur. Créez plutôt une clé par usage — vous pouvez en révoquer une sans casser les autres.
Appeler un outil
Un seul verbe, un seul chemin : POST /api/v1/tools/{outil}. Les champs attendus dépendent de l’outil et sont listés plus bas.
curl -X POST https://workhive.tools/api/v1/tools/analyze \
-H "Authorization: Bearer wh_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{
"contract": "Article 1 — Le prestataire cède l'\''intégralité de ses droits...",
"perspective": "le prestataire",
"lang": "fr"
}'La réponse contient le résultat de l’outil, plus votre consommation à jour :
{
"tool": "analyze",
"result": {
"contract_type": "Contrat de prestation",
"safety_score": 42,
"executive_summary": "…",
"red_flags": [ { "clause_name": "Cession de droits", "severity": "critical", … } ],
"overall_recommendation": "…"
},
"saved_to_history": true,
"usage": { "used": 13, "limit": 1000 }
}saved_to_history vaut false si l’enregistrement a échoué. L’appel reste un succès et le résultat est bien renvoyé — mais vous ne le retrouverez pas dans l’historique.
Envoyer un fichier
Trois outils acceptent un fichier au lieu du texte : analyze, tac et cvtailor. Encodez-le en base64 dans fileData, avec son type MIME dans fileType.
{
"fileData": "JVBERi0xLjQKJcfs...",
"fileType": "application/pdf",
"fileName": "contrat-acme.pdf"
}Formats acceptés : PDF, Word (.docx, .doc), texte brut, et les images JPEG, PNG, GIF, WebP — une photo de contrat est lue directement. Maximum 10 Mo. Un fichier illisible renvoie un invalid_request et n’est pas décompté.
Limites
1000 appels par mois, remis à zéro le 1er. Les appels en erreur ne sont pas décomptés : une panne de notre côté ou un fichier illisible n’a rien livré. Le compteur est renvoyé dans chaque réponse et dans les en-têtes X-RateLimit-*.
Une limite de rafale s’applique aussi, par compte. Si vous la dépassez, l’API répond 429 avec un en-tête Retry-After en secondes — attendez ce délai plutôt que de réessayer immédiatement.
Un appel peut prendre jusqu’à une minute : les outils génèrent parfois plusieurs milliers de mots. Prévoyez un timeout large côté client.
Erreurs
Toutes les erreurs ont la même forme. Branchez votre logique sur code, jamais sur message : le code est stable, le message peut être reformulé.
{
"error": {
"code": "quota_exceeded",
"message": "Plafond mensuel atteint (1000/1000 appels). …",
"docs": "https://workhive.tools/docs/api#quota_exceeded"
}
}forbidden403Clé valide, mais le plan ne donne pas accès à l’API.not_found404L’outil demandé n’existe pas. La liste est sur GET /api/v1/tools.invalid_request400Corps illisible, champ requis manquant, ou fichier impossible à lire.quota_exceeded429Plafond mensuel atteint. Réessayez après la date de remise à zéro.plan_limit_exceeded429Quota d’analyses du plan atteint.rate_limited429Trop d’appels sur une courte fenêtre. Respectez Retry-After.upstream_error502Le modèle a échoué ou renvoyé une réponse inexploitable. Réessayable.server_error500Erreur inattendue de notre côté.Les 18 outils
Cette liste est générée depuis le code : elle est exacte par construction. Vous pouvez la récupérer au format JSON avec GET /api/v1/tools, ce qui évite de la coder en dur de votre côté.
analyzeLegalEyeAnalyse un contrat clause par clause : score de sûreté, clauses à risque expliquées en clair, et contre-propositions. Accepte du texte, un PDF, un Word ou une photo.
contractoptionnelTexte du contrat. Requis si aucun fichier n’est fourni.fileDataoptionnelFichier encodé en base64 (PDF, Word, texte ou image). Alternative à « contract ».fileTypeoptionnelType MIME du fichier. Obligatoire avec « fileData ».fileNameoptionnelNom du fichier, repris comme libellé dans l’historique.perspectiveoptionnelPartie dont on adopte le point de vue (ex. « le prestataire »).langoptionnelLangue de l’analyse : fr, en ou de. Par défaut, celle du contrat.comparisonIdoptionnelIdentifiant partagé pour relier deux analyses comparées.comparisonLabeloptionnelLibellé de l’analyse dans une comparaison.biocraftBio CraftRédige cinq biographies professionnelles du même profil, une par contexte (LinkedIn, site web, dossier de presse, conférence, signature email).
titlerequisTitre ou poste actuel.experiencerequisExpérience et domaines d’expertise.nameoptionnelNom de la personne.achievementsoptionnelRéalisations clés à mettre en avant.toneoptionnelTon souhaité. Par défaut « Professionnel et accessible ».briefdecoderBrief DecoderTransforme un brief client flou en plan structuré : objectif SMART, livrables, planning, questions à poser et risques identifiés.
briefrequisLe brief à décoder, tel que reçu du client.contextoptionnelContexte additionnel (secteur, historique, contraintes).businessplanBusiness PlanProduit un business plan complet à partir d'une idée : marché, modèle économique, projections à 3 ans, risques et prochaines étapes.
idearequisL'idée ou le concept d'entreprise.sectoroptionnelSecteur d'activité.targetoptionnelCible principale visée.budgetoptionnelBudget de démarrage. Par défaut « Faible (bootstrap) ».locationoptionnelLocalisation. Par défaut « France ».clausebuilderClause BuilderRédige une clause contractuelle sur mesure pour une situation donnée, avec ses variantes, ses limites légales et les clauses à prévoir en complément.
situationrequisLa situation que la clause doit couvrir.contract_typeoptionnelType de contrat visé. Par défaut « Contrat de prestation de services freelance ».perspectiveoptionnelPartie à protéger. Par défaut « Prestataire (se protéger) ».coldemailCold EmailÉcrit un email de prospection B2B et ses deux relances, avec conseils de personnalisation et moment d'envoi recommandé.
offerrequisCe que tu proposes, et qui tu es.prospectrequisLe prospect visé.senderoptionnelTon nom ou celui de ton entreprise.sectoroptionnelSecteur du prospect.pain_pointoptionnelProblème principal du prospect.competitorintelCompetitor IntelAnalyse le paysage concurrentiel d'une activité : positionnement, forces et faiblesses de chaque concurrent, opportunités et actions recommandées.
companyrequisNom de ton entreprise.marketrequisMarché ou secteur d'activité.descriptionoptionnelCe que fait ton entreprise.competitors_knownoptionnelConcurrents que tu identifies déjà.differentiatoroptionnelTon facteur de différenciation actuel.cvtailorCV TailorRéécrit un CV pour une entreprise et un poste précis, sans jamais inventer d'expérience : score d'adéquation, CV optimisé, liste des changements et mots-clés retenus.
companyrequisEntreprise visée.cvTextoptionnelTexte du CV. Requis si aucun fichier n’est fourni.fileDataoptionnelCV encodé en base64 (PDF, Word, texte ou image). Alternative à « cvText ».fileTypeoptionnelType MIME du fichier. Obligatoire avec « fileData ».fileNameoptionnelNom du fichier.roleoptionnelPoste visé.jobDescriptionoptionnelDescription du poste, utilisée pour en reprendre les mots-clés.debtrecoveryDebt RecoveryRédige la séquence complète de relance d'un impayé : relance amiable, mise en demeure et courrier avant contentieux, avec les délais et recours applicables.
amountrequisMontant impayé.debtorrequisNom du client débiteur.creditoroptionnelTon nom ou celui de ton entreprise.invoice_refoptionnelRéférence de la facture.due_dateoptionnelDate d'échéance.contextoptionnelContexte utile (relances déjà faites, litige en cours…).docgenDoc GeneratorGénère un document professionnel complet (contrat, attestation, courrier…) prêt à relire, à partir d'un type et des informations fournies.
docTyperequisType de document à générer (ex. « Contrat de prestation »).fieldsrequisObjet clé/valeur des informations à intégrer (parties, montants, dates…).languagerequisLangue du document : « fr » ou « en ».emailcraftEmail CraftTransforme des points clés en email professionnel abouti, dans le ton et la langue demandés.
purposerequisObjet de l'email, ce qu'il doit obtenir.pointsrequisPoints clés à inclure, en vrac.recipientoptionnelDestinataire.toneoptionnelformal, friendly, assertive, follow-up ou cold-email. Par défaut « professional ».languageoptionnelLangue de rédaction. Par défaut « French ».sender_nameoptionnelNom de l'expéditeur, utilisé dans la signature.sender_roleoptionnelFonction de l'expéditeur.legalwatchLegal WatchDresse la veille réglementaire d'un secteur : ce qui a changé, l'impact opérationnel de chaque évolution et l'action à prévoir.
sectorrequisSecteur d'activité à surveiller.structureoptionnelStructure juridique (micro-entreprise, SASU, SARL…).sizeoptionnelTaille de l'entreprise.concernsoptionnelPréoccupations réglementaires particulières.linkedinghostLinkedIn GhostÉcrit un post LinkedIn prêt à publier à partir d'une idée : accroche isolée, hashtags, portée estimée et conseils d'engagement.
idearequisIdée, expérience ou sujet à partager.expertiseoptionnelTon expertise ou le contexte utile.toneoptionnelinspirant, educatif, storytelling, provocateur ou expert.audienceoptionnelAudience visée. Par défaut « Freelances, entrepreneurs, PME ».pitchdeckPitch Deck AIStructure un pitch deck investisseur de 10 slides, contenu et notes d'orateur compris.
companyrequisNom de la société ou du projet.problemrequisProblème résolu.solutionoptionnelSolution proposée.marketoptionnelMarché visé.business_modeloptionnelModèle économique.tractionoptionnelTraction et métriques actuelles.teamoptionnelL'équipe.askoptionnelMontant recherché et usage des fonds.languageoptionnelLangue du deck. Par défaut « French ».pricingaiPricing AIRecommande un tarif pour une prestation, avec fourchette, arguments de défense du prix, réponses aux objections et conseils de négociation.
servicerequisLa prestation à tarifer.experienceoptionnelTon niveau d'expérience.locationoptionnelLocalisation. Par défaut « France ».durationoptionnelDurée ou fréquence de la mission.extrasoptionnelInformations complémentaires utiles.proposalProposal AIRédige une proposition commerciale complète : problème reformulé, solution, livrables, planning, tarifs et conditions, prête à envoyer.
projectrequisDescription du projet.freelanceroptionnelToi, le prestataire.clientoptionnelLe client destinataire.budgetoptionnelBudget estimé. Par défaut « À définir ».deadlineoptionnelDélai souhaité.extrasoptionnelInformations complémentaires.rgpdcheckerRGPD CheckerAudite un document (politique de confidentialité, CGU, mentions légales) point par point face au RGPD et renvoie un score, les écarts et les actions prioritaires.
textrequisTexte intégral du document à auditer.tacT&C AnalyzerDécode des CGU ou une politique de confidentialité : score de confiance, clauses problématiques expliquées en clair, verdict. Accepte du texte, un PDF, un Word ou une photo.
textoptionnelTexte des conditions à analyser. Requis si aucun fichier n’est fourni.fileDataoptionnelFichier encodé en base64 (PDF, Word, texte ou image). Alternative à « text ».fileTypeoptionnelType MIME du fichier. Obligatoire avec « fileData ».fileNameoptionnelNom du fichier.1000 appels par mois, les 18 outils, sans surcoût.
Voir les tarifs