Skip to main content
SyncVeloSyncVelo

Developer Ecosystem

Build the future of mobility on SyncVelo

Open, secure and versioned interfaces for your fleet's devices, positions, trips, alerts, reports and drivers, with signed webhooks, a TypeScript SDK and a sandbox.

  • REST & OpenAPI
  • Signed webhooks
  • TypeScript SDK
  • Sandbox of simulated vehicles
api.syncvelo.com
1const api = 'https://api.syncvelo.com';2const { SYNCVELO_CLIENT_ID: id, SYNCVELO_CLIENT_SECRET: secret, SYNCVELO_ORG: org } = process.env;3 4const { access_token } = await fetch(`${api}/oauth/token`, {5  method: 'POST',6  headers: { Authorization: `Basic ${btoa(`${id}:${secret}`)}` },7  body: new URLSearchParams({ grant_type: 'client_credentials' }),8}).then((r) => r.json());9 10// Cursor pagination: follow next_cursor until it is null11let cursor: string | null = null;12do {13  const url = new URL(`${api}/v1/tenants/${org}/devices?limit=100`);14  if (cursor) url.searchParams.set('cursor', cursor);15  const page = await fetch(url, { headers: { Authorization: `Bearer ${access_token}` } }).then((r) => r.json());16  for (const d of page.items) console.log(d.id, d.status, d.latitude, d.longitude, d.speed_kph);17  cursor = page.next_cursor;18} while (cursor);

Surfaces

Every way to connect, with controls built in

Each surface is designed with authorisation, tenancy and auditability from day one.

  • Public REST & OpenAPI

    Devices, positions, trips, geofences, rules, alerts, reports and drivers, with cursor pagination and explicit versions.

    Controls: OAuth2 client credentials, scopes, rate limits and daily quotas.

  • Event webhooks

    Alerts, geofence entries and exits and completed trips, signed, retried with back-off and replayable.

    Controls: Secret rotation without dropped events; one organization per client.

  • TypeScript SDK

    A typed client generated from the OpenAPI document; it follows cursors and retries only where safe.

    Controls: Semantic versioning and compatibility tests.

  • Sandbox

    A separate organization with simulated vehicles, sample trips and test webhooks, reset on demand.

    Controls: Isolated at the root: no parent and no access to real data.

  • Developers page in the console

    API clients, scopes and webhook endpoints, managed by the organization owner, with the API reference.

    Controls: Secrets shown once and stored only as fingerprints.

  • Forwarding and MQTT

    Forwarding to other platforms and government servers, and MQTT for integrators. Planned (X5).

    Controls: Not available today.

REST & OpenAPI

Predictable APIs that respect your tenants

Resource-oriented endpoints with cursor pagination, filters, idempotency keys and explicit versions. Every request carries full tenant policy.

  • OAuth2 client credentials with fine-grained scopes
  • Canonical SyncVelo IDs, never internal engine keys
  • Idempotency keys and safe retries on writes
  • Per-client rate limits and daily quotas
devices.list
1const api = 'https://api.syncvelo.com';2const { SYNCVELO_CLIENT_ID: id, SYNCVELO_CLIENT_SECRET: secret, SYNCVELO_ORG: org } = process.env;3 4const { access_token } = await fetch(`${api}/oauth/token`, {5  method: 'POST',6  headers: { Authorization: `Basic ${btoa(`${id}:${secret}`)}` },7  body: new URLSearchParams({ grant_type: 'client_credentials' }),8}).then((r) => r.json());9 10// Cursor pagination: follow next_cursor until it is null11let cursor: string | null = null;12do {13  const url = new URL(`${api}/v1/tenants/${org}/devices?limit=100`);14  if (cursor) url.searchParams.set('cursor', cursor);15  const page = await fetch(url, { headers: { Authorization: `Bearer ${access_token}` } }).then((r) => r.json());16  for (const d of page.items) console.log(d.id, d.status, d.latitude, d.longitude, d.speed_kph);17  cursor = page.next_cursor;18} while (cursor);

Webhooks

Real-time events, delivered reliably

Subscribe to alerts (opened, cleared, acknowledged, closed), geofence entries and exits, and completed trips. Every delivery is signed, retried with back-off and replayable for 30 days.

  • HMAC-signed payloads with timestamp tolerance
  • Automatic retries, dead-letter queue and replay
  • A versioned event catalogue in the OpenAPI document
  • Delivery logs in the console and through the API
webhooks
1POST /your/webhook2webhook-id: 6f0c2d2e-1b55-8a4e-9c3f-8f9a2b7d1e403webhook-timestamp: 17923164674webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=5 6{7  "id": "6f0c2d2e-1b55-8a4e-9c3f-8f9a2b7d1e40",8  "type": "geofence.exited",9  "schema_version": "1.0",10  "organization_id": "1f7c…",11  "occurred_at": "2026-10-19T09:41:07.000Z",12  "created_at": "2026-10-19T09:41:08.214Z",13  "data": { "device_id": "8d2a…", "geofence_id": "c41e…" }14}

SDK

A typed TypeScript client, and plain REST for everything else

The TypeScript SDK is generated from the OpenAPI document and shared with sandbox access; it is not on a public registry yet. Other languages call the REST API directly.

  • TypeScript

    For servers: Node.js 20+, Deno, Bun and edge runtimes. Typed methods, cursors followed, safe retries and webhook verification.

    import { SyncVelo } from '@syncvelo/sdk'
  • Any other language

    Python, Java, Go or anything that speaks HTTPS: use the REST API and the OpenAPI document, as in the samples above.

    GET https://api.syncvelo.com/openapi.json

Integration lifecycle

From first API key to production, governed end to end

  1. 01

    Register

    An owner creates an API client on Developers in the console, with only the scopes it needs.

  2. 02

    Authorize

    The client exchanges its ID and secret for a short-lived access token (OAuth2 client credentials).

  3. 03

    Subscribe

    Register webhook endpoints, send test events, and try everything in the sandbox first.

  4. 04

    Operate

    Quotas, idempotency, retries and full tenant policy on every request.

  5. 05

    Observe

    Delivery logs, replay of failed deliveries, secret rotation and revocation.

Developer sandbox

Start building today

Get a sandbox tenant with simulated devices, sample trips and test webhooks. Developer access is currently available to pilot partners and integrators.

Code samples on this page are illustrative. The full API reference is shared with sandbox access.

Get started

Ready to move your world smarter?

See how SyncVelo can power your fleet, your partner business or your next integration. Personal walkthrough, real devices, your use case.