Telnyx Iot - Java
SkillDev toolsManage 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.
No other account needed.
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