LogoLogo
DocsHomeSupportContact
  • Getting Started
    • Introduction
    • Build on DIMO
  • DEVELOPER GUIDE
    • Developer Overview
    • Developer Console
    • Authentication
    • DIMO Developer SDKs
      • Data SDK
      • Login with DIMO SDK
        • React Component
        • Login with DIMO Redirect
        • Core Functionalities
      • TypeScript: Transactions SDK
      • SDK Release Notes
    • Low Code Tools
      • n8n: Getting Started
    • Permissions Contract: SACD
    • DIMO Credits
    • Response Types
    • Rate Limits
    • Developer FAQ
    • Developer Changelogs
    • Troubleshooting Common Issues
  • API References
    • Overview of DIMO API
    • Attestation API
    • Device Definitions API
    • Identity API
      • Schema & Types
      • Scalars
      • Nodes & Objects
        • AftermarketDevice
        • AftermarketDeviceConnection
        • DCN
        • DCNConnection
        • DeveloperLicense
        • DeviceDefinition
        • Earning
        • EarningsConnection
        • Manufacturer
        • Sacd
        • SyntheticDevice
        • Vehicle
        • VehicleConnection
        • VehicleEarnings
        • UserRewards
      • Common Queries
    • Telemetry API
      • Schema & Types
      • Scalars
      • Nodes & Objects
        • Vehicle Signals
      • Common Queries
    • Token Exchange API
    • Trips API
    • Valuations API
  • DIMO Webhooks
    • Webhooks
    • Webhooks API Reference
  • DIMO Hardware
    • Introduction
    • DIMO Hardware Application
    • DIMO Manufacturing License
    • Development & Certification
    • Audits & Assessments
      • Hardware & Security Audit
      • Customer Experience Assessment
      • Integration Testing & Quality Control
      • Final Approval
    • DIMO Device License
      • Device Minting Certificates
    • Essential Documents
      • Hardware & Security Audit Checklist
      • Approved Hardware Auditors
      • DIMO Memorandum of Understanding (MOU)
  • Additional References
    • Developer License
    • DIMO GraphQL Basics
  • Deprecated Resources
    • Guides
      • Developer Journey
      • Quick Start Guide
      • Hello World
      • Code Exchange Flow
    • Data Availability
Powered by GitBook
On this page
  • Base URLs
  • Request Structure
  • Webhook Configuration
  • List All Webhooks
  • Register A New Webhook
  • Get Webhook Signal Names
  • Update an Existing Webhook
  • Delete A Webhook
  • Vehicle Webhook Subscriptions
  • List All Vehicles Subscribed to a Webhook
  • List Webhook Subscriptions for a Vehicle
  • Assign a Single Vehicle to a Webhook
  • Assign All Vehicles to a Webhook
  • Remove a Single Vehicle From a Webhook
  • Remove All Vehicles From a Webhook
  • Event Responses

Was this helpful?

  1. DIMO Webhooks

Webhooks API Reference

PreviousWebhooksNextIntroduction

Last updated 8 days ago

Was this helpful?

Webhooks can also be setup directly via the , but the options below provide a programmatic way of configuring vehicle events and subscribing vehicles to events you have configured.

Webhooks are currently available in public beta. If you have feedback to share, please reach out to

Developer Notes

Webhooks that you configure are tied to a specific . If you have multiple Developer Licenses under a single account in the , please make sure to authenticate using the associated with the specific license.

Base URLs

https://vehicle-events-api.dimo.zone


Request Structure

When or a webhook, a request object is required as application/json for raw body parameters. Below is a sample request, along with details of each key value pair:

{
   "service": "Telemetry",
   "data": "powertrainTransmissionTravelledDistance",
   "trigger": "valueNumber > 10000",
   "setup": "Realtime",
   "description": "Alert when odometer exceeds 10,000 kilometers",
   "target_uri": "https://example.com/webhook",
   "status": "Active",
   "verification_token":"abc"
 }
Key
Value

service

The DIMO service that you're making the webhook event request for. At present, this will always be Telemetry.

data

The Telemetry field that the webhook will listen for events on, for a given Token ID. In the example, we're checking powertrainTransmissionTravelledDistance to get the odometer value.

trigger

The trigger that the webhook will be listening for. You can use the following condition statements: >= , <=, >, <, = You should always include valueNumber. In the example above, we're checking when the odometer (valueNumber) is greater than 10,000km.

setup

