canonical: https://jentic.com/apis/emnify.net/emnify-api-core

# EMnify API

Jentic publishes the only available OpenAPI specification for EMnify API, keeping it validated and agent-ready. EMnify is a cellular IoT connectivity platform for managing SIMs, endpoints, and SMS across global networks. This compact API exposes the core operations needed to authenticate, manage SIM lifecycle, configure endpoints, send SMS, and read service profiles and tariff plans. Use it for IoT fleet operations and integrations that need only the essential SIM and endpoint controls without the full Enterprise surface.

## For AI agents

Authenticate, manage SIM and endpoint lifecycle, send SMS, and read service profiles on EMnify's cellular IoT platform.

## Scope

Does not handle device firmware, MQTT data brokering, or non-cellular networks - use for cellular SIM, endpoint, and SMS management only.

## Capabilities

- Authenticate against EMnify and obtain a bearer token for subsequent calls
- Create, list, update, and delete SIMs to manage the cellular IoT fleet
- Provision and update endpoints that bind SIMs to IoT devices
- Send SMS to a managed endpoint over the EMnify network
- List service profiles and tariff plans available to the account
- Drive day-to-day SIM and endpoint operations from infrastructure code

## Use cases

### IoT Fleet SIM Provisioning

Provision and manage SIMs in EMnify as part of a device manufacturing or activation flow rather than clicking through the dashboard. The API supports list, create, update, and delete operations on SIMs and endpoints, enabling fleets of thousands of devices to be brought online from automation. Operations teams use this to keep SIM state in sync with the device manufacturing system of record.

Example prompt: POST /sim with the SIM identifier and service profile, then POST /endpoint to bind the SIM to a device record.

### SMS Command Channel

Send SMS to managed IoT endpoints to deliver commands or trigger actions on devices that prefer SMS over data. The API exposes POST /sms for sending and the endpoint resource for managing the destination. Engineering teams use this for low-power devices and as a fallback channel when data connectivity is unavailable.

Example prompt: POST /sms with the endpoint identifier and message body to deliver a command to the device.

### Service Profile and Tariff Reconciliation

Read service profiles and tariff plans periodically to reconcile billing assumptions and confirm that fleet SIMs are on the right plan. The API exposes GET /service_profile and GET /tariff_plan for inventory listing. Finance and operations teams use this to spot mis-assigned SIMs before invoices are generated.

Example prompt: Call GET /service_profile and GET /tariff_plan and produce a reconciliation report against the local SIM-to-plan mapping.

### Agent-Driven SIM Onboarding

An agent in a device manufacturing flow takes a new device record, creates the SIM and endpoint in EMnify, sends a provisioning SMS, and writes back the resulting connectivity status. Through Jentic the agent searches by intent, loads the schemas, and executes the calls without bespoke client code. Onboarding a new device drops from a multi-step manual process to a single agent task.

Example prompt: Search Jentic for 'provision a new IoT SIM', execute POST /authenticate, POST /sim, POST /endpoint, and POST /sms in sequence, and return the connectivity verdict.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /authenticate | Authenticate and obtain a bearer token |
| GET | /sim | List SIMs in the fleet |
| POST | /sim | Create a new SIM |
| PATCH | /sim/{sim_id} | Update a SIM |
| GET | /endpoint | List endpoints |
| POST | /endpoint | Create an endpoint |
| POST | /sms | Send an SMS to an endpoint |
| GET | /service_profile | List service profiles |

## Key resources

- **Authenticate** — Exchange credentials for a bearer token used by subsequent calls
- **SIM** — Create, list, retrieve, update, and delete SIMs in the fleet
- **Endpoint** — Provision and update endpoints that bind SIMs to devices
- **SMS** — Send SMS to managed IoT endpoints
- **Service Profile** — List service profiles available to the account
- **Tariff Plan** — List tariff plans available to the account

## Why Jentic

- **Setup:** Wiring the EMnify API by hand means authenticating at /authenticate for a bearer token, formatting SIM, endpoint, and SMS calls, and handling your own errors against https://cdn.emnify.net/api/v1. Through Jentic you install once, import the EMnify API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** The EMnify API puts the SIM id in the URL path (/sim/{sim_id}), so a rule can pin your agent to one SIM: it can read and update that SIM and nothing else. You choose the operations it may call, so ones like creating a new SIM or sending SMS are not included unless you add them.
- **Credential handling:** Your EMnify token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list SIMs on the account' or 'update a SIM status', and Jentic returns the matching EMnify operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **EMnify Enterprise API** — Larger enterprise surface from the same vendor with 180+ endpoints
- **Particle Device Cloud API** — Device cloud platform with built-in connectivity for IoT
- **Twilio API** — Pair with Twilio for non-cellular SMS delivery to operators

## FAQ

### Why is there no official OpenAPI spec for EMnify API?

EMnify does not publish a stable OpenAPI specification at this entry point. Jentic generates and maintains this spec so that AI agents and developers can call EMnify API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the EMnify API use?

The API uses HTTP Bearer authentication. Call POST /authenticate to obtain a token, then send it in the Authorization header on subsequent requests. Through Jentic, the credentials are stored encrypted in the vault and the token is injected automatically.

### Can I send SMS to an IoT device with the EMnify API?

Yes. POST /sms accepts an endpoint identifier and message body and queues the SMS for delivery over the EMnify network.

### How do I provision a new SIM through Jentic?

Search Jentic for 'provision a new IoT SIM', load the schema for POST /sim, and execute it. Follow with POST /endpoint to bind the SIM to a device record.

### What are the rate limits for the EMnify API?

The OpenAPI spec does not declare quantitative rate limits; EMnify enforces limits at the account level. Treat HTTP 429 responses as authoritative and back off using the Retry-After header when present.

### Can I list available tariff plans before assigning one?

Yes. GET /tariff_plan returns the tariff plans available to the account, and GET /service_profile returns the matching service profiles, so the right plan can be selected before SIM creation.

### Can I limit what my agent is allowed to do with the EMnify API?

Yes. Because you run Jentic One yourself, your own rules decide which EMnify operations and credentials the agent may use, and it can call nothing else. The EMnify API puts the SIM id in the URL path (/sim/{sim_id}), so you can pin the agent to a single SIM and let it read and update only that SIM. You also choose which operations are in scope, so calls like creating a new SIM (POST /sim) or sending SMS (POST /sms) are excluded unless you add them.
