Onomondo Networks API
Create, retrieve, update, and delete Network Lists - named allow-lists of MCC/MNC network entries with associated Tags that control which mobile networks SIMs may attach to.
Create, retrieve, update, and delete Network Lists - named allow-lists of MCC/MNC network entries with associated Tags that control which mobile networks SIMs may attach to.
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