Should be one of the following: Realtime - continues firing as long as the condition remains true. Hourly - fires every hour as long as the condition remains true. [Coming Soon] Daily - fires every day as long as the condition remains true.

description

A brief description of the webhook conditions for your own reference.

target_uri

The endpoint URI that will receive POST requests from your webhook upon firing.

status

Should be one of the following: Active - the webhook is actively in use Inactive - the webhook exists, but is not actively in use.

verification_token

A plain/text string that must be returned by your target_uri webhook listener when creating or updating a webhook for verification purposes.


Webhook Configuration

List All Webhooks

Retrieves a list of all the webhooks that have been created under your Developer License.

Headers

Name
Type
Description

Authorization *

String

List All Webhooks: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.list_all_webhooks(developer_jwt)
// Coming Soon   

Register A New Webhook

Registers a new webhook with the specified configurations and conditions.

Use application/json for raw body parameters.

Request Body

Name
Type
Description

Request*

Object

The request payload for the webhook you're creating. The below sample registers a webhook for the Telemetry API that fires when a subscribed vehicle's odometer reads over 10000 km.

Headers

Name
Type
Description

Authorization *

String

Register New Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.register_webhook(developer_jwt, request)
// Coming Soon   

Get Webhook Signal Names

Retrieves a list of signal names available for the data field.

Headers

Name
Type
Description

Authorization *

String

Get Webhook Signal Names: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.webhook_signals(developer_jwt)
// Coming Soon   

Update an Existing Webhook

Updates the parameters or configurations of an existing webhook via the webhooks webhook_id.

Use application/json for raw body parameters.

Path Parameters

Name
Type
Description

webhook_id *

String

The Webhook ID

Request Body

Name
Type
Description

Request*

Object

The full request payload for the webhook you're updating. The below sample updates a webhook for the Telemetry API that fires when a subscribed vehicle's odometer reads over 15000 km.

Headers

Name
Type
Description

Authorization *

String

Update an Existing Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.update_webhook(developer_jwt, webhook_id, request)
// Coming Soon   

Delete A Webhook

Deletes an existing webhook that was configured under your Developer License.

Path Parameters

Name
Type
Description

webhook_id *

String

The Webhook ID

Headers

Name
Type
Description

Authorization *

String

Delete A Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.delete_webhook(developer_jwt, webhook_id)
// Coming Soon   

Vehicle Webhook Subscriptions

List All Vehicles Subscribed to a Webhook

Lists all of the vehicles that are subscribed to a specific webhook that you've created.

Path Parameters

Name
Type
Description

webhookId*

String

The webhook ID from the registered webhook you created.

Headers

Name
Type
Description

Authorization *

String

List All Vehicles Subscribed to a Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.list_vehicle_subscriptions_by_event(
    developer_jwt,
    webhook_id
)
// Coming Soon   

List Webhook Subscriptions for a Vehicle

Lists all the webhooks that a provided vehicle tokenId is subscribed to.

Path Parameters

Name
Type
Description

tokenId *

String

Vehicle token ID, this is the token ID of your vehicle NFT.

Headers

Name
Type
Description

Authorization *

String

List Webhook Subscriptions for a Vehicle: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.list_vehicle_subscriptions(developer_jwt, token_id)
// Coming Soon   

Assign a Single Vehicle to a Webhook

Subscribes a vehicle tokenId to a specified webhook.

Path Parameters

Name
Type
Description

webhookId*

String

The webhook ID from the registered webhook you created.

tokenId *

String

Vehicle token ID, this is the token ID of your vehicle NFT.

Headers

Name
Type
Description

Authorization *

String

Assign a Single Vehicle to a Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.subscribe_vehicle(developer_jwt, webhook_id, token_id)
// Coming Soon   

Assign All Vehicles to a Webhook

Subscribes all vehicles that have shared permissions with your Developer License to a specific webhook.

Path Parameters

Name
Type
Description

webhookId*

String

The webhook ID from the registered webhook you created.

Headers

Name
Type
Description

Authorization *

String

Assign All Vehicles to a Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.subscribe_all_vehicles(developer_jwt, webhook_id)
// Coming Soon   

Remove a Single Vehicle From a Webhook

Unsubscribes a vehicle tokenId from a specified webhook.

Path Parameters

Name
Type
Description

webhookId*

String

The webhook ID from the registered webhook you created.

tokenId *

String

Vehicle token ID, this is the token ID of your vehicle NFT.

