Emulator API
An introduction to our Emulator API, accessible through both DT Studio and REST API.
If you don't have access to physical sensors and want to test our services, the Sensor Emulator API gives you the ability to create and experiment with devices at will. An emulated sensor is designed to have all the features of a real sensor, making it a valuable tool for experimentation or debugging.
- Explore DT Studio without the need for real sensors.
- It can be interacted with through the REST API.
- Emit any event type at will by simply clicking a button.
- Generate events in your CI flow to automate integration tests.
- Service Account Creating, deleting, and interacting with emulated devices require that your User or Service Account has been granted the role of Project Developer or higher.
DT Studio
REST API
Python API
In DT Studio, navigate to the project in which you want to create the emulated sensor. In the left-most menu, locate the API Integrations -> Emulator page. Click Create Device.

Under the new device creation page, select a Device Type. A Device name and labels are optional but can be useful when managing several emulated devices at once.

Remember to Save New Emulated Device.
Send a POST request to:
https://emulator.d21s.com/v2/projects/<PROJECT_ID>/devices
A request body with the following parameters is required.
{
"type": "temperature"
}
Using cURL with a Service Account for authentication, the following example creates a new emulated temperature sensor with a given name and a "group-number" label.
curl -X POST "https://emulator.d21s.com/v2/projects/<PROJECT_ID>/devices" \
-u "<SERVICE_ACCOUNT_KEY_ID>":"<SERVICE_ACCOUNT_SECRET>" \
-d '{"type": "temperature", "labels": {"name": "my-emulated-sensor", "group-number": "99"}}'
Once the package is installed and authenticated as described in the Python API Reference, a new Emulated Device can be created by calling the following resource method.
Using our Python API with Service Account credentials for authentication, the following example creates a new Emulated Temperature Device.
import disruptive as dt
device = dt.Emulator.create_device(
project_id='<PROJECT_ID>',
device_type=dt.Device.TEMPERATURE,
)
print(device)
Events can be emitted at will using an emulated device.
DT Studio
REST API
Python API
In DT Studio, navigate to the project containing your emulated sensors. In the left-most menu, locate the API Integrations -> Emulator page. Click on your emulated device.

Under the details page of your emulated device, select the Event Type and related value you wish to emit. When set, click Send Event for immediate effect.

Send a POST request to:
https://emulator.d21s.com/v2/projects/<PROJECT_ID>/devices/<DEVICE_ID>:publish
The body of the POST request should be the event to be published. The type of the published event must match the device type of the emulated event. For example, an emulated
temperature
sensor can't send objectPresent
events. An overview of which events types are available for a given device type can be found here.Note: The
updateTime
field is optional for all event types, and defaults to now.