Onomondo Apps & Connectors API
Create, update, and delete Connectors (Apps) that forward device traffic to cloud destinations such as HTTPS, TLS, Microsoft Azure IoT, and AWS IoT Core, plus search organization Tags used to group SIMs.
Create, update, and delete Connectors (Apps) that forward device traffic to cloud destinations such as HTTPS, TLS, Microsoft Azure IoT, and AWS IoT Core, plus search organization Tags used to group SIMs.
openapi: 3.0.1
info:
title: Onomondo API
description: >-
HTTP RESTful API for the Onomondo IoT cellular-connectivity platform.
Resource-oriented URLs with standard HTTP verbs, JSON request/response
bodies, and Bearer API-key authentication. Served exclusively over TLS
(HTTPS). Use it to manage SIMs, usage, network lists, SMS, webhooks,
connectors, and tags across a global IoT fleet.
termsOfService: https://onomondo.com/legal/
contact:
name: Onomondo Support
url: https://onomondo.com/contact/
version: '1.0'
servers:
- url: https://api.onomondo.com
description: Onomondo production API
security:
- apiKey: []
tags:
- name: SIMs
description: Manage and inspect SIMs in your fleet.
- name: Usage
description: Retrieve data usage for SIMs and tags.
- name: SMS
description: Send SMS to devices and retrieve SMS usage.
- name: Network Lists
description: Manage network allow-lists (whitelists) of MCC/MNC entries.
- name: Webhooks
description: Subscribe to SIM events delivered as HTTP POST callbacks.
- name: Connectors
description: Manage cloud connectors that forward device traffic.
- name: Tags
description: Search organization tags used to group SIMs.
paths:
/sims:
get:
operationId: listSims
tags:
- SIMs
summary: Retrieve information for all SIMs
description: Returns information for all SIMs connected to the organization.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
responses:
'200':
description: A list of SIM objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Sim'
/sims/find:
get:
operationId: findSims
tags:
- SIMs
summary: Find SIMs
description: >-
Retrieves a list of SIMs filtered by partial SIM ID, label, or exact
ICCID match.
parameters:
- name: query
in: query
required: true
schema:
type: string
responses:
'200':
description: A list of matching SIM objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Sim'
/sims/bulk:
patch:
operationId: updateSimsBulk
tags:
- SIMs
summary: Update multiple SIMs
description: >-
Updates configuration parameters for multiple SIMs (maximum 20 per
call).
requestBody:
required: true
content:
application/json:
schema:
type: array
maxItems: 20
items:
$ref: '#/components/schemas/SimUpdate'
responses:
'200':
description: SIMs updated.
/sims/{sim_id}:
parameters:
- $ref: '#/components/parameters/SimId'
get:
operationId: getSim
tags:
- SIMs
summary: Retrieve information for a specific SIM
responses:
'200':
description: A SIM object.
content:
application/json:
schema:
$ref: '#/components/schemas/Sim'
'404':
description: SIM not found.
patch:
operationId: updateSim
tags:
- SIMs
summary: Update a SIM
description: Updates configurable parameters for the specified SIM.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SimUpdate'
responses:
'200':
description: SIM updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Sim'
/sims/{sim_id}/tags/{tag_id}:
parameters:
- $ref: '#/components/parameters/SimId'
- $ref: '#/components/parameters/TagId'
put:
operationId: addTagToSim
tags:
- SIMs
summary: Add a Tag to a SIM
responses:
'200':
description: Tag added to SIM.
delete:
operationId: removeTagFromSim
tags:
- SIMs
summary: Remove a Tag from a SIM
responses:
'200':
description: Tag removed from SIM.
/usage:
get:
operationId: getUsage
tags:
- Usage
summary: Retrieve usage for all SIMs
description: >-
Retrieves all usage associated with all SIMs connected to the
account/organization.
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- name: filter
in: query
schema:
type: string
- name: group
in: query
schema:
type: string
responses:
'200':
description: Usage records.
content:
application/json:
schema:
$ref: '#/components/schemas/Usage'
/usage/{sim_id}:
parameters:
- $ref: '#/components/parameters/SimId'
get:
operationId: getSimUsage
tags:
- Usage
summary: Retrieve usage for a specific SIM
responses:
'200':
description: Usage records for the SIM.
content:
application/json:
schema:
$ref: '#/components/schemas/Usage'
/usage/tag-total/{tag_id}:
parameters:
- $ref: '#/components/parameters/TagId'
get:
operationId: getTagTotalUsage
tags:
- Usage
summary: Retrieve total usage by Tag
description: >-
Retrieves aggregated usage for all SIMs associated with the given Tag.
responses:
'200':
description: Aggregated usage for the Tag.
content:
application/json:
schema:
$ref: '#/components/schemas/Usage'
/sms/usage/:
get:
operationId: getSmsUsageAll
tags:
- SMS
summary: Retrieve SMS usage for all SIMs
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- name: timestamp
in: query
schema:
type: string
format: date
- name: order
in: query
schema:
type: string
enum: [ASC, DESC]
default: DESC
responses:
'200':
description: SMS usage records.
/sms/usage/{sim_id}:
parameters:
- $ref: '#/components/parameters/SimId'
get:
operationId: getSmsUsageForSim
tags:
- SMS
summary: Retrieve SMS usage for a specific SIM
parameters:
- $ref: '#/components/parameters/Limit'
- $ref: '#/components/parameters/Offset'
- name: timestamp
in: query
schema:
type: string
format: date
- name: order
in: query
schema:
type: string
enum: [ASC, DESC]
default: DESC
responses:
'200':
description: SMS usage records for the SIM.
/sms/{sim_id}:
parameters:
- $ref: '#/components/parameters/SimId'
post:
operationId: sendSms
tags:
- SMS
summary: Send SMS to a device
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SendSmsRequest'
responses:
'200':
description: SMS accepted for delivery.
/network-whitelists:
get:
operationId: listNetworkLists
tags:
- Network Lists
summary: Retrieve all Network Lists
responses:
'200':
description: A list of Network List objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/NetworkList'
post:
operationId: createNetworkList
tags:
- Network Lists
summary: Create a Network List
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkList'
responses:
'200':
description: Network List created.
/network-whitelists/{network_whitelist_name}:
parameters:
- name: network_whitelist_name
in: path
required: true
schema:
type: string
get:
operationId: getNetworkList
tags:
- Network Lists
summary: Retrieve a specific Network List
responses:
'200':
description: A Network List object.
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkList'
patch:
operationId: updateNetworkList
tags:
- Network Lists
summary: Update a Network List
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/NetworkList'
responses:
'200':
description: Network List updated.
delete:
operationId: deleteNetworkList
tags:
- Network Lists
summary: Delete a Network List
description: All SIM mappings must be removed before deletion.
responses:
'200':
description: Network List deleted.
/webhooks:
get:
operationId: listWebhooks
tags:
- Webhooks
summary: Retrieve all webhooks
responses:
'200':
description: A list of webhook objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Webhook'
post:
operationId: createWebhook
tags:
- Webhooks
summary: Create a webhook
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
responses:
'200':
description: Webhook created.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
/webhooks/{webhook_id}:
parameters:
- name: webhook_id
in: path
required: true
schema:
type: string
get:
operationId: getWebhook
tags:
- Webhooks
summary: Retrieve a specific webhook
responses:
'200':
description: A webhook object.
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
patch:
operationId: updateWebhook
tags:
- Webhooks
summary: Update a webhook
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Webhook'
responses:
'200':
description: Webhook updated.
delete:
operationId: deleteWebhook
tags:
- Webhooks
summary: Delete a webhook
responses:
'200':
description: Webhook deleted.
/connectors:
get:
operationId: listConnectors
tags:
- Connectors
summary: Retrieve all Connectors
description: Returns information for all registered Connectors (Enterprise package).
responses:
'200':
description: A list of Connector objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Connector'
post:
operationId: createConnector
tags:
- Connectors
summary: Create a Connector
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Connector'
responses:
'200':
description: Connector created.
/connectors/{connector_name}:
parameters:
- name: connector_name
in: path
required: true
schema:
type: string
patch:
operationId: updateConnector
tags:
- Connectors
summary: Update a Connector
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Connector'
responses:
'200':
description: Connector updated.
delete:
operationId: deleteConnector
tags:
- Connectors
summary: Delete a Connector
description: All mappings to the Connector must be removed first.
responses:
'200':
description: Connector deleted.
/tags/search/tags:
get:
operationId: searchTags
tags:
- Tags
summary: Search Tags
description: >-
Returns Tags for the organization. Tags are created and updated in the
web app, not via the API.
responses:
'200':
description: A list of Tag objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Tag'
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: Authorization
description: >-
Organization-scoped API key supplied in the Authorization header.
Generated in the Onomondo platform and coupled to the organization
under which it is created.
parameters:
SimId:
name: sim_id
in: path
required: true
description: The Onomondo SIM identifier.
schema:
type: string
TagId:
name: tag_id
in: path
required: true
description: The Tag identifier (UUID).
schema:
type: string
Limit:
name: limit
in: query
description: Maximum number of objects to return (1-1000).
schema:
type: integer
minimum: 1
maximum: 1000
default: 1000
Offset:
name: offset
in: query
description: Number of objects to skip for pagination.
schema:
type: integer
default: 0
schemas:
Sim:
type: object
properties:
id:
type: string
description: The Onomondo SIM identifier.
iccid:
type: string
description: Integrated Circuit Card Identifier.
label:
type: string
nullable: true
activated:
type: boolean
network_whitelist:
type: string
nullable: true
imei_lock:
type: string
nullable: true
connector:
type: string
nullable: true
data_limit:
$ref: '#/components/schemas/DataLimit'
technologies:
$ref: '#/components/schemas/Technologies'
tags:
type: array
items:
type: string
location:
type: object
nullable: true
description: Last known network location of the SIM (read-only).
SimUpdate:
type: object
properties:
label:
type: string
nullable: true
network_whitelist:
type: string
nullable: true
imei_lock:
type: string
nullable: true
connector:
type: string
nullable: true
activated:
type: boolean
data_limit:
$ref: '#/components/schemas/DataLimit'
technologies:
$ref: '#/components/schemas/Technologies'
tags:
type: array
items:
type: string
DataLimit:
type: object
properties:
total:
type: number
description: Total data limit.
type:
type: string
description: Limit period type.
alert_threshold:
type: number
description: Threshold at which a cost/usage alert is triggered.
Technologies:
type: object
properties:
sms:
type: boolean
2g_3g:
type: boolean
4g:
type: boolean
Usage:
type: object
properties:
usage:
type: array
items:
type: object
properties:
sim_id:
type: string
bytes:
type: integer
description: Total bytes used.
timestamp:
type: string
format: date-time
SendSmsRequest:
type: object
required:
- from
- text
properties:
from:
type: string
description: Numeric (0-15 digits) or alphanumeric (1-10 chars) sender.
text:
type: string
description: Message content or encoded data.
type:
type: string
enum: [text, binary]
default: text
encoding:
type: string
enum: [hex, base64]
description: Required when type is binary.
NetworkList:
type: object
properties:
name:
type: string
tags:
type: array
items:
type: string
networks:
type: array
items:
type: object
properties:
mcc:
type: string
description: Mobile Country Code.
mnc:
type: string
description: Mobile Network Code.
Webhook:
type: object
required:
- url
properties:
id:
type: string
url:
type: string
description: HTTPS endpoint; must start with https://.
active:
type: boolean
label:
type: string
nullable: true
tags:
type: array
description: Tag IDs to filter on; empty array includes all tags.
items:
type: string
exclude_types:
type: array
description: Event types to exclude from delivery.
items:
type: string
enum:
- usage
- usage-sms
- network-registration
- network-deregistration
- network-authentication
- sms
- location
- cost-alert
Connector:
type: object
properties:
name:
type: string
minLength: 3
maxLength: 255
type:
type: string
enum: [https, tls, microsoft_azure_iot, aws_iot_core]
tags:
type: array
items:
type: string
format: uuid
passthrough:
type: array
items:
type: string
options:
type: object
description: Connector-specific configuration.
Tag:
type: object
properties:
id:
type: string
format: uuid
name:
type: string