Loading...
Loading...
Manage port-out requests when numbers are being ported away from Telnyx. List, view, and update port-out status. This skill provides Python SDK examples.
npx skill4agent add team-telnyx/skills telnyx-porting-out-pythonpip install telnyximport os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)clientimport telnyx
try:
result = client.messages.send(to="+13125550001", from_="+13125550002", text="Hello")
except telnyx.APIConnectionError:
print("Network error — check connectivity and retry")
except telnyx.RateLimitError:
# 429: rate limited — wait and retry with exponential backoff
import time
time.sleep(1) # Check Retry-After header for actual delay
except telnyx.APIStatusError as e:
print(f"API error {e.status_code}: {e.message}")
if e.status_code == 422:
print("Validation error — check required fields and formats")401403404422429for item in page_result:GET /portoutspage = client.portouts.list()
page = page.data[0]
print(page.id)already_portedauthorized_namecarrier_namecitycreated_atcurrent_carrierend_user_namefoc_datehost_messagingidinserted_atlsrphone_numbersponreasonrecord_typerejection_coderequested_foc_dateservice_addressspidstatestatussupport_keyupdated_atuser_idvendorzipGET /portouts/eventspage = client.portouts.events.list()
page = page.data[0]
print(page)available_notification_methodscreated_atevent_typeidpayloadpayload_statusportout_idrecord_typeupdated_atGET /portouts/events/{id}event = client.portouts.events.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(event.data)available_notification_methodscreated_atevent_typeidpayloadpayload_statusportout_idrecord_typeupdated_atPOST /portouts/events/{id}/republishclient.portouts.events.republish(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)GET /portouts/rejections/{portout_id}response = client.portouts.list_rejection_codes(
portout_id="329d6658-8f93-405d-862f-648776e8afd7",
)
print(response.data)codedescriptionreason_requiredGET /portouts/reportspage = client.portouts.reports.list()
page = page.data[0]
print(page.id)created_atdocument_ididparamsrecord_typereport_typestatusupdated_atPOST /portouts/reportsreport = client.portouts.reports.create(
params={
"filters": {}
},
report_type="export_portouts_csv",
)
print(report.data)created_atdocument_ididparamsrecord_typereport_typestatusupdated_atGET /portouts/reports/{id}report = client.portouts.reports.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(report.data)created_atdocument_ididparamsrecord_typereport_typestatusupdated_atGET /portouts/{id}portout = client.portouts.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(portout.data)already_portedauthorized_namecarrier_namecitycreated_atcurrent_carrierend_user_namefoc_datehost_messagingidinserted_atlsrphone_numbersponreasonrecord_typerejection_coderequested_foc_dateservice_addressspidstatestatussupport_keyupdated_atuser_idvendorzipGET /portouts/{id}/commentscomments = client.portouts.comments.list(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(comments.data)bodycreated_atidportout_idrecord_typeuser_idPOST /portouts/{id}/commentsbodycomment = client.portouts.comments.create(
id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(comment.data)bodycreated_atidportout_idrecord_typeuser_idGET /portouts/{id}/supporting_documentssupporting_documents = client.portouts.supporting_documents.list(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(supporting_documents.data)created_atdocument_ididportout_idrecord_typetypeupdated_atPOST /portouts/{id}/supporting_documentsdocumentssupporting_document = client.portouts.supporting_documents.create(
id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(supporting_document.data)created_atdocument_ididportout_idrecord_typetypeupdated_atPATCH /portouts/{id}/{status}reasonhost_messagingresponse = client.portouts.update_status(
status="authorized",
id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
reason="I do not recognize this transaction",
)
print(response.data)already_portedauthorized_namecarrier_namecitycreated_atcurrent_carrierend_user_namefoc_datehost_messagingidinserted_atlsrphone_numbersponreasonrecord_typerejection_coderequested_foc_dateservice_addressspidstatestatussupport_keyupdated_atuser_idvendorzip