Use · Reference
SDK and REST API
Manage things, credentials, policies, twins and commands from your own applications.
Updated 11 Nov 20261 min read
All ThingsX IoT Core pages
- What ThingsX IoT Core does
- Quick start: connect your first device
- Key concepts
- Security and access
- Connect Wi-Fi and IoT devices
- BLE gateways, shelf labels and child devices
- LoRaWAN sensors and gateways
- Industrial I/O modules
- Device twins and state
- Send commands to devices
- Rules: react to device messages
- SDK and REST API
- Monitor your fleet and support customers
- Moving from another IoT platform
- From AWS IoT Core
- From Azure IoT Hub and other platforms
- Device can't connect
- Devices keep disconnecting or reconnecting
- Data isn't arriving or a rule doesn't fire
- Frequently asked questions
- Topics and limits reference
Everything in the console is available through the REST API, and the Python SDK wraps it.
Authentication
Send your API token as a bearer token:
curl https://<your-endpoint>/v1/things -H "Authorization: Bearer $TOKEN"
Keep the token in your server's secret store; never put it in device firmware or a web page. The full, interactive reference (OpenAPI) is at https://<your-endpoint>/docs in your workspace.
Common calls
| Task | Call |
|---|---|
| List or create things | GET /v1/things, POST /v1/things |
| One step: thing + credentials + policy | POST /v1/onboarding/quick-connect |
| Create a certificate | POST /v1/certificates/create-keys-and-certificate |
| Sign a device's CSR | POST /v1/certificates/from-csr |
| Policies | GET/POST /v1/policies, POST /v1/policies/simulate |
| Twin | GET/POST/DELETE /v1/things/{name}/twin |
| Commands | POST/GET /v1/things/{name}/commands |
| Telemetry | GET /v1/things/{name}/telemetry, …/telemetry/{metric}/series |
| Publish a message | POST /v1/publish |
| Rules | GET/POST /v1/rules, POST /v1/rules/test |
| Fleet health | GET /v1/fleet/overview |
Python SDK
import tic_sdk # TIC_URL and TIC_TOKEN from the environment
iot = tic_sdk.client("iot")
iot.create_thing(thingName="store-hyd-02-freezer-1", attributePayload={"attributes": {"store": "HYD-02"}})
data = tic_sdk.client("iot-data")
data.update_thing_shadow(thingName="store-hyd-02-freezer-1",
payload=b'{"state": {"desired": {"setpoint_c": -20}}}')
data.publish(topic="alerts/test", qos=1, payload=b'{"hello": "world"}')
Errors raise tic_sdk.TicError with the status and message from the API.
Bulk registration
To register hundreds of devices, loop over a CSV with POST /v1/onboarding/quick-connect, or create things and sign each device's CSR so private keys never leave the devices.
Was this page helpful?
Can't find what you need? Contact support or read about ThingsX IoT Core.