Changelog
What's new in the FuelAtlas Public API.
Changes to the public /v1 API are versioned and additive where possible. Adding an endpoint, field, scope, error code, or webhook event type is a non-breaking change; removing or renaming one is not, and would ship under a new API version. Subscribe to fleet.provisioned and watch this page for updates.
2026-10-19 — QA follow-ups
Additive changes from an outside QA pass against the sandbox. Nothing here removes or renames a field.
GET /v1/tripsno longer carries each trip's route polyline by default (a 50-trip page was ~2.5 MB of geometry). Passinclude=polylineto get it;GET /v1/trips/{id}is unchanged. This is a behaviour change inside v1, made while the endpoint had no recorded callers (no key had ever listed trips); an unknownincludevalue is now a 422 instead of being ignored.GET /v1/vehiclestakesstatus=active|inactive. Omitted still returns both, so deactivated vehicles can now be left out of a list.- The spec says 204 for the deactivate/delete, arrive/depart and acknowledge/skip calls that never returned a body; the behaviour is unchanged.
- Company test keys act on a sandbox twin of the company (three simulated trucks, synthetic prices, the
/v1/sandboxscenario and reset tools and the MCP sandbox tools) instead of the live fleet. Existing company sandbox keys are re-pointed at their twin when this ships. - Company production keys have an approval flow: the company owner requests production access on the Developers page, FuelAtlas approves it with a plan (or denies or later revokes it with a reason), and the owner can then create live
fa_live_keys that act on the real fleet. Sandbox keys are unaffected. - MCP: every tool carries
annotations(readOnlyHint, destructiveHint, idempotentHint), and calling an unknown tool is a JSON-RPC-32602protocol error rather than a tool error. insufficient_scopenames the missing scope indetailand in a newrequired_scopemember. Cap errors (limit,used) now carry those members too.415 unsupported_media_typeis a new error code: a POST without a JSON body orContent-Type: application/jsongets the standard envelope instead of a framework ProblemDetails.- Unknown
/v1/...routes return the envelope (404 resource_not_foundwith a route hint) instead of an empty body. - The OpenAPI document declares
servers(https://api.fuelatlas.com) and theIdempotency-Keyheader onPOST /v1/routes,/v1/tripsand/v1/fuelings. - Timestamps are always UTC with six fractional digits, and numbers never carry trailing zeros, so a create response and the GET that follows agree byte for byte.
POST /v1/webhooks/{id}/testworks with no body: it sends the endpoint's first subscribed event type (guidance.updatedfor a wildcard subscription).- Developer Console: rotating a revoked or expired key is refused (
409 resource_conflict); company keys can no longer be granted the partner-onlyfleets:managescope;ownerTypeis required when creating a key. - The
validation_failedtitle reads "Request failed validation" (it applies to query parameters too) and therate_limitedhint names theX-RateLimit-Resetheader.
2026-07-01 — v1 launch
The first public release of the FuelAtlas Public API.
- Fleets & vehicles — provision fleets (partner keys) and manage vehicles, addressable by your own
external_ref. - Location ingestion —
POST /v1/locationsbatch push (up to 500 items / 1 MB) with independent per-item results. - Autoguide — continuous, per-vehicle fuel-stop recommendations with phases and data-freshness grading.
- Routes & stations — one-shot route + fuel-plan optimize, and station/price queries (nearby and along a corridor).
- Trips — dispatch-trip lifecycle with stop arrival/departure and progress.
- Fuelings & savings — record fuelings and roll up fleet savings with an adherence rate.
- Webhooks — 13 event types, HMAC-SHA256 signatures, retries, replay, and dual-valid secret rotation.
- Sandbox — a fully simulated fleet driven by
fa_test_keys, with scenarios and reset. - RFC 9457 errors — a stable problem+json envelope and a documented error-code registry.
- Discovery — anonymous OpenAPI at
/v1/openapi.json,llms.txt/llms-full.txt, and an MCP server.