Tournéoopenapi.json

API REST v1

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"}'

companies

get/api/v1/companies

Lister — Établissements de la clientèle (CRM)

limitquery
offsetquery
orderquerycolonne.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
qqueryRecherche dans name, enseigne, city, siret
status_tag_idqueryStatut commercial (id d'étiquette)
categoryqueryType de magasin (boulangerie, fleuriste…)
siretquerySIRET exact
cityqueryVille
owner_idqueryCommercial
updated_sincequeryModifiés depuis (ISO 8601)
post/api/v1/companies

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/companies/{id}

Lire

patch/api/v1/companies/{id}

Modifier

Droit d'écriture requis

delete/api/v1/companies/{id}

Supprimer

Droit d'écriture requis

contacts

get/api/v1/contacts

Lister — Interlocuteurs

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, first_name, last_name, email, company_id, is_primary, created_at
qqueryRecherche dans first_name, last_name, email
company_idqueryÉtablissement
post/api/v1/contacts

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/contacts/{id}

Lire

patch/api/v1/contacts/{id}

Modifier

Droit d'écriture requis

delete/api/v1/contacts/{id}

Supprimer

Droit d'écriture requis

notes

get/api/v1/notes

Lister — Notes

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, company_id, author_id, kind, pinned, created_at, updated_at
qqueryRecherche dans body
company_idqueryÉtablissement
kindquerynote | appel | email | reunion | interne
post/api/v1/notes

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/notes/{id}

Lire

patch/api/v1/notes/{id}

Modifier

Droit d'écriture requis

delete/api/v1/notes/{id}

Supprimer

Droit d'écriture requis

reports

get/api/v1/reports

Lister — Rapports de visite, prospection, rendez-vous, appel ou tournée

limitquery
offsetquery
orderquerycolonne.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
qqueryRecherche dans title, summary, needs, objections, competitors, next_step, contact_name
company_idqueryÉtablissement
tour_idqueryTournée
appointment_idqueryRendez-vous
author_idqueryAuteur (commercial)
kindqueryvisite | prospection | rendez_vous | appel | tournee | autre
outcomequerypositif | neutre | negatif | sans_suite
fromqueryDate de visite ≥ (ISO 8601)
toqueryDate de visite ≤ (ISO 8601)
follow_up_beforequeryRelance prévue avant (ISO 8601)
updated_sincequeryModifiés depuis (ISO 8601)
post/api/v1/reports

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/reports/{id}

Lire

patch/api/v1/reports/{id}

Modifier

Droit d'écriture requis

delete/api/v1/reports/{id}

Supprimer

Droit d'écriture requis

appointments

get/api/v1/appointments

Lister — Rendez-vous

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, title, starts_at, ends_at, status, owner_id, company_id, created_at, updated_at
qqueryRecherche dans title, location
fromqueryDébut après (ISO 8601)
toqueryDébut avant (ISO 8601)
owner_idqueryCommercial
company_idqueryÉtablissement
statusqueryplanifie | confirme | realise | annule
post/api/v1/appointments

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/appointments/{id}

Lire

patch/api/v1/appointments/{id}

Modifier

Droit d'écriture requis

delete/api/v1/appointments/{id}

Supprimer

Droit d'écriture requis

opportunities

get/api/v1/opportunities

Lister — Opportunités commerciales

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, title, amount, probability, expected_close_date, stage_id, owner_id, company_id, position, closed_at, created_at, updated_at
qqueryRecherche dans title
stage_idqueryÉtape
company_idqueryÉtablissement
owner_idqueryCommercial
post/api/v1/opportunities

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/opportunities/{id}

Lire

patch/api/v1/opportunities/{id}

Modifier

Droit d'écriture requis

delete/api/v1/opportunities/{id}

Supprimer

Droit d'écriture requis

tours

get/api/v1/tours

Lister — Tournées commerciales

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, name, date, status, owner_id, start_time, total_distance_m, total_duration_s, created_at, updated_at
qqueryRecherche dans name
fromqueryDate ≥ (AAAA-MM-JJ)
toqueryDate ≤
owner_idqueryCommercial
statusqueryStatut
post/api/v1/tours

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/tours/{id}

Lire

patch/api/v1/tours/{id}

Modifier

Droit d'écriture requis

delete/api/v1/tours/{id}

Supprimer

Droit d'écriture requis

post/api/v1/tours/{id}/optimize

Optimiser une tournée (ordre, horaires, itinéraire)

Droit d'écriture requis

idpath
get/api/v1/tours/{id}/ics

Calendrier iCalendar de la tournée

idpath

tour stops

get/api/v1/tour_stops

Lister — Arrêts de tournée

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, tour_id, position, status, priority, eta, etd, visited_at, label, created_at
tour_idqueryTournée
statusquerya_faire | visite | absent | reporte
post/api/v1/tour_stops

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/tour_stops/{id}

Lire

patch/api/v1/tour_stops/{id}

Modifier

Droit d'écriture requis

delete/api/v1/tour_stops/{id}

Supprimer

Droit d'écriture requis

tags

get/api/v1/tags

Lister — Statuts et étiquettes

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, name, kind, position, created_at
kindquerystatus | label
post/api/v1/tags

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/tags/{id}

Lire

patch/api/v1/tags/{id}

Modifier

Droit d'écriture requis

delete/api/v1/tags/{id}

Supprimer

Droit d'écriture requis

pipeline stages

get/api/v1/pipeline_stages

Lister — Étapes du pipeline

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, name, position, probability
post/api/v1/pipeline_stages

Créer (objet ou tableau de 100 max)

Droit d'écriture requis

get/api/v1/pipeline_stages/{id}

Lire

patch/api/v1/pipeline_stages/{id}

Modifier

Droit d'écriture requis

delete/api/v1/pipeline_stages/{id}

Supprimer

Droit d'écriture requis

activities

get/api/v1/activities

Lister — Journal d'activité (lecture seule)

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, type, company_id, user_id, created_at
company_idqueryÉtablissement
typequeryType
sincequeryDepuis (ISO 8601)
get/api/v1/activities/{id}

Lire

users

get/api/v1/users

Lister — Utilisateurs de l'organisation (lecture seule)

limitquery
offsetquery
orderquerycolonne.asc|desc — colonnes : id, email, full_name, role, created_at
rolequeryadmin | manager | commercial
get/api/v1/users/{id}

Lire

données publiques

get/api/v1/etablissements

Rechercher des établissements (SIRENE) par texte ou par zone

qquery
latquery
lngquery
radius_kmquery
categoriesqueryCodes séparés par des virgules (voir /api/v1/categories)
get/api/v1/etablissements/{siret}

Fiche entreprise complète : identité, dirigeants, finances, BODACC

siretpath
get/api/v1/categories

Types de magasins et codes NAF associés