Telnyx Iot - Java

SkillDev tools

Manage IoT SIM cards, eSIMs, data plans, and wireless connectivity. Use when building IoT/M2M solutions. This skill provides Java SDK examples.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Telnyx Iot - Java skill

What this skill tells your AI

The instructions your AI receives, as published by team-telnyx/ai in skills/telnyx-iot-java/SKILL.md and read by ahel’s review.

Installation

<!-- Maven -->
<dependency>
    <groupId>com.telnyx.sdk</groupId>
    <artifactId>telnyx</artifactId>
    <version>6.89.0</version>
</dependency>

// Gradle
implementation("com.telnyx.sdk:telnyx:6.89.0")

Setup

import com.telnyx.sdk.client.TelnyxClient;
import com.telnyx.sdk.client.okhttp.TelnyxOkHttpClient;

TelnyxClient client = TelnyxOkHttpClient.fromEnv();

All examples below assume client is already initialized as shown above.

Error Handling

All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:

import com.telnyx.sdk.errors.TelnyxServiceException;

try {
    var result = client.messages().send(params);
} catch (TelnyxServiceException e) {
    System.err.println("API error " + e.statusCode() + ": " + e.getMessage());
    if (e.statusCode() == 422) {
        System.err.println("Validation error — check required fields and formats");
    } else if (e.statusCode() == 429) {
        // Rate limited — wait and retry with exponential backoff
        Thread.sleep(1000);
    }
}

Common error codes: 401 invalid API key, 403 insufficient permissions, 404 resource not found, 422 validation error (check field formats), 429 rate limited (retry with exponential backoff).

Important Notes

  • Pagination: List methods return a page. Use .autoPager() for automatic iteration: for (var item : page.autoPager()) { ... }. For manual control, use .hasNextPage() and .nextPage().

Purchase eSIMs

Purchases and registers the specified amount of eSIMs to the current user's account. If sim_card_group_id is provided, the eSIMs will be associated with that group. Otherwise, the default group for the current user will be used.

POST /actions/purchase/esims — Required: amount

Optional: product (string), sim_card_group_id (uuid), status (enum: enabled, disabled, standby), tags (array[string]), whitelabel_name (string)

import com.telnyx.sdk.models.actions.purchase.PurchaseCreateParams;
import com.telnyx.sdk.models.actions.purchase.PurchaseCreateResponse;

PurchaseCreateParams params = PurchaseCreateParams.builder()
    .amount(10L)
    .build();
PurchaseCreateResponse purchase = client.actions().purchase().create(params);

Returns: actions_in_progress (boolean), authorized_imeis (array | null), created_at (string), current_billing_period_consumed_data (object), data_limit (object), eid (string | null), esim_installation_status (enum: released, disabled), iccid (string), id (uuid), imsi (string), msisdn (string), record_type (string), resources_with_in_progress_actions (array[object]), sim_card_group_id (uuid), status (object), tags (array[string]), type (enum: physical, esim), updated_at (string), version (string), voice_enabled (boolean)

Register SIM cards

Register the SIM cards associated with the provided registration codes to the current user's account. If sim_card_group_id is provided, the SIM cards will be associated with that group. Otherwise, the default group for the current user will be used.

POST /actions/register/sim_cards — Required: registration_codes

Optional: sim_card_group_id (uuid), status (enum: enabled, disabled, standby), tags (array[string])

import com.telnyx.sdk.models.actions.register.RegisterCreateParams;
import com.telnyx.sdk.models.actions.register.RegisterCreateResponse;
import java.util.List;

RegisterCreateParams params = RegisterCreateParams.builder()
    .registrationCodes(List.of(
      "0000000001",
      "0000000002",
      "0000000003"
    ))
    .build();
RegisterCreateResponse register = client.actions().register().create(params);

Returns: actions_in_progress (boolean), authorized_imeis (array | null), created_at (string), current_billing_period_consumed_data (object), data_limit (object), eid (string | null), esim_installation_status (enum: released, disabled), iccid (string), id (uuid), imsi (string), msisdn (string), record_type (string), resources_with_in_progress_actions (array[object]), sim_card_group_id (uuid), status (object), tags (array[string]), type (enum: physical, esim), updated_at (string), version (string), voice_enabled (boolean)

List bulk SIM card actions

This API lists a paginated collection of bulk SIM card actions. A bulk SIM card action contains details about a collection of individual SIM card actions.

GET /bulk_sim_card_actions

