AWS IoT Core Data Delivery
Sensos supports direct data delivery to your AWS IoT Core account. To establish a secure connection, the first step is to upload your AWS IoT client certificate to Sensos. This certificate is used to authenticate and authorize the MQTT connection from Sensos to your AWS IoT Core endpoint.
Notice: This integration supports outbound data delivery only (publishing telemetry and event data to your AWS IoT Core MQTT topic). Device management or inbound control via the AWS IoT Core instance is not supported.
Step 1: Upload Certificate
To upload your certificate, make a POST request to the data delivery certificates endpoint:
POST /v1/accounts/{accountId}/data-delivery-certificatesRequest Headers
Authorization: Bearer <your_access_token>
Content-Type: application/jsonRequest Body
{
"name": "My AWS IoT Certificate",
"description": "Optional description for reference",
"certificate": "<base64-encoded-certificate-content>"
}name(string, required): A user-defined name for the certificate.description(string, optional): Additional description to help identify the certificate.certificate(string, required): The certificate content (PEM format), encoded in base64.
Example
curl -X POST https://api.sensos.io/v1/accounts/{accountId}/data-delivery-certificates \
-H "Authorization: Bearer <your_access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "aws-iot-core-cert",
"description": "Certificate for AWS IoT Core connection",
"certificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0t..."
}'Response
Upon successful upload, the endpoint returns 200 OK with the certificate metadata and a unique id:
{
"id": "cf3d8e2c-6f7e-4b91-81e9-4d35f558f9f3",
"name": "aws-iot-core-cert",
"description": "Certificate for AWS IoT Core connection",
"createdAt": "2026-03-30T12:00:00Z"
}Step 2: Create a Data Delivery Rule
Once your AWS IoT certificate is uploaded, create a Data Delivery Rule to define which telemetry data to send, where to send it, and how.
To deliver data to AWS IoT Core, configure the rule with action type "AwsIot".
Endpoint
POST /v1/accounts/{accountId}/data-delivery-rulesRequest Headers
Authorization: Bearer <your_access_token>
Content-Type: application/jsonRequest Body
{
"name": "AWS IoT Export Config",
"dataSourceType": "DeviceReports",
"action": {
"type": "AwsIot",
"endpoint": "your-iot-endpoint.iot.<region>.amazonaws.com",
"topic": "sensos/data/devicereports",
"clientCertificateId": "cf3d8e2c-6f7e-4b91-81e9-4d35f558f9f3"
}
}name(string, required): A descriptive name for this data delivery rule.dataSourceType(string, required): The data stream to export (e.g.,DeviceReports,TemperatureLogging,HumidityLogging,Alerts).action.type(string, required): Must be"AwsIot"for AWS IoT Core.action.endpoint(string, required): Your AWS IoT Core ATS endpoint (e.g.,xxxxxxxxxxxxxx-ats.iot.us-west-2.amazonaws.com).action.topic(string, required): The MQTT topic where Sensos will publish events (e.g.,sensos/data/devicereports).action.clientCertificateId(string, required): The ID of the certificate uploaded in Step 1.
Example
curl -X POST https://api.sensos.io/v1/accounts/{accountId}/data-delivery-rules \
-H "Authorization: Bearer <your_access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "AWS IoT Temperature Export",
"dataSourceType": "TemperatureLogging",
"action": {
"type": "AwsIot",
"endpoint": "a3k7odshaiipe8-ats.iot.us-east-1.amazonaws.com",
"topic": "sensos/data/temperature",
"clientCertificateId": "cf3d8e2c-6f7e-4b91-81e9-4d35f558f9f3"
}
}'Once this rule is created, Sensos begins delivering event payloads in real time to your specified AWS IoT Core topic.
Managing and Updating Certificates
Uploaded certificates are used to establish secure mutual TLS (mTLS) with your AWS IoT Core endpoint. It is your responsibility to ensure certificates remain valid before expiration.
If a certificate expires, data delivery will pause until an updated certificate is provided.
To update an existing certificate:
PUT /v1/accounts/{accountId}/data-delivery-certificates/{certificateId}curl -X PUT https://api.sensos.io/v1/accounts/{accountId}/data-delivery-certificates/cf3d8e2c-6f7e-4b91-81e9-4d35f558f9f3 \
-H "Authorization: Bearer <your_access_token>" \
-H "Content-Type: application/json" \
-d '{
"name": "aws-iot-core-cert-renewed",
"description": "Renewed AWS IoT Core certificate",
"certificate": "<base64-encoded-certificate-content>"
}'Updated 12 days ago
