Intégrations IA/API des outils Ofrr.io

API des outils Ofrr.io

Découvrez et exécutez les outils d’offre Ofrr.io depuis la même API que le MCP et la CLI.

L’API REST, le serveur MCP et la CLI utilisent un registre unique. Le schéma d’entrée, les permissions, la logique métier et la trace d’audit restent donc identiques sur les trois surfaces.

Points d’entrée

GET  /api/v1/tools
GET  /api/v1/tools/:name
POST /api/v1/tools/:name
GET  /api/v1/skills
GET  /api/v1/skills/:name
  • GET /api/v1/tools retourne uniquement les outils autorisés pour la connexion.
  • GET /api/v1/tools/:name retourne le JSON Schema d’un outil.
  • POST /api/v1/tools/:name valide puis exécute l’outil.

Les alias REST déclarés dans le registre, comme GET /api/v1/proposals/:proposalId, appellent exactement les mêmes handlers. Les alias /api/v1/skills exposent la liste des playbooks et leur contenu sans dupliquer leur définition.

Authentification

Créez une clé dans Réglages → Clés API, puis envoyez-la comme jeton bearer :

Authorization: Bearer VOTRE_CLE

L’en-tête x-api-key reste également accepté. Un jeton OAuth créé lors d’une connexion MCP se transmet avec le même en-tête Authorization.

Le justificatif détermine l’organisation et les permissions : ne transmettez jamais d’identifiant d’organisation dans le corps.

Outils d’offre

OutilPermission requise
search_proposalsofrr.proposals.read
get_proposalofrr.proposals.read
get_proposal_historyofrr.proposals.read
explain_priceofrr.proposals.read
get_skillAuthentification uniquement
create_proposal_from_briefofrr.proposals.drafts.write
update_proposalofrr.proposals.drafts.write
recalculate_proposalofrr.proposals.commercial.write
create_proposal_versionofrr.proposals.publish
publish_proposalofrr.proposals.publish
set_proposal_statusofrr.proposals.status.write
record_proposal_eventofrr.proposals.status.write
trash_proposalofrr.proposals.trash
restore_proposalofrr.proposals.trash

La lecture du nom ou de l’e-mail d’un contact demande en plus ofrr.proposals.contacts.read.

Exécution

curl https://ofrr.io/api/v1/tools/create_proposal_from_brief \
  -H "Authorization: Bearer VOTRE_CLE" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Refonte du site Acme",
    "brief": "Le client veut refondre son site vitrine de douze pages..."
  }'

Une réponse réussie place le résultat sous data. Une entrée invalide retourne 400, un justificatif absent ou expiré 401, une permission manquante 403 et un outil inconnu 404.

Actions sensibles

publish_proposal exige confirmPublication: true. Une publication crée un instantané immuable ; toute évolution commerciale passe ensuite par create_proposal_version.

set_proposal_status exige une vraie référence externalActionId pour passer une offre au statut sent. Cela permet à un agent de refléter un e-mail qu’il a réellement envoyé depuis un autre service, sans attribuer cet envoi à Ofrr.io.

trash_proposal place l’offre dans une corbeille récupérable. La restauration utilise restore_proposal.

CLI

export OFRR_API_KEY="VOTRE_CLE"
pnpm tools list
pnpm tools run search_proposals '{"query":"Acme"}'

Consultez le registre commun pour les garanties de cohérence, le guide universel Agents IA, ou les guides Codex, Claude, Cursor et ChatGPT.