Okouro doc

Okouro expose une API REST JSON. Tout ce que l’application web peut faire, vos propres intégrations peuvent le faire aussi : gérer les personnes, suivre le temps, exécuter des missions, faire avancer les affaires dans le pipeline et lire les KPI. Ce guide explique comment utiliser l’API et comment accomplir les tâches courantes avec elle. Pour la liste exhaustive des points de terminaison et de leurs schémas, utilisez la Référence de l’API interactive.

URL de base

Chaque point de terminaison s’adresse depuis une unique URL de base, sans préfixe /api :

https://api.okouro.com

Lorsque vous exécutez Okouro en local, l’URL de base est http://localhost:8080. Tous les exemples de ce guide utilisent https://api.okouro.com ; remplacez-la par votre propre hôte (ou celui en local) si besoin.

Type de contenu

Les corps des requêtes et des réponses sont en JSON. Envoyez et attendez application/json :

Content-Type: application/json

La seule exception est le téléchargement du devis en PDF, qui renvoie application/pdf.

Authentification en une ligne

Tous les points de terminaison, sauf un petit ensemble public, exigent un jeton porteur dans l’en-tête Authorization :

GET /auth/me HTTP/1.1
Authorization: Bearer <access_token>

Voir Authentification pour savoir comment obtenir et rafraîchir ce jeton.

Un premier appel

Connectez-vous, puis lisez votre propre profil :

POST /auth/login HTTP/1.1
Content-Type: application/json

{
  "email": "you@company.com",
  "password": "your-password"
}
{
  "access_token": "eyJhbGciOiJSUzI1NiIs...",
  "refresh_token": "eyJhbGciOiJSUzI1NiIs...",
  "token_type": "Bearer",
  "user": {
    "id": "0190a1c2-3d4e-7f80-9a1b-2c3d4e5f6a7b",
    "account_id": "0190a1c2-0000-7f80-9a1b-2c3d4e5f6a7b",
    "email": "you@company.com",
    "first_name": "Alex",
    "last_name": "Martin",
    "role": "admin",
    "created_at": "2026-01-05T09:00:00Z",
    "consultant_id": null,
    "settings": { "language": "en" },
    "is_manager": false
  }
}

Utilisez le access_token renvoyé lors de l’appel suivant :

GET /auth/me HTTP/1.1
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...

Ce qui est public

Seules ces routes fonctionnent sans jeton : POST /auth/signup, POST /auth/complete-signup, POST /auth/login, POST /auth/refresh, POST /invitations/accept, POST /password-changes/redeem, GET /health et GET /openapi.json. Tout le reste renvoie 401 Unauthorized sans jeton porteur valide.

Comment ce guide est organisé

D’où viennent les chiffres

Chaque requête et réponse de ce guide reflète le contrat d’API en production, publié sous forme de document OpenAPI 3.1 à l’adresse GET /openapi.json et affiché dans la Référence de l’API. En cas de désaccord entre un guide et la référence, la référence prime.