Using our APIs
Getting Started with IoT.live APIs
Introduction
The IoT.live APIs allows customers and partners to integrate connectivity management capabilities directly into their own applications, portals, workflows, and operational systems.
Whether you're building customer self-service capabilities, automating device provisioning, or integrating connectivity management into an existing platform, the IoT.live APIs provides a secure and standards-based way to interact with your SIM estate.
The quickest way to get started is by using the published Swagger/OpenAPI documentation together with a tool such as Postman.
Before You Begin
To access the IoT.live API you will need:
- An active IoT.live account
- API credentials issued by CSL
- Access to the IoT.live Swagger/OpenAPI documentation
- A test SIM that can safely be used for lifecycle operations
- Postman (recommended) or another REST API testing tool
Please speak to your Account Manager, or call us for help with credentials.
Understanding the API
IoT.live APIs are REST-based and use standard HTTPS requests.
Typical API interactions consist of:
- Authenticating and obtaining an access token
- Calling an API endpoint
- Receiving a JSON response
- Handling success or error conditions
The Swagger documentation provides:
- Available endpoints
- Request formats
- Response schemas
- Authentication requirements
- Example payloads
- Error codes
Step 1: Explore the Swagger Documentation
Open the published Swagger URL provided by your IoT.live administrator, or found here: https://iot.live/public/api/docs/index.html
Within Swagger you can:
- Browse all available endpoints
- Review required parameters
- Examine request and response models
- Generate example requests
- Test APIs directly from the browser (where enabled)
We recommend reviewing the following SIM lifecycle operations first:
- Get SIM Details
- Suspend SIM
- Unsuspend SIM
- Activate SIM
- Usage and Diagnostics APIs
These provide a simple introduction to working with the platform.
Step 2: Configure Postman
Create a new Postman collection named:
IoT.live API Tests
Within the collection:
Add an Environment
Create the following variables:
Variable | Example |
|---|---|
baseUrl | |
accessToken | (leave blank initially) |
iccid | 8944123456789012345 |
Step 3: Authenticate
Most API calls require an access token.
Create a request called:
Get Access Token
Use the authentication details provided by CSL.
Successful authentication will return an access token which can be stored as a Postman environment variable.
Example Authorisation header:
Authorisation: Bearer {{accessToken}}Refer to your Swagger documentation for the exact authentication endpoint and credential requirements.
Step 4: Test a Read-Only Request
Before making any changes, verify connectivity using a read-only endpoint.
For example:
Get SIM Details
GET {{baseUrl}}/sims/{{iccid}}Expected outcome:
- HTTP 200 response
- SIM information returned in JSON format
- Current lifecycle status displayed
Typical information may include:
{
"iccid": "8944123456789012345",
"status": "ACTIVE"
}If this request succeeds, your authentication and connectivity are working correctly.
Step 5: Suspend a SIM
Once basic connectivity has been verified, test a lifecycle operation.
Suspend SIM
Purpose:
Temporarily prevent the SIM from using network services while retaining the subscription.
Example request:
POST {{baseUrl}}/sims/{{iccid}}/suspendHeaders:
Authorisation: Bearer {{accessToken}}
Content-Type: application/jsonExample response:
{
"success": true,
"status": "SUSPENDED"
}Step 6: Verify the Status Change
After a successful suspension request:
- Call the Get SIM Details endpoint again
- Confirm the returned status is now suspended
This validation step is important when building automations.
Example workflow:
Suspend SIM
↓
Wait for response
↓
Get SIM Details
↓
Confirm status = SUSPENDED
Step 7: Unsuspend a SIM
To restore service, call the Unsuspend endpoint.
Unsuspend SIM
POST {{baseUrl}}/sims/{{iccid}}/unsuspendExpected response:
{
"success": true,
"status": "ACTIVE"
}Common Response Codes
Code | Meaning |
|---|---|
200 | Successful request |
201 | Resource created successfully |
400 | Invalid request |
401 | Authentication failed |
403 | Insufficient permissions |
404 | Resource not found |
429 | Rate limit exceeded |
500 | Internal platform error |
Always design integrations to handle error scenarios gracefully.
Recommended Development Approach
When building production integrations:
Start Small
Begin with:
- Get SIM Details
- Suspend SIM
- Unsuspend SIM
These APIs provide a simple end-to-end workflow that covers:
- Authentication
- Request construction
- Response handling
- Status verification
- Error handling
Progress to Automation
Once basic functionality is working, consider:
- Bulk SIM management
- Automated provisioning
- Diagnostics and usage monitoring
- Alert-driven workflows
- CRM or Service Desk integrations
Best Practices
✅ Use a dedicated test SIM during development
✅ Store API credentials securely
✅ Validate API responses before updating internal systems
✅ Log request IDs and response codes
✅ Implement retries for transient failures
✅ Use sandbox or test environments where available
❌ Do not hardcode access tokens
❌ Do not expose credentials in client-side applications
❌ Do not assume lifecycle changes are instantaneous
Troubleshooting
Authentication Failures
Check:
- Client credentials
- Token expiry
- Authorisation headers
SIM Not Found
Verify:
- ICCID value
- Customer ownership
- Environment (test vs production)
Status Not Updating
Check:
- API response payload
- Request permissions
- Any pending lifecycle transactions
Next Steps
Once you have successfully suspended and unsuspended a SIM using Postman, you are ready to integrate IoT.live APIs into your own applications and workflows. The Swagger/OpenAPI documentation can be used to generate client SDKs, accelerate development, and explore additional capabilities across SIM lifecycle management, diagnostics, usage monitoring, and connectivity operations.