API REST de lecture/écriture : clientèle, contacts, notes, rapports de visite, rendez-vous, opportunités, tournées, étiquettes et données publiques d'entreprises. Authentification : `Authorization: Bearer <clé>` (clés créées dans Paramètres → API, droits lecture ou lecture+écriture).
Authentification
curl https://tourneo-gamma.vercel.app/api/v1/companies?limit=10 \ -H "Authorization: Bearer tk_…"
Écriture
curl -X POST https://tourneo-gamma.vercel.app/api/v1/appointments \
-H "Authorization: Bearer tk_…" \
-H "Content-Type: application/json" \
-d '{"title":"RDV","starts_at":"2026-11-03T09:00:00+01:00","ends_at":"2026-11-03T09:45:00+01:00"}'limit (≤ 200) et offsetorder=colonne.asc|desc{ error: { message, status, details } }/api/v1/companiesLister — Établissements de la clientèle (CRM)
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, name, enseigne, siret, city, postal_code, category, priority, potential, owner_id, status_tag_id, next_action_at, last_visit_at, created_at, updated_at |
| q | query | Recherche dans name, enseigne, city, siret |
| status_tag_id | query | Statut commercial (id d'étiquette) |
| category | query | Type de magasin (boulangerie, fleuriste…) |
| siret | query | SIRET exact |
| city | query | Ville |
| owner_id | query | Commercial |
| updated_since | query | Modifiés depuis (ISO 8601) |
/api/v1/companiesCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/companies/{id}Lire
/api/v1/companies/{id}Modifier
Droit d'écriture requis
/api/v1/companies/{id}Supprimer
Droit d'écriture requis
/api/v1/contactsLister — Interlocuteurs
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, first_name, last_name, email, company_id, is_primary, created_at |
| q | query | Recherche dans first_name, last_name, email |
| company_id | query | Établissement |
/api/v1/contactsCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/contacts/{id}Lire
/api/v1/contacts/{id}Modifier
Droit d'écriture requis
/api/v1/contacts/{id}Supprimer
Droit d'écriture requis
/api/v1/notesLister — Notes
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, company_id, author_id, kind, pinned, created_at, updated_at |
| q | query | Recherche dans body |
| company_id | query | Établissement |
| kind | query | note | appel | email | reunion | interne |
/api/v1/notesCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/notes/{id}Lire
/api/v1/notes/{id}Modifier
Droit d'écriture requis
/api/v1/notes/{id}Supprimer
Droit d'écriture requis
/api/v1/reportsLister — Rapports de visite, prospection, rendez-vous, appel ou tournée
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, company_id, tour_id, author_id, kind, outcome, interest, visited_at, next_action_at, order_amount, quote_amount, created_at, updated_at |
| q | query | Recherche dans title, summary, needs, objections, competitors, next_step, contact_name |
| company_id | query | Établissement |
| tour_id | query | Tournée |
| appointment_id | query | Rendez-vous |
| author_id | query | Auteur (commercial) |
| kind | query | visite | prospection | rendez_vous | appel | tournee | autre |
| outcome | query | positif | neutre | negatif | sans_suite |
| from | query | Date de visite ≥ (ISO 8601) |
| to | query | Date de visite ≤ (ISO 8601) |
| follow_up_before | query | Relance prévue avant (ISO 8601) |
| updated_since | query | Modifiés depuis (ISO 8601) |
/api/v1/reportsCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/reports/{id}Lire
/api/v1/reports/{id}Modifier
Droit d'écriture requis
/api/v1/reports/{id}Supprimer
Droit d'écriture requis
/api/v1/appointmentsLister — Rendez-vous
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, title, starts_at, ends_at, status, owner_id, company_id, created_at, updated_at |
| q | query | Recherche dans title, location |
| from | query | Début après (ISO 8601) |
| to | query | Début avant (ISO 8601) |
| owner_id | query | Commercial |
| company_id | query | Établissement |
| status | query | planifie | confirme | realise | annule |
/api/v1/appointmentsCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/appointments/{id}Lire
/api/v1/appointments/{id}Modifier
Droit d'écriture requis
/api/v1/appointments/{id}Supprimer
Droit d'écriture requis
/api/v1/opportunitiesLister — Opportunités commerciales
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, title, amount, probability, expected_close_date, stage_id, owner_id, company_id, position, closed_at, created_at, updated_at |
| q | query | Recherche dans title |
| stage_id | query | Étape |
| company_id | query | Établissement |
| owner_id | query | Commercial |
/api/v1/opportunitiesCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/opportunities/{id}Lire
/api/v1/opportunities/{id}Modifier
Droit d'écriture requis
/api/v1/opportunities/{id}Supprimer
Droit d'écriture requis
/api/v1/toursLister — Tournées commerciales
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, name, date, status, owner_id, start_time, total_distance_m, total_duration_s, created_at, updated_at |
| q | query | Recherche dans name |
| from | query | Date ≥ (AAAA-MM-JJ) |
| to | query | Date ≤ |
| owner_id | query | Commercial |
| status | query | Statut |
/api/v1/toursCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/tours/{id}Lire
/api/v1/tours/{id}Modifier
Droit d'écriture requis
/api/v1/tours/{id}Supprimer
Droit d'écriture requis
/api/v1/tours/{id}/optimizeOptimiser une tournée (ordre, horaires, itinéraire)
Droit d'écriture requis
| id | path |
/api/v1/tours/{id}/icsCalendrier iCalendar de la tournée
| id | path |
/api/v1/tour_stopsLister — Arrêts de tournée
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, tour_id, position, status, priority, eta, etd, visited_at, label, created_at |
| tour_id | query | Tournée |
| status | query | a_faire | visite | absent | reporte |
/api/v1/tour_stopsCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/tour_stops/{id}Lire
/api/v1/tour_stops/{id}Modifier
Droit d'écriture requis
/api/v1/tour_stops/{id}Supprimer
Droit d'écriture requis
/api/v1/tagsLister — Statuts et étiquettes
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, name, kind, position, created_at |
| kind | query | status | label |
/api/v1/tagsCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/tags/{id}Lire
/api/v1/tags/{id}Modifier
Droit d'écriture requis
/api/v1/tags/{id}Supprimer
Droit d'écriture requis
/api/v1/pipeline_stagesLister — Étapes du pipeline
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, name, position, probability |
/api/v1/pipeline_stagesCréer (objet ou tableau de 100 max)
Droit d'écriture requis
/api/v1/pipeline_stages/{id}Lire
/api/v1/pipeline_stages/{id}Modifier
Droit d'écriture requis
/api/v1/pipeline_stages/{id}Supprimer
Droit d'écriture requis
/api/v1/activitiesLister — Journal d'activité (lecture seule)
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, type, company_id, user_id, created_at |
| company_id | query | Établissement |
| type | query | Type |
| since | query | Depuis (ISO 8601) |
/api/v1/activities/{id}Lire
/api/v1/usersLister — Utilisateurs de l'organisation (lecture seule)
| limit | query | |
| offset | query | |
| order | query | colonne.asc|desc — colonnes : id, email, full_name, role, created_at |
| role | query | admin | manager | commercial |
/api/v1/users/{id}Lire
/api/v1/etablissementsRechercher des établissements (SIRENE) par texte ou par zone
| q | query | |
| lat | query | |
| lng | query | |
| radius_km | query | |
| categories | query | Codes séparés par des virgules (voir /api/v1/categories) |
/api/v1/etablissements/{siret}Fiche entreprise complète : identité, dirigeants, finances, BODACC
| siret | path |
/api/v1/categoriesTypes de magasins et codes NAF associés