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