A JSON REST API, at https://api.floweet.com/v1. These rules apply to every operation; each resource's reference recalls them where useful.
Request and response format
- JSON only: send
Content-Type: application/jsonwith a body. - Fields in
camelCase; identifiers are UUIDs (an establishment, its 14-digit SIRET); instants in ISO 8601, in UTC. A missing value isnull, an empty list[]: the fields of a response object are always present. - A resource is returned as is; a list as
{ "data": [...], "nextCursor": "…", "hasMore": true }; a search as{ "results": [...] }(see pagination).
Units
| Quantity | Unit | Example |
|---|---|---|
| Fuel price | Integer, thousandths of a euro per liter | 2252 = 2.252 €/L |
| Amounts (overspend, savings, ETS2) | Integer, euro cents | 1013800 = €10,138 |
| Distances, durations | Kilometers, minutes | distanceKm, durationMin |
| Coordinates | Decimal degrees (WGS 84) | { "lat": 45.7485, "lng": 4.8467 } |
| CO2 | Tonnes a year | co2Tonnes |
Success statuses
| Status | When | Body |
|---|---|---|
200 OK | Read, computation, update | The object, a page or results |
201 Created | Creation (prospect, simulation) | The created object, and the Location header |
200 OK | Deletion | { "ok": true } |
Be tolerant
New fields, new enum values (a status, a brand, a vehicle type) and new error codes may appear without notice in /v1. Ignore the fields you do not know and treat an unknown value as a generic case. See versioning.
Headers
| Header | Direction | Role |
|---|---|---|
Authorization | request | Bearer fw_live_… or fw_test_… (authentication) |
Idempotency-Key | request | One UUID per POST operation, reused on every retry (idempotency) |
Accept-Language | request | Language of error messages: en, fr, es, it, de, pt; French without it |
X-Request-Id | both | Your identifier, echoed back (generated otherwise); quote it when you contact us |
Floweet-Version | response | Version of the contract that served the request (versioning) |
Floweet-Environment | response | test or live: the key's environment |
Location | response | Path of the resource created by a 201 |
RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset | response | Your current limit window (rate limits) |
Retry-After | response | Seconds to wait, on 429 |
Idempotent-Replayed | response | true when the response replays an earlier one |
Sources and reuse
| Data | Source | Licence |
|---|---|---|
| Fuel prices and stations | prix-carburants.gouv.fr | Licence Ouverte 2.0 |
| EV charging stations | IRVE consolidated file (data.gouv.fr) | Licence Ouverte 2.0 |
| Companies | SIRENE directory (Insee) | Licence Ouverte 2.0 |
| Addresses (France) | Base Adresse Nationale | Licence Ouverte 2.0 |
| Addresses and routes (elsewhere) | OpenStreetMap | ODbL |
Any public reuse must credit these sources. A price counts if it is less than 7 days old. A company's fleet is an estimate (NAF sector × headcount band), never actual data. Every call is written to a usage log (route, status, duration; neither IP address nor content), kept 12 months.