Raw events
Immutable provider payloads with checksums, source IDs, consent scope, and receive time.
Velocity unifies connected-car, OBD, and manual evidence without hiding its origin, freshness, or uncertainty.
Start here
curl "https://velocity-api-production-4e2f.up.railway.app/v2/vehicles" \
-H "x-api-key: vel_sandbox_app12345.your_secret"Truth and lineage
Immutable provider payloads with checksums, source IDs, consent scope, and receive time.
VSS-style signals with source and normalized units, quality, and observed time.
Versioned health and financial projections with evidence, confidence, and freshness.
Contract first
Production base URL: https://velocity-api-production-4e2f.up.railway.app. Operational probes are available at /healthz and /readyz.
/v2/vehiclesList canonical tenant-owned vehicles.
/v2/vehicles/:idRead one canonical tenant-owned vehicle.
/v2/ingestion/eventsReplay-safe source-envelope ingestion. Requires Idempotency-Key.
/v2/provider-authorizationsBegin user-authorized Smartcar Connect. Requires a bearer session and Idempotency-Key.
/v2/provider-connectionsList provider connections scoped to the calling application.
/v2/vehicles/:id/observationsRead canonical observations with quality and source provenance.
/v2/vehicles/:id/profileRead evidence-qualified mechanical, financial, and maintenance sections.
/v2/webhooksCreate an application-owned endpoint and reveal its signing secret once.
/v2/management/provisioning-runsAdmin-only Ora or MechanicOS provisioning with fixed partner scopes and explicit vehicle grants.
/v2/credentials/selfInspect the calling partner credential, scopes, and granted vehicle IDs.
Compatibility transition
New integrations must use the contract-owned /v2 routes and velocity.v2 SDK resources. Existing v1 routes now return a Deprecation: true header and a stable operation ID so real usage can be measured before any removal. No sunset date is asserted yet.
Typed client
The SDK provides scoped authentication, timeouts, cursor pagination, idempotency, safe GET retries, and standard errors.
import { VelocityClient } from "@velocity/sdk";
const velocity = new VelocityClient({
baseUrl: process.env.VELOCITY_API_URL!,
apiKey: process.env.VELOCITY_API_KEY!,
});
const page = await velocity.v2.vehicles.list();
const vehicle = await velocity.v2.vehicles.get(page.data[0].id);
const profile = await velocity.v2.profiles.get(vehicle.id);
const observations = await velocity.v2.observations.list(vehicle.id);Event delivery
Triggers can deliver assessment updates to application-owned endpoints. Velocity signs the exact payload and timestamp. Deliveries use bounded exponential backoff and stable IDs.
const signature = request.headers["velocity-signature"];
// Verify timestamp + HMAC before reading the event.
// Reject old timestamps and previously processed delivery IDs.Agent access
Configure VELOCITY_API_URL and a read-scoped VELOCITY_API_KEY, then run velocity-mcp. The server exposes vehicle, timeline, health, financial, and maintenance reads. It intentionally exposes no destructive tools. Canonical projection, decision, and evidence-backed recommendation tools preserve freshness and never present a DTC as a confirmed diagnosis.
Connected vehicles
Smartcar Connect supports live OEM accounts and simulated vehicles. Velocity uses API v3 application authentication, exact signed webhooks, and Dashboard-managed least-privilege signals without location. DIMO remains optional and OBD remains the fallback.
User control
Independent sibling products
Use the console Partners page or management API to create a partner application. Velocity assigns the immutable contract-owned profile, then an admin grants specific vehicles and issues a one-time credential. The application can activate only after an active credential, a live vehicle grant, and a verified HTTPS webhook are present.