import com.telnyx.sdk.models.bulksimcardactions.BulkSimCardActionListPage;
import com.telnyx.sdk.models.bulksimcardactions.BulkSimCardActionListParams;

BulkSimCardActionListPage page = client.bulkSimCardActions().list();

Returns: action_type (enum: bulk_disable_voice, bulk_enable_voice, bulk_set_public_ips), created_at (string), id (uuid), record_type (string), settings (object), sim_card_actions_summary (array[object]), updated_at (string)

Get bulk SIM card action details

This API fetches information about a bulk SIM card action. A bulk SIM card action contains details about a collection of individual SIM card actions.

GET /bulk_sim_card_actions/{id}

import com.telnyx.sdk.models.bulksimcardactions.BulkSimCardActionRetrieveParams;
import com.telnyx.sdk.models.bulksimcardactions.BulkSimCardActionRetrieveResponse;

BulkSimCardActionRetrieveResponse bulkSimCardAction = client.bulkSimCardActions().retrieve("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: action_type (enum: bulk_disable_voice, bulk_enable_voice, bulk_set_public_ips), created_at (string), id (uuid), record_type (string), settings (object), sim_card_actions_summary (array[object]), updated_at (string)

List OTA updates

GET /ota_updates

import com.telnyx.sdk.models.otaupdates.OtaUpdateListPage;
import com.telnyx.sdk.models.otaupdates.OtaUpdateListParams;

OtaUpdateListPage page = client.otaUpdates().list();

Returns: created_at (string), id (uuid), record_type (string), sim_card_id (uuid), status (enum: in-progress, completed, failed), type (enum: sim_card_network_preferences), updated_at (string)

Get OTA update

This API returns the details of an Over the Air (OTA) update.

GET /ota_updates/{id}

import com.telnyx.sdk.models.otaupdates.OtaUpdateRetrieveParams;
import com.telnyx.sdk.models.otaupdates.OtaUpdateRetrieveResponse;

OtaUpdateRetrieveResponse otaUpdate = client.otaUpdates().retrieve("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: created_at (string), id (uuid), record_type (string), settings (object), sim_card_id (uuid), status (enum: in-progress, completed, failed), type (enum: sim_card_network_preferences), updated_at (string)

List SIM card actions

This API lists a paginated collection of SIM card actions. It enables exploring a collection of existing asynchronous operations using specific filters.

GET /sim_card_actions

import com.telnyx.sdk.models.simcards.actions.ActionListPage;
import com.telnyx.sdk.models.simcards.actions.ActionListParams;

ActionListPage page = client.simCards().actions().list();

Returns: action_type (enum: enable, enable_standby_sim_card, disable, set_standby), created_at (string), id (uuid), record_type (string), settings (object | null), sim_card_id (uuid), status (object), updated_at (string)

Get SIM card action details

This API fetches detailed information about a SIM card action to follow-up on an existing asynchronous operation.

GET /sim_card_actions/{id}

import com.telnyx.sdk.models.simcards.actions.ActionRetrieveParams;
import com.telnyx.sdk.models.simcards.actions.ActionRetrieveResponse;

ActionRetrieveResponse action = client.simCards().actions().retrieve("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: action_type (enum: enable, enable_standby_sim_card, disable, set_standby), created_at (string), id (uuid), record_type (string), settings (object | null), sim_card_id (uuid), status (object), updated_at (string)

List SIM card data usage notifications

Lists a paginated collection of SIM card data usage notifications. It enables exploring the collection using specific filters.

GET /sim_card_data_usage_notifications

import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationListPage;
import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationListParams;

SimCardDataUsageNotificationListPage page = client.simCardDataUsageNotifications().list();

Returns: created_at (string), id (uuid), record_type (string), sim_card_id (uuid), threshold (object), updated_at (string)

Create a new SIM card data usage notification

Creates a new SIM card data usage notification.

POST /sim_card_data_usage_notifications — Required: sim_card_id, threshold

import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationCreateParams;
import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationCreateResponse;

SimCardDataUsageNotificationCreateParams params = SimCardDataUsageNotificationCreateParams.builder()
    .simCardId("6a09cdc3-8948-47f0-aa62-74ac943d6c58")
    .threshold(SimCardDataUsageNotificationCreateParams.Threshold.builder().build())
    .build();
SimCardDataUsageNotificationCreateResponse simCardDataUsageNotification = client.simCardDataUsageNotifications().create(params);

Returns: created_at (string), id (uuid), record_type (string), sim_card_id (uuid), threshold (object), updated_at (string)

Get a single SIM card data usage notification

Get a single SIM Card Data Usage Notification.

GET /sim_card_data_usage_notifications/{id}

import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationRetrieveParams;
import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationRetrieveResponse;

SimCardDataUsageNotificationRetrieveResponse simCardDataUsageNotification = client.simCardDataUsageNotifications().retrieve("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: created_at (string), id (uuid), record_type (string), sim_card_id (uuid), threshold (object), updated_at (string)

Updates information for a SIM Card Data Usage Notification

Updates information for a SIM Card Data Usage Notification.

PATCH /sim_card_data_usage_notifications/{id}

Optional: created_at (string), id (uuid), record_type (string), sim_card_id (uuid), threshold (object), updated_at (string)

import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotification;
import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationUpdateParams;
import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationUpdateResponse;

SimCardDataUsageNotificationUpdateParams params = SimCardDataUsageNotificationUpdateParams.builder()
    .simCardDataUsageNotificationId("6a09cdc3-8948-47f0-aa62-74ac943d6c58")
    .simCardDataUsageNotification(SimCardDataUsageNotification.builder().build())
    .build();
SimCardDataUsageNotificationUpdateResponse simCardDataUsageNotification = client.simCardDataUsageNotifications().update(params);

Returns: created_at (string), id (uuid), record_type (string), sim_card_id (uuid), threshold (object), updated_at (string)

Delete SIM card data usage notifications

Delete the SIM Card Data Usage Notification.

DELETE /sim_card_data_usage_notifications/{id}

import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationDeleteParams;
import com.telnyx.sdk.models.simcarddatausagenotifications.SimCardDataUsageNotificationDeleteResponse;

SimCardDataUsageNotificationDeleteResponse simCardDataUsageNotification = client.simCardDataUsageNotifications().delete("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: created_at (string), id (uuid), record_type (string), sim_card_id (uuid), threshold (object), updated_at (string)

List SIM card group actions

This API allows listing a paginated collection a SIM card group actions. It allows to explore a collection of existing asynchronous operation using specific filters.

GET /sim_card_group_actions

import com.telnyx.sdk.models.simcardgroups.actions.ActionListPage;
import com.telnyx.sdk.models.simcardgroups.actions.ActionListParams;

ActionListPage page = client.simCardGroups().actions().list();

Returns: created_at (string), id (uuid), record_type (string), settings (object), sim_card_group_id (uuid), status (enum: in-progress, completed, failed), type (enum: set_private_wireless_gateway, remove_private_wireless_gateway, set_wireless_blocklist, remove_wireless_blocklist), updated_at (string)

Get SIM card group action details

This API allows fetching detailed information about a SIM card group action resource to make follow-ups in an existing asynchronous operation.

GET /sim_card_group_actions/{id}

import com.telnyx.sdk.models.simcardgroups.actions.ActionRetrieveParams;
import com.telnyx.sdk.models.simcardgroups.actions.ActionRetrieveResponse;

ActionRetrieveResponse action = client.simCardGroups().actions().retrieve("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: created_at (string), id (uuid), record_type (string), settings (object), sim_card_group_id (uuid), status (enum: in-progress, completed, failed), type (enum: set_private_wireless_gateway, remove_private_wireless_gateway, set_wireless_blocklist, remove_wireless_blocklist), updated_at (string)

Get all SIM card groups

Get all SIM card groups belonging to the user that match the given filters.

GET /sim_card_groups

import com.telnyx.sdk.models.simcardgroups.SimCardGroupListPage;
import com.telnyx.sdk.models.simcardgroups.SimCardGroupListParams;

SimCardGroupListPage page = client.simCardGroups().list();

Returns: consumed_data (object), created_at (string), data_limit (object), default (boolean), id (uuid), name (string), private_wireless_gateway_id (uuid), record_type (string), sim_card_count (integer), updated_at (string), wireless_blocklist_id (uuid)

Create a SIM card group

Creates a new SIM card group object

POST /sim_card_groups — Required: name

Optional: data_limit (object)

import com.telnyx.sdk.models.simcardgroups.SimCardGroupCreateParams;
import com.telnyx.sdk.models.simcardgroups.SimCardGroupCreateResponse;

SimCardGroupCreateParams params = SimCardGroupCreateParams.builder()
    .name("My Test Group")
    .build();
SimCardGroupCreateResponse simCardGroup = client.simCardGroups().create(params);

Returns: consumed_data (object), created_at (string), data_limit (object), default (boolean), id (uuid), name (string), private_wireless_gateway_id (uuid), record_type (string), updated_at (string), wireless_blocklist_id (uuid)

Get SIM card group

Returns the details regarding a specific SIM card group

GET /sim_card_groups/{id}

import com.telnyx.sdk.models.simcardgroups.SimCardGroupRetrieveParams;
import com.telnyx.sdk.models.simcardgroups.SimCardGroupRetrieveResponse;

SimCardGroupRetrieveResponse simCardGroup = client.simCardGroups().retrieve("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: consumed_data (object), created_at (string), data_limit (object), default (boolean), id (uuid), name (string), private_wireless_gateway_id (uuid), record_type (string), updated_at (string), wireless_blocklist_id (uuid)

Update a SIM card group

Updates a SIM card group

PATCH /sim_card_groups/{id}

Optional: data_limit (object), name (string)

import com.telnyx.sdk.models.simcardgroups.SimCardGroupUpdateParams;
import com.telnyx.sdk.models.simcardgroups.SimCardGroupUpdateResponse;

SimCardGroupUpdateResponse simCardGroup = client.simCardGroups().update("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: consumed_data (object), created_at (string), data_limit (object), default (boolean), id (uuid), name (string), private_wireless_gateway_id (uuid), record_type (string), updated_at (string), wireless_blocklist_id (uuid)

Delete a SIM card group

Permanently deletes a SIM card group

DELETE /sim_card_groups/{id}

import com.telnyx.sdk.models.simcardgroups.SimCardGroupDeleteParams;
import com.telnyx.sdk.models.simcardgroups.SimCardGroupDeleteResponse;

SimCardGroupDeleteResponse simCardGroup = client.simCardGroups().delete("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: consumed_data (object), created_at (string), data_limit (object), default (boolean), id (uuid), name (string), private_wireless_gateway_id (uuid), record_type (string), updated_at (string), wireless_blocklist_id (uuid)

Request Private Wireless Gateway removal from SIM card group

This action will asynchronously remove an existing Private Wireless Gateway definition from a SIM card group. Completing this operation defines that all SIM cards in the SIM card group will get their traffic handled by Telnyx's default mobile network configuration.

POST /sim_card_groups/{id}/actions/remove_private_wireless_gateway

import com.telnyx.sdk.models.simcardgroups.actions.ActionRemovePrivateWirelessGatewayParams;
import com.telnyx.sdk.models.simcardgroups.actions.ActionRemovePrivateWirelessGatewayResponse;

ActionRemovePrivateWirelessGatewayResponse response = client.simCardGroups().actions().removePrivateWirelessGateway("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: created_at (string), id (uuid), record_type (string), settings (object), sim_card_group_id (uuid), status (enum: in-progress, completed, failed), type (enum: set_private_wireless_gateway, remove_private_wireless_gateway, set_wireless_blocklist, remove_wireless_blocklist), updated_at (string)

Request Wireless Blocklist removal from SIM card group

This action will asynchronously remove an existing Wireless Blocklist to all the SIMs in the SIM card group.

POST /sim_card_groups/{id}/actions/remove_wireless_blocklist

import com.telnyx.sdk.models.simcardgroups.actions.ActionRemoveWirelessBlocklistParams;
import com.telnyx.sdk.models.simcardgroups.actions.ActionRemoveWirelessBlocklistResponse;

ActionRemoveWirelessBlocklistResponse response = client.simCardGroups().actions().removeWirelessBlocklist("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Returns: created_at (string), id (uuid), record_type (string), settings (object), sim_card_group_id (uuid), status (enum: in-progress, completed, failed), type (enum: set_private_wireless_gateway, remove_private_wireless_gateway, set_wireless_blocklist, remove_wireless_blocklist), updated_at (string)

Request Private Wireless Gateway assignment for SIM card group

This action will asynchronously assign a provisioned Private Wireless Gateway to the SIM card group. Completing this operation defines that all SIM cards in the SIM card group will get their traffic controlled by the associated Private Wireless Gateway. This operation will also imply that new SIM cards assigned to a group will inherit its network definitions.

POST /sim_card_groups/{id}/actions/set_private_wireless_gateway — Required: private_wireless_gateway_id

import com.telnyx.sdk.models.simcardgroups.actions.ActionSetPrivateWirelessGatewayParams;
import com.telnyx.sdk.models.simcardgroups.actions.ActionSetPrivateWirelessGatewayResponse;

ActionSetPrivateWirelessGatewayParams params = ActionSetPrivateWirelessGatewayParams.builder()
    .id("6a09cdc3-8948-47f0-aa62-74ac943d6c58")
    .privateWirelessGatewayId("6a09cdc3-8948-47f0-aa62-74ac943d6c58")
    .build();
ActionSetPrivateWirelessGatewayResponse response = client.simCardGroups().actions().setPrivateWirelessGateway(params);

Returns: created_at (string), id (uuid), record_type (string), settings (object), sim_card_group_id (uuid), status (enum: in-progress, completed, failed), type (enum: set_private_wireless_gateway, remove_private_wireless_gateway, set_wireless_blocklist, remove_wireless_blocklist), updated_at (string)

Request Wireless Blocklist assignment for SIM card group

This action will asynchronously assign a Wireless Blocklist to all the SIMs in the SIM card group.

POST /sim_card_groups/{id}/actions/set_wireless_blocklist — Required: wireless_blocklist_id

import com.telnyx.sdk.models.simcardgroups.actions.ActionSetWirelessBlocklistParams;
import com.telnyx.sdk.models.simcardgroups.actions.ActionSetWirelessBlocklistResponse;

ActionSetWirelessBlocklistParams params = ActionSetWirelessBlocklistParams.builder()
    .id("6a09cdc3-8948-47f0-aa62-74ac943d6c58")
    .wirelessBlocklistId("6a09cdc3-8948-47f0-aa62-74ac943d6c58")
    .build();
ActionSetWirelessBlocklistResponse response = client.simCardGroups().actions().setWirelessBlocklist(params);

Returns: created_at (string), id (uuid), record_type (string), settings (object), sim_card_group_id (uuid), status (enum: in-progress, completed, failed), type (enum: set_private_wireless_gateway, remove_private_wireless_gateway, set_wireless_blocklist, remove_wireless_blocklist), updated_at (string)

Preview SIM card orders

Preview SIM card order purchases.

POST /sim_card_order_preview — Required: quantity, address_id

import com.telnyx.sdk.models.simcardorderpreview.SimCardOrderPreviewPreviewParams;
import com.telnyx.sdk.models.simcardorderpreview.SimCardOrderPreviewPreviewResponse;

SimCardOrderPreviewPreviewParams params = SimCardOrderPreviewPreviewParams.builder()
    .addressId("1293384261075731499")
    .quantity(21L)
    .build();
SimCardOrderPreviewPreviewResponse response = client.simCardOrderPreview().preview(params);

Returns: quantity (integer), record_type (string), shipping_cost (object), sim_cards_cost (object), total_cost (object)

Get all SIM card orders

Get all SIM card orders according to filters.

GET /sim_card_orders

import com.telnyx.sdk.models.simcardorders.SimCardOrderListPage;
import com.telnyx.sdk.models.simcardorders.SimCardOrderListParams;

SimCardOrderListPage page = client.simCardOrders().list();

Returns: cost (object), created_at (string), id (uuid), order_address (object), quantity (integer), record_type (string), status (enum: pending, processing, ready_to_ship, shipped, delivered, canceled), tracking_url (uri), updated_at (string)

Create a SIM card order

Creates a new order for SIM cards.

POST /sim_card_orders — Required: address_id, quantity

import com.telnyx.sdk.models.simcardorders.SimCardOrderCreateParams;
import com.telnyx.sdk.models.simcardorders.SimCardOrderCreateResponse;

SimCardOrderCreateParams params = SimCardOrderCreateParams.builder()
    .addressId("1293384261075731499")
    .quantity(23L)
    .simCardGroupId("550e8400-e29b-41d4-a716-446655440000")
    .build();
SimCardOrderCreateResponse simCardOrder = client.simCardOrders().create(params);

Returns: cost (object), created_at (string), id (uuid), order_address (object), quantity (integer), record_type (string), status (enum: pending, processing, ready_to_ship, shipped, delivered, canceled), tracking_url (uri), updated_at (string)

Get a single SIM card order

Get a single SIM card order by its ID.

GET /sim_card_orders/{id}

import com.telnyx.sdk.models.simcardorders.SimCardOrderRetrieveParams;
import com.telnyx.sdk.models.simcardorders.SimCardOrderRetrieveResponse;

SimCardOrderRetrieveResponse simCardOrder = client.simCardOrders().retrieve("6a09cdc3-8948-47f0-aa62-74ac943d6c58");

Shortened here. Read the whole file on GitHub.

Signals

GitHub stars
214
Forks
21
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
telnyx-iot-java
Source
github.com/team-telnyx/ai