Skip to content

Public API StormeoOS — /api/public/v1

API REST pour intégrateurs externes (Zapier, n8n, applications maison, scripts d'agence). Authentifiée par clé API spk_* envoyée dans le header x-api-key.

Base URL

EnvironnementURL
Productionhttps://beta.stormeo.io/api/public/v1
Développement localhttp://localhost:3000/api/public/v1

Quick start

bash
# 1. Vérifier que la clé fonctionne (renvoie usage actuel)
curl -H "x-api-key: spk_votre_clef_48_hex" \
  https://beta.stormeo.io/api/public/v1/me

# 2. Lister les clients de votre agence
curl -H "x-api-key: spk_votre_clef_48_hex" \
  "https://beta.stormeo.io/api/public/v1/clients?limit=20&offset=0"

# 3. Créer un client
curl -X POST \
  -H "x-api-key: spk_votre_clef_48_hex" \
  -H "Content-Type: application/json" \
  -d '{"name":"Acme SARL","email":"contact@acme.fr"}' \
  https://beta.stormeo.io/api/public/v1/clients

Sommaire

DocumentContenu
authentication.mdGénération, scopes, IP whitelist, expiration, révocation
rate-limiting.mdLimites par minute / jour, headers X-RateLimit-*, code 429
errors.mdFormat des réponses d'erreur, codes énumérés, retry
conventions.mdREST patterns, pagination, dates, encodage JSON
changelog.mdVersions de l'API publique
endpoints/Référence par domaine (CRM, facturation, tickets, etc.)
examples/Snippets curl + collection Postman

Endpoints par domaine

DomaineDocumentationScopes
Meta (/me, /scopes, /health)endpoints/meta.md(aucun)
CRM — Clientsendpoints/clients.mdclients:read, clients:write, clients:delete
CRM — Contactsendpoints/contacts.mdcontacts:read, contacts:write, contacts:delete
CRM — Sites webendpoints/websites.mdwebsites:read, websites:write, websites:delete
Ticketingendpoints/tickets.mdtickets:read, tickets:write, tickets:delete
Facturation — Facturesendpoints/invoices.mdinvoices:read, invoices:write
Facturation — Devisendpoints/quotes.mdquotes:read, quotes:write
Planning — Tâchesendpoints/tasks.mdtasks:read, tasks:write, tasks:delete
Planning — Événementsendpoints/events.mdevents:read, events:write, events:delete
Veilleendpoints/watches.mdwatches:read, watches:write
Webhooks (gestion)endpoints/webhooks.mdwebhooks:manage

Pour les notifications push (webhooks émis vers votre URL), voir ../webhooks/public-api-webhooks.md.

Pré-requis

  • Plan d'agence avec api_access activé. Sans ce flag, toute requête est rejetée en 403 PLAN_UPGRADE_REQUIRED.
  • Clé API générée depuis Compte > Intégrations > API publique (ou POST /api/public-api/admin/keys côté admin).
  • Scopes appropriés sur la clé (CRUD par ressource, voir authentication.md).

Multi-tenant et isolation

Chaque clé API est rattachée à une agence (agencyId). Toutes les requêtes sont automatiquement filtrées par cet agencyId côté serveur. Vous ne pouvez pas accéder aux données d'une autre agence, même si vous connaissez un ID.

Format de réponse

Succès liste :

json
{
  "data": [...],
  "total": 142,
  "limit": 50,
  "offset": 0
}

Succès création / lecture / mise à jour : la ressource directement.

json
{ "id": 42, "name": "Acme SARL", "createdAt": "2026-04-27T10:00:00.000Z" }

Suppression : 204 No Content.

Erreur : voir errors.md.

StormeoOS API