Skip to main content
Making a request to the Smartcar API is simple. Each endpoint is a standard HTTP call, so you can read data, send commands, and verify webhooks straight from your server in any language, without a backend SDK. This page shows each common task with examples in Node.js, Python, Ruby, Go, and Java. To receive vehicle data, use event-driven webhooks rather than polling: Smartcar pushes updates to your server as they arrive. Use the requests below for on-demand reads and to send commands. You need two things:
  • An access token, obtained with the OAuth 2.0 Client Credentials flow. Tokens are valid for one hour and there is no refresh token. Request a new one when it expires. See API Authentication.
  • A user ID (sc-user-id), captured from the Connect redirect. Signal reads and commands require it.
Webhook signature verification uses your Application Management Token, not the access token.
Moving an existing v2 integration off per-vehicle tokens? See the Migration Guide for the phased rollout, database schema changes, and rollback plan.

Get an access token

Retrieve vehicle data

Read all signals for a vehicle with GET /vehicles/{vehicleId}/signals. For a single signal, use GET /vehicles/{vehicleId}/signals/{signalCode}.

Issue a command

Commands are POST /vehicles/{vehicleId}/commands/..., for example security/lock, security/unlock, charge/start, charge/stop, charge/set-limit, and navigation/set-destination. Commands that take parameters send them as a JSON body. Locking a vehicle takes no body.

Verify a webhook signature

Every webhook carries an SC-Signature header with an HMAC-SHA256 of the raw body, keyed by your Application Management Token. Verify it before processing the payload. Full per-language examples are in Payload Verification, and initial endpoint setup is in Callback URI Verification.

Next steps

API Authentication

Set up client credentials and obtain access tokens.

Payload Verification

Verify webhook signatures without an SDK.