> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.emnify.com/developers/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.emnify.com/_mcp/server. # Developers ## Docs - [Application tokens](https://docs.emnify.com/developers/auth/application-tokens.md): Create and authenticate with application tokens for secure M2M communication, including security best practices, IP restrictions, and token expiration handling. - [User credentials](https://docs.emnify.com/developers/auth/user-credentials.md): Authenticate with username and password to access API operations that span multiple Workspaces, including refresh token management. - [Multi-factor authentication](https://docs.emnify.com/developers/auth/multi-factor-authentication.md): Handle multi-factor authentication (MFA) when authenticating with user credentials, including the two-step verification flow and trusted device management. - [JWTs](https://docs.emnify.com/developers/auth/jwts.md): Understand JSON Web Token (JWT) structure, decode and inspect tokens, and handle token expiration in API requests. - [Conventions](https://docs.emnify.com/developers/api-guidelines/conventions.md): Understand RESTful API conventions including HTTP methods, authentication with JWTs, URL structure, headers, and response codes. - [Permissions](https://docs.emnify.com/developers/api-guidelines/permissions.md): How API authorization works, including resource and action permissions and the system roles that grant them. - [Endpoints by permission](https://docs.emnify.com/developers/api-guidelines/permission-endpoints.md): The API permissions that grant access to more than one endpoint, so you can see the full reach of a permission before you add it to a custom role. - [Manage roles and permissions](https://docs.emnify.com/developers/api-guidelines/manage-permissions.md): Discover available permissions, create and update custom roles, and assign roles to users via the API. - [Role templates](https://docs.emnify.com/developers/api-guidelines/role-templates.md): Permission sets for three common jobs, Procurement, Device Manager, and Finance, and how to create each one as a custom role. - [Rate limits](https://docs.emnify.com/developers/api-guidelines/rate-limits.md): Learn about API rate limits including the 2,000 calls per 5 minutes per IP limit, 10 million monthly calls per account, and specific endpoint limits. - [Collections and pagination](https://docs.emnify.com/developers/api-guidelines/collections-pagination.md): Learn how to implement paging, filtering, and sorting for large datasets in API collection GET requests with query parameters and response headers. - [Concatenated SMS](https://docs.emnify.com/developers/api-guidelines/concatenated-sms.md): Send SMS messages longer than 160 characters using concatenation with User Data Headers (UDH) via the API. - [User management](https://docs.emnify.com/developers/api-guidelines/user-management.md): Manage users in a multi-tenancy system with organization-based user administration, roles, and permissions via the API. - [Error handling](https://docs.emnify.com/developers/api-guidelines/errors.md): Handle API errors with comprehensive JSON error codes, tokens, and messages including validation, authentication, and resource-specific errors. - [Register SIMs](https://docs.emnify.com/developers/connectivity/register-sims.md): Register SIM cards in bulk using Batch Identification Codes (BIC) via the API to prepare them for device assignment. - [Create endpoints](https://docs.emnify.com/developers/connectivity/create-endpoints.md): Create virtual device representations (endpoints) with service profiles, tariff profiles, and SIM assignments via the API. - [Manage devices](https://docs.emnify.com/developers/connectivity/manage-devices.md): Manage device connectivity by updating SIM and endpoint statuses including activation, suspension, enabling, and disabling via the API. - [Configure DNS settings](https://docs.emnify.com/developers/connectivity/configure-dns.md): Configure custom DNS settings with primary and secondary nameservers for device networking using the API. - [Factory test mode](https://docs.emnify.com/developers/connectivity/factory-test-mode.md): Test SIM cards with Factory Test Mode (FTM) providing 100 KB data and 10 SMS free of charge before production deployment. - [SMS operations](https://docs.emnify.com/developers/connectivity/sms-operations.md): Send, receive, list, and cancel SMS messages for IoT devices using the endpoint API operations. - [Advanced eSIM](https://docs.emnify.com/developers/connectivity/euicc.md): Manage SGP.32 IoT eSIM profiles programmatically using the emnify eUICC API - list eUICCs, schedule profile operations, and monitor operation status. - [Prepare your device for Advanced eSIM](https://docs.emnify.com/developers/connectivity/advanced-esim-device-requirements.md): What your device must support so the eUICC can poll the eIM and run profile operations, and how to check each item. - [API callbacks](https://docs.emnify.com/developers/callbacks/api.md): Configure API callback objects for Data Streamer integration with callback URLs and organizational settings. - [SMS callbacks](https://docs.emnify.com/developers/callbacks/sms.md): Receive mobile-originated SMS via API callbacks with JWT authentication and delivery receipts for A2P and P2P messaging. - [Toggle endpoint state (JavaScript)](https://docs.emnify.com/developers/examples/endpoint-toggle-js.md): JavaScript code example to toggle endpoint status between enabled and disabled states using the API. - [Get device status (JavaScript)](https://docs.emnify.com/developers/examples/device-status-js.md): JavaScript code example to retrieve the status of all connected devices in your account using the API. - [curl](https://docs.emnify.com/developers/examples/curl.md): Common API operations demonstrated using curl including user authentication and JWT token validation examples. - [Data Streamer](https://docs.emnify.com/developers/reference/data-streamer.md): Stream event and usage data with detailed object schemas for data types, traffic types, tariffs, operators, and volume tracking. - [Events](https://docs.emnify.com/developers/reference/events.md): Event API reference with comprehensive event types, severities, sources, and detailed object schemas for network and API events. - [Flow Logs](https://docs.emnify.com/developers/reference/flow-logs.md): Flow Logs developer reference for the emnify REST API — the destination-aggregated and per-flow detail objects, their fields, enums, filtering, sorting, and pagination. - [IMSI](https://docs.emnify.com/developers/reference/imsi.md): IMSI API reference for managing International Mobile Subscriber Identity records with retrieval and CRUD operations. - [SIM](https://docs.emnify.com/developers/reference/sim.md): SIM API reference with JSON schemas for SIM card management including status, activation, ICCID, IMSI, and endpoint assignments. - [Endpoint](https://docs.emnify.com/developers/reference/endpoint.md): Endpoint API reference with JSON object schemas for device management including status, service profiles, tariff profiles, and SIM data. - [Service profile](https://docs.emnify.com/developers/reference/service-profile.md): Service profile API reference for configuring endpoint services, traffic limits, network settings, and callback configurations. - [Organization](https://docs.emnify.com/developers/reference/organization.md): Organization API reference for managing hierarchical organization structures, contacts, and multi-tenancy relationships. - [Tariff plan](https://docs.emnify.com/developers/reference/tariff-plan.md): Tariff plan API reference for managing pricing plans with payment intervals, minimum runtime, and contract terms. - [Tariff profile](https://docs.emnify.com/developers/reference/tariff-profile.md): Tariff profile API reference for assigning tariffs to endpoints with rates for data, SMS, and SIM lifecycle operations. - [emnify GraphQL API](https://docs.emnify.com/developers/graphql.md): Query language API for customizable responses with interactive playground and documentation. - [Use the GraphiQL IDE](https://docs.emnify.com/developers/graphql/graphiql-ide.md): Explore and test GraphQL queries using the in-browser IDE. - [Integration guides](https://docs.emnify.com/developers/integrations.md): Step-by-step guides to integrate emnify services with your existing infrastructure - [AWS (S3 and Kinesis) Data Streamer integration](https://docs.emnify.com/developers/integrations/data-streamer/aws-s3-kinesis.md): Integrate with AWS S3 and Kinesis Data Streamer using IAM roles and trust relationships for secure data streaming. - [Integrate OpenVPN on Linux](https://docs.emnify.com/developers/integrations/openvpn-linux-ubuntu.md): Step-by-step guide for integrating OpenVPN on Linux to use on devices with emnify eSIMs. - [Integrate OpenVPN on macOS](https://docs.emnify.com/developers/integrations/openvpn-macos.md): Step-by-step guide for integrating OpenVPN on macOS to use on devices with emnify eSIMs. - [Integrate OpenVPN on Windows](https://docs.emnify.com/developers/integrations/openvpn-windows.md): Step-by-step guide for integrating OpenVPN on Windows to use on devices with emnify eSIMs. - [Troubleshoot device connectivity in Jira Service Desk](https://docs.emnify.com/developers/integrations/jira-service-desk.md): Create automations to help your team troubleshoot device connectivity in Jira Service Desk using the emnify REST API - [Troubleshoot device connectivity in Zendesk Support](https://docs.emnify.com/developers/integrations/zendesk-support-app.md): Build a Zendesk app to help your team troubleshoot device connectivity using the emnify REST API - [AI integration at emnify](https://docs.emnify.com/developers/developer-tools/ai-integration.md): AI chat and MCP server on docs.emnify.com for public documentation, plus the Portal AI assistant for emnify customers. - [emnify SDKs](https://docs.emnify.com/developers/sdks.md): Access emnify APIs through SDKs in Python and Java to automate SIM state management, monitor connected devices, and reduce application development costs. - [Concepts](https://docs.emnify.com/developers/sdks/concepts.md): Must-knows for working with the emnify SDKs - [Support and contribute](https://docs.emnify.com/developers/sdks/support.md): Get support and give us feedback on the emnify SDKs - [Getting started with the emnify Python SDK](https://docs.emnify.com/developers/sdks/python/quickstart.md): Step-by-step guide for installing and using the emnify Python SDK - [Python SDK examples](https://docs.emnify.com/developers/sdks/python/examples.md): Code samples showing how to use the emnify python SDK - [Getting started with the emnify Java SDK](https://docs.emnify.com/developers/sdks/java/quickstart.md): Step-by-step guide for installing and using the emnify Java SDK - [Java SDK examples](https://docs.emnify.com/developers/sdks/java/examples.md): Code samples showing how to use the emnify Java SDK ## API Docs - Enterprise > Authentication [Retrieve authentication token](https://docs.emnify.com/developers/api/authentication/authenticate.md) - Enterprise > Authentication [Create an MFA key](https://docs.emnify.com/developers/api/authentication/post-mfa.md) - Enterprise > Authentication [Activate MFA key](https://docs.emnify.com/developers/api/authentication/user-mfa-by-id-patch.md) - Enterprise > Authentication [Delete an MFA key](https://docs.emnify.com/developers/api/authentication/user-mfa-by-user-id-and-key-id-delete.md) - Enterprise > Authentication [List MFA key statuses](https://docs.emnify.com/developers/api/authentication/user-mfa-status-get.md) - Enterprise > Authentication [List MFA key types](https://docs.emnify.com/developers/api/authentication/user-mfa-type-get.md) - Enterprise > Authentication [List trusted devices](https://docs.emnify.com/developers/api/authentication/user-mfa-trusted-device-by-user-id-get.md) - Enterprise > Authentication [Delete a trusted device](https://docs.emnify.com/developers/api/authentication/user-mfa-trusted-device-by-user-id-and-device-id-delete.md) - Enterprise > Password Management and Activation [Invite a user](https://docs.emnify.com/developers/api/password-management-and-activation/user-v-2-invitation.md) - Enterprise > Password Management and Activation [Activate user](https://docs.emnify.com/developers/api/password-management-and-activation/user-activation-post.md) - Enterprise > Password Management and Activation [Resend user activation email](https://docs.emnify.com/developers/api/password-management-and-activation/user-activation-resend-post.md) - Enterprise > Password Management and Activation [Change password](https://docs.emnify.com/developers/api/password-management-and-activation/user-password-patch.md) - Enterprise > Endpoint [List endpoints](https://docs.emnify.com/developers/api/endpoint/get-endpoints.md) - Enterprise > Endpoint [Create an endpoint](https://docs.emnify.com/developers/api/endpoint/create-endpoint.md) - Enterprise > Endpoint [Bulk create endpoints](https://docs.emnify.com/developers/api/endpoint/bulk-create-endpoint.md) - Enterprise > Endpoint [Bulk delete endpoints](https://docs.emnify.com/developers/api/endpoint/bulk-delete-endpoint.md) - Enterprise > Endpoint [Bulk update endpoints](https://docs.emnify.com/developers/api/endpoint/bulk-update-endpoint.md) - Enterprise > Endpoint [List endpoint statuses](https://docs.emnify.com/developers/api/endpoint/endpoint-status-get.md) - Enterprise > Endpoint [Endpoint details](https://docs.emnify.com/developers/api/endpoint/endpoint-by-id-get.md) - Enterprise > Endpoint [Delete an endpoint](https://docs.emnify.com/developers/api/endpoint/endpoint-by-id-delete.md) - Enterprise > Endpoint [Update an endpoint](https://docs.emnify.com/developers/api/endpoint/endpoint-by-id-patch.md) - Enterprise > Endpoint [Endpoint connectivity status](https://docs.emnify.com/developers/api/endpoint/endpoint-connectivity-by-id-get.md) - Enterprise > Endpoint [Reset endpoint connectivity](https://docs.emnify.com/developers/api/endpoint/update-endpoint-connectivity-by-id.md) - Enterprise > Endpoint [List endpoint events](https://docs.emnify.com/developers/api/endpoint/endpoint-events-by-id.md) - Enterprise > Endpoint [Endpoint usage and cost statistics](https://docs.emnify.com/developers/api/endpoint/endpoint-stats-by-id-get.md) - Enterprise > Endpoint [Retrieve daily usage statistics for an endpoint](https://docs.emnify.com/developers/api/endpoint/endpoint-stats-daily-by-id-get.md) - Enterprise > Endpoint [List sent and received SMS](https://docs.emnify.com/developers/api/endpoint/endpoint-sms-by-id-get.md) - Enterprise > Endpoint [Send SMS to an endpoint](https://docs.emnify.com/developers/api/endpoint/endpoint-sms-by-id-post.md) - Enterprise > Endpoint [SMS details](https://docs.emnify.com/developers/api/endpoint/endpoint-sms-by-endpoint-id-and-sms-id-get.md) - Enterprise > Endpoint [Cancel SMS](https://docs.emnify.com/developers/api/endpoint/endpoint-sms-by-endpoint-id-and-sms-id-delete.md) - Enterprise > Endpoint [Retrieve connectivity information for an endpoint](https://docs.emnify.com/developers/api/endpoint/get-connectivity-info-by-endpoint-id.md) - Enterprise > Endpoint [List active traffic limit extensions](https://docs.emnify.com/developers/api/endpoint/get-endpoint-traffic-limit-extensions.md) - Enterprise > Endpoint [Create traffic limit extension](https://docs.emnify.com/developers/api/endpoint/create-endpoint-traffic-limit-extension.md) - Enterprise > Endpoint [Delete all traffic limit extensions for an endpoint](https://docs.emnify.com/developers/api/endpoint/delete-endpoint-traffic-limit-extensions.md) - Enterprise > Endpoint [List operator blacklist for endpoint](https://docs.emnify.com/developers/api/endpoint/endpoint-operator-blacklist-by-endpoint-id-get.md) - Enterprise > Endpoint [Add an operator to the blacklist](https://docs.emnify.com/developers/api/endpoint/endpoint-operator-blacklist-by-ep-id-and-operator-id-put.md) - Enterprise > Endpoint [Remove an operator from the blacklist](https://docs.emnify.com/developers/api/endpoint/endpoint-operator-blacklist-by-ep-id-and-operator-id-delete.md) - Enterprise > Endpoint [Retrieve data quota details](https://docs.emnify.com/developers/api/endpoint/endpoint-quota-data-by-endpoint-id-get.md) - Enterprise > Endpoint [Set data quota](https://docs.emnify.com/developers/api/endpoint/endpoint-quota-data-by-endpoint-id-post.md) - Enterprise > Endpoint [Remove data quota](https://docs.emnify.com/developers/api/endpoint/delete-endpoint-data-quota-by-id.md) - Enterprise > Endpoint [Show SMS quota details](https://docs.emnify.com/developers/api/endpoint/endpoint-quota-sms-by-endpoint-id-get.md) - Enterprise > Endpoint [Set SMS quota](https://docs.emnify.com/developers/api/endpoint/endpoint-quota-sms-by-endpoint-id-post.md) - Enterprise > Endpoint [Remove SMS quota](https://docs.emnify.com/developers/api/endpoint/delete-endpoint-sms-quota-by-id.md) - Enterprise > Organization [Organization usage and costs statistics per day for the current month](https://docs.emnify.com/developers/api/organization/statistics-daily-by-id-get.md) - Enterprise > Organization [My organization details](https://docs.emnify.com/developers/api/organization/my-organisation-get.md) - Enterprise > Organization [List organization statuses](https://docs.emnify.com/developers/api/organization/organisation-status-get.md) - Enterprise > Organization [Monthly organization traffic and cost statistics](https://docs.emnify.com/developers/api/organization/get-organisation-monthly-stats.md) - Enterprise > Organization [Daily organization traffic and cost statistics](https://docs.emnify.com/developers/api/organization/get-organisation-daily-stats.md) - Enterprise > Organization [Hourly organization traffic statistics](https://docs.emnify.com/developers/api/organization/get-organisation-hourly-stats.md) - Enterprise > Organization [Update assigned tariff](https://docs.emnify.com/developers/api/organization/update-organisation-tariff.md) - Enterprise > Organization [Assign a ratezone inclusive volume to an organization](https://docs.emnify.com/developers/api/organization/assign-ratezone-inclusive-volume.md) - Enterprise > Organization [Get list of active organization inclusive volumes](https://docs.emnify.com/developers/api/organization/get-active-organisation-inclusive-volume.md) - Enterprise > Sim [List SIMs](https://docs.emnify.com/developers/api/sim/sim-per-page-sort-by-q-and-page-get.md) - Enterprise > Sim [List SIM statuses](https://docs.emnify.com/developers/api/sim/sim-status-get.md) - Enterprise > Sim [SIM details](https://docs.emnify.com/developers/api/sim/sim-by-id-get.md) - Enterprise > Sim [Delete a SIM](https://docs.emnify.com/developers/api/sim/sim-by-id-delete.md) - Enterprise > Sim [Update a SIM](https://docs.emnify.com/developers/api/sim/sim-by-id-patch.md) - Enterprise > Sim [SIM usage and cost statistics](https://docs.emnify.com/developers/api/sim/sim-stats-by-id-get.md) - Enterprise > Sim [Daily SIM usage statistics](https://docs.emnify.com/developers/api/sim/sim-statistics-daily-by-id-get.md) - Enterprise > Sim [List SIM events](https://docs.emnify.com/developers/api/sim/sim-event-page-per-page-sort-by-sim-id-and-q-get.md) - Enterprise > Sim [Validate SIM batch by BIC](https://docs.emnify.com/developers/api/sim/validate-sim-batch-by-bic.md) - Enterprise > Sim [Register a given batch by BIC](https://docs.emnify.com/developers/api/sim/register-sim-batch-by-bic.md) - Enterprise > Sim [Bulk delete SIMs](https://docs.emnify.com/developers/api/sim/bulk-sim-delete.md) - Enterprise > Sim [Migrate SIMs between Workspaces](https://docs.emnify.com/developers/api/sim/sim-migration-workspace.md) - Enterprise > Events [List events](https://docs.emnify.com/developers/api/events/get-events.md) - Enterprise > Events [List event types](https://docs.emnify.com/developers/api/events/event-type-get.md) - Enterprise > Lookups [List country codes](https://docs.emnify.com/developers/api/lookups/country-get.md) - Enterprise > Lookups [List currencies](https://docs.emnify.com/developers/api/lookups/currency-get.md) - Enterprise > Lookups [List data blocksizes](https://docs.emnify.com/developers/api/lookups/data-blocksize-get.md) - Enterprise > Lookups [List data throttles](https://docs.emnify.com/developers/api/lookups/data-throttle-get.md) - Enterprise > Lookups [List breakout regions](https://docs.emnify.com/developers/api/lookups/breakout-region-get.md) - Enterprise > Lookups [List public breakout IP ranges](https://docs.emnify.com/developers/api/lookups/breakout-ip-range-get.md) - Enterprise > Lookups [List ESME interface types](https://docs.emnify.com/developers/api/lookups/esme-interface-type-get.md) - Enterprise > Lookups [List RAT types](https://docs.emnify.com/developers/api/lookups/rat-type.md) - Enterprise > Lookups [Get list of service levels](https://docs.emnify.com/developers/api/lookups/list-service-levels.md) - Enterprise > Operator [List operators](https://docs.emnify.com/developers/api/operator/operator-get.md) - Enterprise > Application Tokens [List application tokens](https://docs.emnify.com/developers/api/application-tokens/application-token-get.md) - Enterprise > Application Tokens [Create application token](https://docs.emnify.com/developers/api/application-tokens/application-token-post.md) - Enterprise > Application Tokens [Update application token](https://docs.emnify.com/developers/api/application-tokens/application-token-by-id-patch.md) - Enterprise > Tariff Profiles [List tariff profiles](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-get.md) - Enterprise > Tariff Profiles [Create tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-post.md) - Enterprise > Tariff Profiles [Tariff profile details](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-by-id-get.md) - Enterprise > Tariff Profiles [Delete tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-by-id-delete.md) - Enterprise > Tariff Profiles [Update tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-by-id-patch.md) - Enterprise > Tariff Profiles [Assign ratezone to tarriff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-ratezone-selection-by-tp-id-and-rz-id-put.md) - Enterprise > Tariff Profiles [Delete ratezone from tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-ratezone-selection-by-tp-id-and-rz-id-delete.md) - Enterprise > Tariff Profiles [Get the operator blocklist for a specific tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-operator-block-list-operator-get.md) - Enterprise > Tariff Profiles [Get operator blocklist for a specific tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-operator-block-operator-by-id-get.md) - Enterprise > Tariff Profiles [Block the operator completely for a given tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-operator-block-operator-by-id-put.md) - Enterprise > Tariff Profiles [Remove an operator from the blocklist](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-operator-block-operator-by-id-delete.md) - Enterprise > Tariff Profiles [Block specific RAT types](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-operator-block-operator-by-id-rat-type-post.md) - Enterprise > Tariff Profiles [Unblock a specific RAT type](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-operator-block-operator-by-id-rat-type-by-id-delete.md) - Enterprise > Tariff Profiles [List tariff profile coverage](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-coverage-by-tp-id-get.md) - Enterprise > Tariff Profiles [Assign inclusive volume to tarriff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-inclusive-volume-assignment.md) - Enterprise > Tariff Profiles [Unassign inclusive volume from tariff profile](https://docs.emnify.com/developers/api/tariff-profiles/tariff-profile-inclusive-volume-remove-assignment.md) - Enterprise > Service Profiles [List service profiles](https://docs.emnify.com/developers/api/service-profiles/service-profile-get.md) - Enterprise > Service Profiles [Create service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-post.md) - Enterprise > Service Profiles [Retrieve a service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-by-profile-id-get.md) - Enterprise > Service Profiles [Delete a service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-by-profile-id-delete.md) - Enterprise > Service Profiles [Update service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-by-profile-id-patch.md) - Enterprise > Service Profiles [Remove all quotas of assigned endpoints](https://docs.emnify.com/developers/api/service-profiles/delete-quota-by-service-profile-id.md) - Enterprise > Service Profiles [Add a service to a service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-service-by-profile-and-service-put.md) - Enterprise > Service Profiles [Remove a service from a service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-service-by-profile-and-service-delete.md) - Enterprise > Service Profiles [Add SMS limit to service profile](https://docs.emnify.com/developers/api/service-profiles/add-traffic-limit.md) - Enterprise > Service Profiles [Remove SMS limit from a service profile](https://docs.emnify.com/developers/api/service-profiles/remove-traffic-limit.md) - Enterprise > Service Profiles [List data limits of service profile](https://docs.emnify.com/developers/api/service-profiles/list-service-profile-traffic-limits.md) - Enterprise > Service Profiles [Add data limit to service profile](https://docs.emnify.com/developers/api/service-profiles/add-service-profile-traffic-limit.md) - Enterprise > Service Profiles [Delete all data limits of a service profile](https://docs.emnify.com/developers/api/service-profiles/remove-service-profile-traffic-limits.md) - Enterprise > Service Profiles [Remove data limit from a service profile](https://docs.emnify.com/developers/api/service-profiles/delete-service-profile-traffic-limit.md) - Enterprise > Service Profiles [Retrieve device-to-device mode of a service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-device-to-device-get.md) - Enterprise > Service Profiles [Update device-to-device mode of a service profile](https://docs.emnify.com/developers/api/service-profiles/service-profile-device-to-device-put.md) - Enterprise > Service Lookups and Configuration [List services](https://docs.emnify.com/developers/api/service-lookups-and-configuration/service-get.md) - Enterprise > Service Lookups and Configuration [Get service SMS limit](https://docs.emnify.com/developers/api/service-lookups-and-configuration/service-traffic-limit-by-id-get.md) - Enterprise > Service Lookups and Configuration [List traffic limits](https://docs.emnify.com/developers/api/service-lookups-and-configuration/traffic-limit-get.md) - Enterprise > Service Lookups and Configuration [List DNS configs](https://docs.emnify.com/developers/api/service-lookups-and-configuration/dns-get.md) - Enterprise > Service Lookups and Configuration [Create DNS config](https://docs.emnify.com/developers/api/service-lookups-and-configuration/dns-post.md) - Enterprise > Service Lookups and Configuration [Delete DNS config](https://docs.emnify.com/developers/api/service-lookups-and-configuration/dns-by-id-delete.md) - Enterprise > User Management [List user accounts](https://docs.emnify.com/developers/api/user-management/user-per-page-sort-by-q-and-page-get.md) - Enterprise > User Management [Create user](https://docs.emnify.com/developers/api/user-management/user-per-page-sort-by-q-and-page-post.md) - Enterprise > User Management [List user statuses](https://docs.emnify.com/developers/api/user-management/user-status-get.md) - Enterprise > User Management [List user roles](https://docs.emnify.com/developers/api/user-management/user-role-get.md) - Enterprise > User Management [Get user by ID or username](https://docs.emnify.com/developers/api/user-management/user-by-id-get.md) - Enterprise > User Management [Delete user by ID](https://docs.emnify.com/developers/api/user-management/user-by-id-delete.md) - Enterprise > User Management [Update user by ID](https://docs.emnify.com/developers/api/user-management/user-by-id-patch.md) - Enterprise > User Management [List user events](https://docs.emnify.com/developers/api/user-management/user-event-page-per-page-sort-by-user-id-and-q-get.md) - Enterprise > User Management [List user role permissions](https://docs.emnify.com/developers/api/user-management/user-role-permission-by-id-get.md) - Enterprise > User Management [Assign role to user](https://docs.emnify.com/developers/api/user-management/user-role-by-id-and-role-id-put.md) - Enterprise > User Management [Delete user role](https://docs.emnify.com/developers/api/user-management/user-role-by-id-and-role-id-delete.md) - Enterprise > IP Address Spaces [List IP address spaces](https://docs.emnify.com/developers/api/ip-address-spaces/ip-address-space-get.md) - Enterprise > IP Address Spaces [Create an IP address space](https://docs.emnify.com/developers/api/ip-address-spaces/ip-address-space-post.md) - Enterprise > IP Address Spaces [Get random address spaces](https://docs.emnify.com/developers/api/ip-address-spaces/ip-address-space-available-by-ip-address-version-get.md) - Enterprise > IP Address Spaces [Assign an IP address space to an organization](https://docs.emnify.com/developers/api/ip-address-spaces/ip-address-space-by-id-put.md) - Enterprise > IP Address Spaces [Release an IP address space from an organization](https://docs.emnify.com/developers/api/ip-address-spaces/ip-address-space-by-id-delete.md) - Enterprise > Integrations [List data stream configurations of your organization](https://docs.emnify.com/developers/api/integrations/list-data-streamer-v-2-s.md) - Enterprise > Integrations [Create data stream](https://docs.emnify.com/developers/api/integrations/create-data-streamer.md) - Enterprise > Integrations [Get data stream statuses](https://docs.emnify.com/developers/api/integrations/get-data-streamer-statuses.md) - Enterprise > Integrations [Get data stream types](https://docs.emnify.com/developers/api/integrations/get-data-streamer-data-stream-type.md) - Enterprise > Integrations [Get data stream filter fields](https://docs.emnify.com/developers/api/integrations/get-data-streamer-enum-filter-field-type.md) - Enterprise > Integrations [Get details on existing data stream](https://docs.emnify.com/developers/api/integrations/get-data-streamer-by-id-v-2.md) - Enterprise > Integrations [Delete existing data stream](https://docs.emnify.com/developers/api/integrations/delete-data-streamer-v-2.md) - Enterprise > Integrations [Modify existing data stream](https://docs.emnify.com/developers/api/integrations/patch-v-2-data-stream.md) - Enterprise > Integrations [Restart existing data stream](https://docs.emnify.com/developers/api/integrations/data-streamer-v-2-by-id-restart.md) - Enterprise > Integrations [Retrieve list of API callback URLs](https://docs.emnify.com/developers/api/integrations/get-api-callback-ur-ls.md) - Enterprise > Integrations [Create a callback URL](https://docs.emnify.com/developers/api/integrations/create-callback-url.md) - Enterprise > Integrations [Get a callback URL by ID](https://docs.emnify.com/developers/api/integrations/get-callback-ur-lby-id.md) - Enterprise > Integrations [Delete a callback URL](https://docs.emnify.com/developers/api/integrations/delete-callback-url.md) - Enterprise > Integrations [List API callback secrets](https://docs.emnify.com/developers/api/integrations/get-api-callback-secret.md) - Enterprise > Integrations [Create a callback secret](https://docs.emnify.com/developers/api/integrations/create-callback-secret.md) - Enterprise > Integrations [Get a callback secret by ID](https://docs.emnify.com/developers/api/integrations/get-callback-secretby-id.md) - Enterprise > Integrations [Delete a callback secret](https://docs.emnify.com/developers/api/integrations/delete-callback-secret.md) - Enterprise > Cloud Connect [List all Cloud Connect attachments of an organization](https://docs.emnify.com/developers/api/cloud-connect/get-cloud-connect-attachments.md) - Enterprise > Cloud Connect [List Cloud Connect breakout types](https://docs.emnify.com/developers/api/cloud-connect/get-cloud-connect-breakout-types.md) - Enterprise > Cloud Connect [View details of a Cloud Connect attachment](https://docs.emnify.com/developers/api/cloud-connect/get-cloud-connect-attachment-by-id.md) - Enterprise > Cloud Connect [Delete a specific Cloud Connect attachment](https://docs.emnify.com/developers/api/cloud-connect/delete-cloud-connect-attachment.md) - Enterprise > Cloud Connect [Retry creation of an expired TGW breakout](https://docs.emnify.com/developers/api/cloud-connect/retry-cloud-connect-attachment.md) - Enterprise > Cloud Connect [Create a Cloud Connect attachment via Transit Gateway](https://docs.emnify.com/developers/api/cloud-connect/create-cloud-connect-attachment-tgw.md) - Enterprise > Cloud Connect [Create a Cloud Connect attachment via IPSec VPN](https://docs.emnify.com/developers/api/cloud-connect/create-cloud-connect-attachment-vpn.md) - Enterprise > Cloud Connect [List Cloud Connect prices](https://docs.emnify.com/developers/api/cloud-connect/list-cloud-connect-custom-prices.md) - Enterprise > Cloud Connect [Get list of available Cloud Connect regions by breakout type](https://docs.emnify.com/developers/api/cloud-connect/get-cloud-connect-available-regions-by-breakout-type.md) - Enterprise > Tariff Plans [List organization tariff plans](https://docs.emnify.com/developers/api/tariff-plans/organisation-tariff-plan-by-org-id-get.md) - Enterprise > Tariff Plans [Retrieve your organization's active tariff plan](https://docs.emnify.com/developers/api/tariff-plans/get-active-tariff-plan.md) - Enterprise > Tariff Plans [Get the active tariff plan for the given organization](https://docs.emnify.com/developers/api/tariff-plans/get-organisation-active-tariff-plan.md) - Enterprise > Workspaces [Switch to an assigned Workspace](https://docs.emnify.com/developers/api/workspaces/authenticate-workspace.md) - Enterprise > Workspaces [Accept user invitation](https://docs.emnify.com/developers/api/workspaces/accept-user-invitation.md) - Enterprise > Workspaces [Assign a role to a Workspace user](https://docs.emnify.com/developers/api/workspaces/assign-user-role-by-id.md) - Enterprise > Workspaces [Remove a role from a Workspace user](https://docs.emnify.com/developers/api/workspaces/remove-user-role-by-id.md) - Enterprise > Workspaces [Update a user's default Workspace](https://docs.emnify.com/developers/api/workspaces/update-default-workspace.md) - Enterprise > Workspaces [List assigned Workspaces](https://docs.emnify.com/developers/api/workspaces/get-assigned-workspaces.md) - Enterprise > Workspaces [Unassign a Workspace](https://docs.emnify.com/developers/api/workspaces/unassign-workspaces.md) - Enterprise > Workspaces [Update user status in a Workspace](https://docs.emnify.com/developers/api/workspaces/update-workspace-user-status.md) - Enterprise > Workspaces [Retrieve Workspace daily stats](https://docs.emnify.com/developers/api/workspaces/get-workspace-daily-stats.md) - Enterprise > Tag Management [Returns the list of available tag colors](https://docs.emnify.com/developers/api/tag-management/list-tag-colors.md) - Enterprise > Tag Management [List tags](https://docs.emnify.com/developers/api/tag-management/list-tags.md) - Enterprise > Tag Management [Create a tag](https://docs.emnify.com/developers/api/tag-management/create-tag.md) - Enterprise > Tag Management [Delete a tag](https://docs.emnify.com/developers/api/tag-management/delete-tag.md) - Enterprise > Tag Management [Update a tag](https://docs.emnify.com/developers/api/tag-management/update-tag.md) - Enterprise > Tag Management [List endpoint tags](https://docs.emnify.com/developers/api/tag-management/list-endpoint-tags.md) - Enterprise > Tag Management [Assign a tag to an endpoint](https://docs.emnify.com/developers/api/tag-management/assign-tag-to-endpoint.md) - Enterprise > Tag Management [Unassign a tag from an endpoint](https://docs.emnify.com/developers/api/tag-management/unassign-endpoint-tag.md) - Enterprise > Tag Management [Bulk assign tags](https://docs.emnify.com/developers/api/tag-management/assign-tag-to-endpoints-in-bulk.md) - Enterprise > Tag Management [Bulk unassign tags](https://docs.emnify.com/developers/api/tag-management/unassign-tags-from-endpoints-in-bulk.md) - Enterprise > Tag Management [Bulk delete tags](https://docs.emnify.com/developers/api/tag-management/delete-tags-in-bulk.md) - Enterprise > Flow Logs [Retrieve Flow Logs by destination](https://docs.emnify.com/developers/api/flow-logs/list-endpoint-flow-logs-by-destination.md) - Enterprise > Flow Logs [List Flow Log details](https://docs.emnify.com/developers/api/flow-logs/list-endpoint-flow-logs-detail.md) - Enterprise > Permission and Role Management [List available permissions](https://docs.emnify.com/developers/api/permission-and-role-management/list-organisation-permissions.md) - Enterprise > Permission and Role Management [List system and custom roles](https://docs.emnify.com/developers/api/permission-and-role-management/list-organisation-roles.md) - Enterprise > Permission and Role Management [Create a custom role](https://docs.emnify.com/developers/api/permission-and-role-management/create-custom-role.md) - Enterprise > Permission and Role Management [Retrieve a role with its permissions](https://docs.emnify.com/developers/api/permission-and-role-management/get-organisation-role.md) - Enterprise > Permission and Role Management [Delete a custom role](https://docs.emnify.com/developers/api/permission-and-role-management/delete-custom-role.md) - Enterprise > Permission and Role Management [Update a custom role](https://docs.emnify.com/developers/api/permission-and-role-management/update-custom-role.md) - Enterprise > Permission and Role Management [List your permissions in the current Workspace](https://docs.emnify.com/developers/api/permission-and-role-management/get-user-permissions.md) - Automations > Automations [List available actions](https://docs.emnify.com/developers/api/automations/list-action.md) - Automations > Automations [Get an action by ID](https://docs.emnify.com/developers/api/automations/get-action-by-id.md) - Automations > Automations [List configured automations](https://docs.emnify.com/developers/api/automations/list-automations.md) - Automations > Automations [Create an automation](https://docs.emnify.com/developers/api/automations/create-automation.md) - Automations > Automations [Get configured automation by ID](https://docs.emnify.com/developers/api/automations/get-automation.md) - Automations > Automations [Delete a configured automation](https://docs.emnify.com/developers/api/automations/delete-automation.md) - Automations > Automations [Update an automation](https://docs.emnify.com/developers/api/automations/update-automation.md) - Automations > Automations [Verify an automation recipient's email address](https://docs.emnify.com/developers/api/automations/verify-automation-recipient-email.md) - Automations > System Events [List system events](https://docs.emnify.com/developers/api/system-events/get-system-events.md) - Automations > System Events [Get a system event by ID](https://docs.emnify.com/developers/api/system-events/get-system-event.md) - Automations > Custom Events [List custom event templates](https://docs.emnify.com/developers/api/custom-events/get-custom-event-templates.md) - Automations > Custom Events [Get a custom event template by ID](https://docs.emnify.com/developers/api/custom-events/get-custom-event-template.md) - Automations > Custom Events [List custom events](https://docs.emnify.com/developers/api/custom-events/get-custom-events.md) - Automations > Custom Events [Deploy custom event](https://docs.emnify.com/developers/api/custom-events/create-custom-event-instance.md) - Automations > Custom Events [Get a custom event by ID](https://docs.emnify.com/developers/api/custom-events/get-custom-event.md) - Automations > Custom Events [Delete custom event](https://docs.emnify.com/developers/api/custom-events/delete-custom-event.md) - eUICC > euicc [List eUICCs](https://docs.emnify.com/developers/api/euicc/list-euiccs.md) - eUICC > euicc [List eUICC status](https://docs.emnify.com/developers/api/euicc/list-euicc-status.md) - eUICC > euicc [List eUICC Profile status](https://docs.emnify.com/developers/api/euicc/list-euicc-profile-status.md) - eUICC > euicc [Get eUICC](https://docs.emnify.com/developers/api/euicc/get-euicc.md) - eUICC > euicc [Unlinked eUICC validation](https://docs.emnify.com/developers/api/euicc/post-euicc-unlinked-validation.md) - eUICC > Euicc Operation [List operation action for eUICC](https://docs.emnify.com/developers/api/euicc-operation/list-operation-action.md) - eUICC > Euicc Operation [List operation status for eUICC](https://docs.emnify.com/developers/api/euicc-operation/list-operation-status.md) - eUICC > Euicc Operation [List operation for eUICC](https://docs.emnify.com/developers/api/euicc-operation/list-operation.md) - eUICC > Euicc Operation [Schedule eUICC operations](https://docs.emnify.com/developers/api/euicc-operation/schedule-operations.md) - eUICC > Euicc Operation [Get operation details](https://docs.emnify.com/developers/api/euicc-operation/get-operation.md) - eUICC > Euicc Operation [Cancel operation](https://docs.emnify.com/developers/api/euicc-operation/cancel-operation.md) - eUICC > Sim Unlinked Product Statistics [Get product statistics on unlinked eSIMs](https://docs.emnify.com/developers/api/sim-unlinked-product-statistics/get-unlinked-product-stats.md) - eUICC > Sim Operation [List SIM operation actions](https://docs.emnify.com/developers/api/sim-operation/list-sim-operation-action.md) - eUICC > Sim Operation [List SIM operation status](https://docs.emnify.com/developers/api/sim-operation/list-sim-operation-status.md) - eUICC > Sim Operation [List SIM operations for organization](https://docs.emnify.com/developers/api/sim-operation/list-sim-operation.md) - eUICC > Sim Operation [Trigger SIM operation](https://docs.emnify.com/developers/api/sim-operation/trigger-sim-operation.md) - eUICC > Sim Operation [Get SIM operation details](https://docs.emnify.com/developers/api/sim-operation/get-sim-operation.md) - eSIM Link > Euicc Profile [Retrieve an eUICC profile's LPA activation code](https://docs.emnify.com/developers/api/euicc-profile/get-euicc-profile-activation-code.md) - eSIM Link > Shop Order [Download an order item's artifact CSV](https://docs.emnify.com/developers/api/shop-order/get-order-item-artifact.md) - eSIM Link > Shop Order [Check whether an order item's artifact CSV is available](https://docs.emnify.com/developers/api/shop-order/head-order-item-artifact.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://docs.emnify.com/developers/openapi.json) - [OpenAPI YAML](https://docs.emnify.com/developers/openapi.yaml) > **Note:** This page contains both a page directory (above) and the landing page content (below). The page directory is generated for agent use and does not appear on the landing page. > For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.emnify.com/developers/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.emnify.com/_mcp/server. > Make your first API call in minutes using the interactive API explorer and learn how to authenticate with the emnify API. To use the emnify REST API, you must authenticate with an **authentication token**. emnify uses JSON Web Tokens (JWTs) as the authentication token. **Base URL:** `https://cdn.emnify.net` ## Make your first API call Get started in minutes using the interactive API explorer. ### Get an application token 1. Log in to the [emnify Portal](https://portal.emnify.com) 2. Navigate to **Integrations** > **Application tokens** 3. Click **Add token**, generate and copy your token, and store it securely > **Tip** > > For more detailed instructions, see [Application tokens in the Portal](/portal/application-tokens). ### Authenticate Click **Try it** to open the API explorer. Paste your application token and send the request to receive your `auth_token`. ### Request POST [https://cdn.emnify.net/api/v1/authenticate](https://cdn.emnify.net/api/v1/authenticate) **`Application Token Authentication`** ```curl Application Token Authentication curl -X POST https://cdn.emnify.net/api/v1/authenticate \ -H "Content-Type: application/json" \ -d '{ "application_token": "5cCI6IkpXVCJ9.." }' ``` **`Application Token Authentication`** ```python Application Token Authentication import requests url = "https://cdn.emnify.net/api/v1/authenticate" payload = { "application_token": "5cCI6IkpXVCJ9.." } headers = {"Content-Type": "application/json"} response = requests.post(url, json=payload, headers=headers) print(response.json()) ``` **`Application Token Authentication`** ```javascript Application Token Authentication const url = 'https://cdn.emnify.net/api/v1/authenticate'; const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"application_token":"5cCI6IkpXVCJ9.."}' }; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` **`Application Token Authentication`** ```go Application Token Authentication package main import ( "fmt" "strings" "net/http" "io" ) func main() { url := "https://cdn.emnify.net/api/v1/authenticate" payload := strings.NewReader("{\n \"application_token\": \"5cCI6IkpXVCJ9..\"\n}") req, _ := http.NewRequest("POST", url, payload) req.Header.Add("Content-Type", "application/json") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` **`Application Token Authentication`** ```ruby Application Token Authentication require 'uri' require 'net/http' url = URI("https://cdn.emnify.net/api/v1/authenticate") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Post.new(url) request["Content-Type"] = 'application/json' request.body = "{\n \"application_token\": \"5cCI6IkpXVCJ9..\"\n}" response = http.request(request) puts response.read_body ``` **`Application Token Authentication`** ```java Application Token Authentication import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.post("https://cdn.emnify.net/api/v1/authenticate") .header("Content-Type", "application/json") .body("{\n \"application_token\": \"5cCI6IkpXVCJ9..\"\n}") .asString(); ``` **`Application Token Authentication`** ```php Application Token Authentication request('POST', 'https://cdn.emnify.net/api/v1/authenticate', [ 'body' => '{ "application_token": "5cCI6IkpXVCJ9.." }', 'headers' => [ 'Content-Type' => 'application/json', ], ]); echo $response->getBody(); ``` **`Application Token Authentication`** ```csharp Application Token Authentication using RestSharp; var client = new RestClient("https://cdn.emnify.net/api/v1/authenticate"); var request = new RestRequest(Method.POST); request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", "{\n \"application_token\": \"5cCI6IkpXVCJ9..\"\n}", ParameterType.RequestBody); IRestResponse response = client.Execute(request); ``` **`Application Token Authentication`** ```swift Application Token Authentication import Foundation let headers = ["Content-Type": "application/json"] let parameters = ["application_token": "5cCI6IkpXVCJ9.."] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://cdn.emnify.net/api/v1/authenticate")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` > **Note** > > Copy the `auth_token` to paste into the **Authorization** header of the next call. ### Make an authenticated request Use the `auth_token` from Step 2 to make authenticated requests. Click **Try it** to retrieve your endpoints: ### Request GET [https://cdn.emnify.net/api/v1/endpoint](https://cdn.emnify.net/api/v1/endpoint) **`Default - List All Endpoints`** ```curl Default - List All Endpoints curl https://cdn.emnify.net/api/v1/endpoint \ -H "Authorization: Bearer " ``` **`Default - List All Endpoints`** ```python Default - List All Endpoints import requests url = "https://cdn.emnify.net/api/v1/endpoint" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` **`Default - List All Endpoints`** ```javascript Default - List All Endpoints const url = 'https://cdn.emnify.net/api/v1/endpoint'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` **`Default - List All Endpoints`** ```go Default - List All Endpoints package main import ( "fmt" "net/http" "io" ) func main() { url := "https://cdn.emnify.net/api/v1/endpoint" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` **`Default - List All Endpoints`** ```ruby Default - List All Endpoints require 'uri' require 'net/http' url = URI("https://cdn.emnify.net/api/v1/endpoint") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` **`Default - List All Endpoints`** ```java Default - List All Endpoints import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://cdn.emnify.net/api/v1/endpoint") .header("Authorization", "Bearer ") .asString(); ``` **`Default - List All Endpoints`** ```php Default - List All Endpoints request('GET', 'https://cdn.emnify.net/api/v1/endpoint', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` **`Default - List All Endpoints`** ```csharp Default - List All Endpoints using RestSharp; var client = new RestClient("https://cdn.emnify.net/api/v1/endpoint"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` **`Default - List All Endpoints`** ```swift Default - List All Endpoints import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://cdn.emnify.net/api/v1/endpoint")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ``` > **Info** > > The `/api/v1/authenticate` endpoint has a rate limit of 100 requests per IP in a 5-minute window. > Store your `auth_token` and reuse it instead of authenticating on every request. > For more information, see [Rate limits](/developers/api-guidelines/rate-limits). Most endpoints also require a specific [permission](/developers/api-guidelines/permissions), shown in a **Required permissions** callout on the endpoint's reference page. ### Use an SDK If you prefer to use an SDK instead of direct API calls: * [Python SDK Quickstart](/developers/sdks/python/quickstart) * [Java SDK Quickstart](/developers/sdks/java/quickstart) ## Choose your authentication method > **Tip** > > Always use [application tokens](/developers/auth/application-tokens) to authenticate with the emnify REST API when possible. > Any APIs that currently require user credentials are being updated to support application tokens. #### [Application tokens](/developers/auth/application-tokens) Recommended for most integrations. \ Secure M2M authentication without exposing user credentials. Supports IP restrictions and configurable expiration. #### [User credentials](/developers/auth/user-credentials) Required for cross-Workspace operations. \ Use for Workspace switching and SIM transfers between Workspaces. Requires handling MFA if enabled. ## Learn more #### [JWTs](/developers/auth/jwts) Understand how JSON Web Tokens authenticate API requests via the `Authorization` header. #### [Multi-factor authentication](/developers/auth/multi-factor-authentication) Handle MFA when authenticating with user credentials. #### [Permissions](/developers/api-guidelines/permissions) In beta. See the permission each endpoint requires, and create custom roles that grant an exact set.