Headers

Name
Type
Description

Authorization *

String

Remove A Single Vehicle from a Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.unsubscribe_vehicle(developer_jwt, webhook_id, token_id)
// Coming Soon   

Remove All Vehicles From a Webhook

Unsubscribes all previously subscribed vehicles from a webhook you've created.

Path Parameters

Name
Type
Description

webhookId*

String

The webhook ID from the registered webhook you created.

Headers

Name
Type
Description

Authorization *

String

Remove All Vehicles from a Webhook: Data SDK Function Calls

// Coming Soon
dimo.vehicle_events.unsubscribe_all_vehicles(developer_jwt, webhook_id)
// Coming Soon   

Event Responses

When a vehicle that you have subscribed to an event meets the criteria you've configured in your webhook trigger, it will send a POST request to your specified targetUri. The response body will contain the information that you need to handle the event as required by your application.

Sample Configuration:

{
    "service": "Telemetry",
    "data": "speed",
    "trigger": "valueNumber > 20",
    "setup": "Realtime",
    "target_uri": "<your_target_uri>",
    "status": "Active",
    "description": "Check when a subscribed vehicle goes faster than 20kph.",
    "verification_token": "test"
  } 

Sample Response:

{
  "tokenId": 17,
  "timestamp": "2025-05-07T22:50:23Z",
  "name": "speed",
  "valueNumber": 22,
  "valueString": "",
  "source": "0xF26421509Efe92861a587482100c6d728aBf1CD0",
  "producer": "did:nft:137:0x9c94C395cBcBDe662235E0A9d3bB87Ad708561BA_31700",
  "cloudEventId": "2wmskfxoQk8r4chUZCat7tSnJLN"
}
Data
Description

tokenId

The tokenId of the vehicle the response is for.

timestamp

The time in UTC format that the event occurred on.

name

The data point that the trigger was setup for.

valueNumber

The recorded numerical value at the time of the event, if relevant (i.e. speed, odometer, etc.)

valueString

The recorded string value at the time of the event, if relevant (i.e. obdDTCList)

source

The source of the recorded data: hardware devices (ie R1, Autopi) or software connection (Smartcar, Tesla).

producer

cloudEventId

The specific cloud event Id related to the event. Can be used for troubleshooting if necessary.

IMPORTANT: Keep in mind that the data type must match what is returned via the standard Telemetry API - either an int , float, or boolean depending on the field. In this case, odometer values are always returned as a float by the Telemetry API, so this must be specified for this trigger field.

GET /v1/webhooks

Developer JWT from the .

POST /v1/webhooks

Developer JWT from the .

GET /v1/webhooks/signals

Developer JWT from the .

PUT /v1/webhooks/{webhook_id}

Developer JWT from the .

DELETE /v1/webhooks/{webhook_id}

Developer JWT from the .

GET /v1/webhooks/{webhookId}

Developer JWT from the .

GET /v1/webhooks/vehicles/{tokenId}

Developer JWT from the .

POST /v1/webhooks/{webhookId}/subscribe/{tokenId}

Developer JWT from the .

POST /v1/webhooks/{webhookId}/subscribe/all

Developer JWT from the .

DELETE /v1/webhooks/{webhookId}/unsubscribe/{tokenId}

Developer JWT from the .

DELETE /v1/webhooks/{webhookId}/unsubscribe/all

Developer JWT from the .

Decentralized identifier (DID) that refers to a specific on the network.

{
    "service": "Telemetry",
    "data": "powertrainTransmissionTravelledDistance",
    "trigger": "valueNumber > 10000.0",
    "setup": "Realtime",
    "description": "Trigger when odometer above 10000 km",
    "target_uri": "https://my-target-uri.com/webhook",
    "status": "Active",
    "verification_token": "abc"
}
{    
    "service": "Telemetry",
    "data": "powertrainTransmissionTravelledDistance",
    "trigger": "valueNumber > 15000.0",
    "setup": "Realtime",
    "description": "Trigger when odometer above 15000 km",
    "target_uri": "https://my-target-uri.com/webhook",
    "status": "Active",
    "verification_token": "abc"
}
DIMO Developer Console
developer-support@dimo.org.
Developer License
DIMO Developer Console
Developer JWT
creating
updating
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
{baseUrl}
❗
authentication step
authentication step
authentication step
authentication step
authentication step
authentication step
authentication step
authentication step
authentication step
authentication step
authentication step
aftermarket device