{"id":"c4c90819-f1d8-4d55-9091-2bf9d91fd3e1","shortId":"hB98jX","kind":"skill","title":"telnyx-account-reports-python","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Account Reports - Python\n\n## Installation\n\n```bash\npip install telnyx\n```\n\n## Setup\n\n```python\nimport os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n    api_key=os.environ.get(\"TELNYX_API_KEY\"),  # This is the default and can be omitted\n)\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```python\nimport telnyx\n\ntry:\n    result = client.messages.send(to=\"+13125550001\", from_=\"+13125550002\", text=\"Hello\")\nexcept telnyx.APIConnectionError:\n    print(\"Network error — check connectivity and retry\")\nexcept telnyx.RateLimitError:\n    # 429: rate limited — wait and retry with exponential backoff\n    import time\n    time.sleep(1)  # Check Retry-After header for actual delay\nexcept telnyx.APIStatusError as e:\n    print(f\"API error {e.status_code}: {e.message}\")\n    if e.status_code == 422:\n        print(\"Validation error — check required fields and formats\")\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Important Notes\n\n- **Pagination:** List methods return an auto-paginating iterator. Use `for item in page_result:` to iterate through all pages automatically.\n\n## List call events\n\nFilters call events by given filter parameters. Events are ordered by `occurred_at`. If filter for `leg_id` or `application_session_id` is not present, it only filters events from the last 24 hours.\n\n`GET /call_events`\n\n```python\npage = client.call_events.list()\npage = page.data[0]\nprint(page.call_leg_id)\n```\n\nReturns: `call_leg_id` (string), `call_session_id` (string), `event_timestamp` (string), `metadata` (object), `name` (string), `record_type` (enum: call_event), `type` (enum: command, webhook)\n\n## Create a ledger billing group report\n\n`POST /ledger_billing_group_reports`\n\nOptional: `month` (integer), `year` (integer)\n\n```python\nledger_billing_group_report = client.ledger_billing_group_reports.create(\n    month=10,\n    year=2019,\n)\nprint(ledger_billing_group_report.data)\n```\n\nReturns: `created_at` (date-time), `id` (uuid), `organization_id` (uuid), `record_type` (enum: ledger_billing_group_report), `report_url` (uri), `status` (enum: pending, complete, failed, deleted), `updated_at` (date-time)\n\n## Get a ledger billing group report\n\n`GET /ledger_billing_group_reports/{id}`\n\n```python\nledger_billing_group_report = client.ledger_billing_group_reports.retrieve(\n    \"f5586561-8ff0-4291-a0ac-84fe544797bd\",\n)\nprint(ledger_billing_group_report.data)\n```\n\nReturns: `created_at` (date-time), `id` (uuid), `organization_id` (uuid), `record_type` (enum: ledger_billing_group_report), `report_url` (uri), `status` (enum: pending, complete, failed, deleted), `updated_at` (date-time)\n\n## Get all MDR detailed report requests\n\nRetrieves all MDR detailed report requests for the authenticated user\n\n`GET /legacy/reporting/batch_detail_records/messaging`\n\n```python\nmessagings = client.legacy.reporting.batch_detail_records.messaging.list()\nprint(messagings.data)\n```\n\nReturns: `connections` (array[integer]), `created_at` (date-time), `directions` (array[string]), `end_date` (date-time), `filters` (array[object]), `id` (uuid), `profiles` (array[string]), `record_type` (string), `record_types` (array[string]), `report_name` (string), `report_url` (string), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Create a new MDR detailed report request\n\nCreates a new MDR detailed report request with the specified filters\n\n`POST /legacy/reporting/batch_detail_records/messaging` — Required: `start_time`, `end_time`\n\nOptional: `connections` (array[integer]), `directions` (array[integer]), `filters` (array[object]), `include_message_body` (boolean), `managed_accounts` (array[string]), `profiles` (array[string]), `record_types` (array[integer]), `report_name` (string), `select_all_managed_accounts` (boolean), `timezone` (string)\n\n```python\nfrom datetime import datetime\n\nmessaging = client.legacy.reporting.batch_detail_records.messaging.create(\n    end_time=datetime.fromisoformat(\"2024-02-12T23:59:59\"),\n    start_time=datetime.fromisoformat(\"2024-02-01T00:00:00\"),\n)\nprint(messaging.data)\n```\n\nReturns: `connections` (array[integer]), `created_at` (date-time), `directions` (array[string]), `end_date` (date-time), `filters` (array[object]), `id` (uuid), `profiles` (array[string]), `record_type` (string), `record_types` (array[string]), `report_name` (string), `report_url` (string), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Get a specific MDR detailed report request\n\nRetrieves a specific MDR detailed report request by ID\n\n`GET /legacy/reporting/batch_detail_records/messaging/{id}`\n\n```python\nmessaging = client.legacy.reporting.batch_detail_records.messaging.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(messaging.data)\n```\n\nReturns: `connections` (array[integer]), `created_at` (date-time), `directions` (array[string]), `end_date` (date-time), `filters` (array[object]), `id` (uuid), `profiles` (array[string]), `record_type` (string), `record_types` (array[string]), `report_name` (string), `report_url` (string), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Delete a MDR detailed report request\n\nDeletes a specific MDR detailed report request by ID\n\n`DELETE /legacy/reporting/batch_detail_records/messaging/{id}`\n\n```python\nmessaging = client.legacy.reporting.batch_detail_records.messaging.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(messaging.data)\n```\n\nReturns: `connections` (array[integer]), `created_at` (date-time), `directions` (array[string]), `end_date` (date-time), `filters` (array[object]), `id` (uuid), `profiles` (array[string]), `record_type` (string), `record_types` (array[string]), `report_name` (string), `report_url` (string), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Get all CDR report requests\n\nRetrieves all CDR report requests for the authenticated user\n\n`GET /legacy/reporting/batch_detail_records/voice`\n\n```python\nvoices = client.legacy.reporting.batch_detail_records.voice.list()\nprint(voices.data)\n```\n\nReturns: `call_types` (array[integer]), `connections` (array[integer]), `created_at` (string), `end_time` (string), `filters` (array[object]), `id` (string), `managed_accounts` (array[string]), `record_type` (string), `record_types` (array[integer]), `report_name` (string), `report_url` (string), `retry` (int32), `source` (string), `start_time` (string), `status` (int32), `timezone` (string), `updated_at` (string)\n\n## Create a new CDR report request\n\nCreates a new CDR report request with the specified filters\n\n`POST /legacy/reporting/batch_detail_records/voice` — Required: `start_time`, `end_time`\n\nOptional: `call_types` (array[integer]), `connections` (array[integer]), `fields` (array[string]), `filters` (array[object]), `include_all_metadata` (boolean), `managed_accounts` (array[string]), `record_types` (array[integer]), `report_name` (string), `select_all_managed_accounts` (boolean), `source` (string), `timezone` (string)\n\n```python\nfrom datetime import datetime\n\nvoice = client.legacy.reporting.batch_detail_records.voice.create(\n    end_time=datetime.fromisoformat(\"2024-02-12T23:59:59\"),\n    start_time=datetime.fromisoformat(\"2024-02-01T00:00:00\"),\n)\nprint(voice.data)\n```\n\nReturns: `call_types` (array[integer]), `connections` (array[integer]), `created_at` (string), `end_time` (string), `filters` (array[object]), `id` (string), `managed_accounts` (array[string]), `record_type` (string), `record_types` (array[integer]), `report_name` (string), `report_url` (string), `retry` (int32), `source` (string), `start_time` (string), `status` (int32), `timezone` (string), `updated_at` (string)\n\n## Get available CDR report fields\n\nRetrieves all available fields that can be used in CDR reports\n\n`GET /legacy/reporting/batch_detail_records/voice/fields`\n\n```python\nresponse = client.legacy.reporting.batch_detail_records.voice.retrieve_fields()\nprint(response.billing)\n```\n\nReturns: `Billing` (array[string]), `Interaction Data` (array[string]), `Number Information` (array[string]), `Telephony Data` (array[string])\n\n## Get a specific CDR report request\n\nRetrieves a specific CDR report request by ID\n\n`GET /legacy/reporting/batch_detail_records/voice/{id}`\n\n```python\nvoice = client.legacy.reporting.batch_detail_records.voice.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(voice.data)\n```\n\nReturns: `call_types` (array[integer]), `connections` (array[integer]), `created_at` (string), `end_time` (string), `filters` (array[object]), `id` (string), `managed_accounts` (array[string]), `record_type` (string), `record_types` (array[integer]), `report_name` (string), `report_url` (string), `retry` (int32), `source` (string), `start_time` (string), `status` (int32), `timezone` (string), `updated_at` (string)\n\n## Delete a CDR report request\n\nDeletes a specific CDR report request by ID\n\n`DELETE /legacy/reporting/batch_detail_records/voice/{id}`\n\n```python\nvoice = client.legacy.reporting.batch_detail_records.voice.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(voice.data)\n```\n\nReturns: `call_types` (array[integer]), `connections` (array[integer]), `created_at` (string), `end_time` (string), `filters` (array[object]), `id` (string), `managed_accounts` (array[string]), `record_type` (string), `record_types` (array[integer]), `report_name` (string), `report_url` (string), `retry` (int32), `source` (string), `start_time` (string), `status` (int32), `timezone` (string), `updated_at` (string)\n\n## List MDR usage reports\n\nFetch all previous requests for MDR usage reports.\n\n`GET /legacy/reporting/usage_reports/messaging`\n\n```python\npage = client.legacy.reporting.usage_reports.messaging.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `profiles` (array[string]), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## Create a new legacy usage V2 MDR report request\n\nCreates a new legacy usage V2 MDR report request with the specified filters\n\n`POST /legacy/reporting/usage_reports/messaging`\n\n```python\nmessaging = client.legacy.reporting.usage_reports.messaging.create(\n    aggregation_type=0,\n)\nprint(messaging.data)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `profiles` (array[string]), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## Get an MDR usage report\n\nFetch single MDR usage report by id.\n\n`GET /legacy/reporting/usage_reports/messaging/{id}`\n\n```python\nmessaging = client.legacy.reporting.usage_reports.messaging.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(messaging.data)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `profiles` (array[string]), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## Delete a V2 legacy usage MDR report request\n\nDeletes a specific V2 legacy usage MDR report request by ID\n\n`DELETE /legacy/reporting/usage_reports/messaging/{id}`\n\n```python\nmessaging = client.legacy.reporting.usage_reports.messaging.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(messaging.data)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `profiles` (array[string]), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## List telco data usage reports\n\nRetrieve a paginated list of telco data usage reports\n\n`GET /legacy/reporting/usage_reports/number_lookup`\n\n```python\nnumber_lookups = client.legacy.reporting.usage_reports.number_lookup.list()\nprint(number_lookups.data)\n```\n\nReturns: `aggregation_type` (string), `created_at` (date-time), `end_date` (date), `id` (uuid), `managed_accounts` (array[string]), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date), `status` (string), `updated_at` (date-time)\n\n## Submit telco data usage report\n\nSubmit a new telco data usage report\n\n`POST /legacy/reporting/usage_reports/number_lookup`\n\n```python\nnumber_lookup = client.legacy.reporting.usage_reports.number_lookup.create()\nprint(number_lookup.data)\n```\n\nReturns: `aggregation_type` (string), `created_at` (date-time), `end_date` (date), `id` (uuid), `managed_accounts` (array[string]), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date), `status` (string), `updated_at` (date-time)\n\n## Get telco data usage report by ID\n\nRetrieve a specific telco data usage report by its ID\n\n`GET /legacy/reporting/usage_reports/number_lookup/{id}`\n\n```python\nnumber_lookup = client.legacy.reporting.usage_reports.number_lookup.retrieve(\n    \"id\",\n)\nprint(number_lookup.data)\n```\n\nReturns: `aggregation_type` (string), `created_at` (date-time), `end_date` (date), `id` (uuid), `managed_accounts` (array[string]), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date), `status` (string), `updated_at` (date-time)\n\n## Delete telco data usage report\n\nDelete a specific telco data usage report by its ID\n\n`DELETE /legacy/reporting/usage_reports/number_lookup/{id}`\n\n```python\nclient.legacy.reporting.usage_reports.number_lookup.delete(\n    \"id\",\n)\n```\n\n## List CDR usage reports\n\nFetch all previous requests for cdr usage reports.\n\n`GET /legacy/reporting/usage_reports/voice`\n\n```python\npage = client.legacy.reporting.usage_reports.voice.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `product_breakdown` (int32), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## Create a new legacy usage V2 CDR report request\n\nCreates a new legacy usage V2 CDR report request with the specified filters\n\n`POST /legacy/reporting/usage_reports/voice`\n\n```python\nfrom datetime import datetime\n\nvoice = client.legacy.reporting.usage_reports.voice.create(\n    end_time=datetime.fromisoformat(\"2024-02-01T00:00:00\"),\n    start_time=datetime.fromisoformat(\"2024-02-01T00:00:00\"),\n)\nprint(voice.data)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `product_breakdown` (int32), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## Get a CDR usage report\n\nFetch single cdr usage report by id.\n\n`GET /legacy/reporting/usage_reports/voice/{id}`\n\n```python\nvoice = client.legacy.reporting.usage_reports.voice.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(voice.data)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `product_breakdown` (int32), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## Delete a V2 legacy usage CDR report request\n\nDeletes a specific V2 legacy usage CDR report request by ID\n\n`DELETE /legacy/reporting/usage_reports/voice/{id}`\n\n```python\nvoice = client.legacy.reporting.usage_reports.voice.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(voice.data)\n```\n\nReturns: `aggregation_type` (int32), `connections` (array[string]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `product_breakdown` (int32), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (int32), `updated_at` (date-time)\n\n## List CSV downloads\n\n`GET /phone_numbers/csv_downloads`\n\n```python\npage = client.phone_numbers.csv_downloads.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `id` (string), `record_type` (string), `status` (enum: pending, complete, failed, expired), `url` (string)\n\n## Create a CSV download\n\n`POST /phone_numbers/csv_downloads`\n\n```python\ncsv_download = client.phone_numbers.csv_downloads.create()\nprint(csv_download.data)\n```\n\nReturns: `id` (string), `record_type` (string), `status` (enum: pending, complete, failed, expired), `url` (string)\n\n## Retrieve a CSV download\n\n`GET /phone_numbers/csv_downloads/{id}`\n\n```python\ncsv_download = client.phone_numbers.csv_downloads.retrieve(\n    \"id\",\n)\nprint(csv_download.data)\n```\n\nReturns: `id` (string), `record_type` (string), `status` (enum: pending, complete, failed, expired), `url` (string)\n\n## Generates and fetches CDR Usage Reports\n\nGenerate and fetch voice usage report synchronously. This endpoint will both generate and fetch the voice report over a specified time period. No polling is necessary but the response may take up to a couple of minutes.\n\n`GET /reports/cdr_usage_reports/sync`\n\n```python\nresponse = client.reports.cdr_usage_reports.fetch_sync(\n    aggregation_type=\"NO_AGGREGATION\",\n    product_breakdown=\"NO_BREAKDOWN\",\n)\nprint(response.data)\n```\n\nReturns: `aggregation_type` (enum: NO_AGGREGATION, CONNECTION, TAG, BILLING_GROUP), `connections` (array[integer]), `created_at` (date-time), `end_time` (date-time), `id` (uuid), `product_breakdown` (enum: NO_BREAKDOWN, DID_VS_TOLL_FREE, COUNTRY, DID_VS_TOLL_FREE_PER_COUNTRY), `record_type` (string), `report_url` (string), `result` (object), `start_time` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Fetch all Messaging usage reports\n\nFetch all messaging usage reports. Usage reports are aggregated messaging data for specified time period and breakdown\n\n`GET /reports/mdr_usage_reports`\n\n```python\npage = client.reports.mdr_usage_reports.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `aggregation_type` (enum: NO_AGGREGATION, PROFILE, TAGS), `connections` (array[integer]), `created_at` (date-time), `end_date` (date-time), `id` (uuid), `profiles` (string), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Create MDR Usage Report\n\nSubmit request for new new messaging usage report. This endpoint will pull and aggregate messaging data in specified time period.\n\n`POST /reports/mdr_usage_reports`\n\n```python\nfrom datetime import datetime\n\nmdr_usage_report = client.reports.mdr_usage_reports.create(\n    aggregation_type=\"NO_AGGREGATION\",\n    end_date=datetime.fromisoformat(\"2020-07-01T00:00:00-06:00\"),\n    start_date=datetime.fromisoformat(\"2020-07-01T00:00:00-06:00\"),\n)\nprint(mdr_usage_report.data)\n```\n\nReturns: `aggregation_type` (enum: NO_AGGREGATION, PROFILE, TAGS), `connections` (array[integer]), `created_at` (date-time), `end_date` (date-time), `id` (uuid), `profiles` (string), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Generate and fetch MDR Usage Report\n\nGenerate and fetch messaging usage report synchronously. This endpoint will both generate and fetch the messaging report over a specified time period. No polling is necessary but the response may take up to a couple of minutes.\n\n`GET /reports/mdr_usage_reports/sync`\n\n```python\nresponse = client.reports.mdr_usage_reports.fetch_sync(\n    aggregation_type=\"PROFILE\",\n)\nprint(response.data)\n```\n\nReturns: `aggregation_type` (enum: NO_AGGREGATION, PROFILE, TAGS), `connections` (array[integer]), `created_at` (date-time), `end_date` (date-time), `id` (uuid), `profiles` (string), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Retrieve messaging report\n\nFetch a single messaging usage report by id\n\n`GET /reports/mdr_usage_reports/{id}`\n\n```python\nmdr_usage_report = client.reports.mdr_usage_reports.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(mdr_usage_report.data)\n```\n\nReturns: `aggregation_type` (enum: NO_AGGREGATION, PROFILE, TAGS), `connections` (array[integer]), `created_at` (date-time), `end_date` (date-time), `id` (uuid), `profiles` (string), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Delete MDR Usage Report\n\nDelete messaging usage report by id\n\n`DELETE /reports/mdr_usage_reports/{id}`\n\n```python\nmdr_usage_report = client.reports.mdr_usage_reports.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(mdr_usage_report.data)\n```\n\nReturns: `aggregation_type` (enum: NO_AGGREGATION, PROFILE, TAGS), `connections` (array[integer]), `created_at` (date-time), `end_date` (date-time), `id` (uuid), `profiles` (string), `record_type` (string), `report_url` (string), `result` (array[object]), `start_date` (date-time), `status` (enum: PENDING, COMPLETE, FAILED, EXPIRED), `updated_at` (date-time)\n\n## Fetch all Mdr records\n\n`GET /reports/mdrs`\n\n```python\nresponse = client.reports.list_mdrs()\nprint(response.data)\n```\n\nReturns: `cld` (string), `cli` (string), `cost` (string), `created_at` (date-time), `currency` (enum: AUD, CAD, EUR, GBP, USD), `direction` (string), `id` (string), `message_type` (enum: SMS, MMS), `parts` (number), `profile_name` (string), `rate` (string), `record_type` (string), `status` (enum: GW_TIMEOUT, DELIVERED, DLR_UNCONFIRMED, DLR_TIMEOUT, RECEIVED, GW_REJECT, FAILED)\n\n## Fetches all Wdr records\n\nFetch all Wdr records\n\n`GET /reports/wdrs`\n\n```python\npage = client.reports.list_wdrs()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `cost` (object), `created_at` (date-time), `downlink_data` (object), `duration_seconds` (number), `id` (string), `imsi` (string), `mcc` (string), `mnc` (string), `phone_number` (string), `rate` (object), `record_type` (string), `sim_card_id` (string), `sim_group_id` (string), `sim_group_name` (string), `uplink_data` (object)\n\n## Get metadata overview\n\nReturns all available record types and supported query parameters for session analysis.\n\n`GET /session_analysis/metadata`\n\n```python\nmetadata = client.session_analysis.metadata.retrieve()\nprint(metadata.meta)\n```\n\nReturns: `meta` (object), `query_parameters` (object), `record_types` (array[object])\n\n## Get record type metadata\n\nReturns detailed metadata for a specific record type, including relationships and examples.\n\n`GET /session_analysis/metadata/{record_type}`\n\n```python\nresponse = client.session_analysis.metadata.retrieve_record_type(\n    \"record_type\",\n)\nprint(response.aliases)\n```\n\nReturns: `aliases` (array[string]), `child_relationships` (array[object]), `event` (string), `examples` (object), `meta` (object), `parent_relationships` (array[object]), `product` (string), `record_type` (string)\n\n## Get session analysis\n\nRetrieves a full session analysis tree for a given event, including costs, child events, and product linkages.\n\n`GET /session_analysis/{record_type}/{event_id}`\n\n```python\nsession_analysis = client.session_analysis.retrieve(\n    event_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    record_type=\"record_type\",\n)\nprint(session_analysis.session_id)\n```\n\nReturns: `completed_at` (date-time), `cost` (object), `created_at` (date-time), `meta` (object), `root` (object), `session_id` (string), `status` (string)\n\n## Get Telnyx product usage data (BETA)\n\nGet Telnyx usage data by product, broken out by the specified dimensions\n\n`GET /usage_reports`\n\n```python\npage = client.usage_reports.list(\n    dimensions=[\"string\"],\n    metrics=[\"string\"],\n    product=\"wireless\",\n)\npage = page.data[0]\nprint(page)\n```\n\nReturns: `data` (array[object]), `meta` (object)\n\n## Get Usage Reports query options (BETA)\n\nGet the Usage Reports options for querying usage, including the products available and their respective metrics and dimensions\n\n`GET /usage_reports/options`\n\n```python\nresponse = client.usage_reports.get_options()\nprint(response.data)\n```\n\nReturns: `product` (string), `product_dimensions` (array[string]), `product_metrics` (array[string]), `record_types` (array[object])\n\n## Get all Wireless Detail Records (WDRs) Reports\n\nReturns the WDR Reports that match the given parameters.\n\n`GET /wireless/detail_records_reports`\n\n```python\ndetail_records_reports = client.wireless.detail_records_reports.list()\nprint(detail_records_reports.data)\n```\n\nReturns: `created_at` (string), `end_time` (string), `id` (uuid), `record_type` (string), `report_url` (string), `start_time` (string), `status` (enum: pending, complete, failed, deleted), `updated_at` (string)\n\n## Create a Wireless Detail Records (WDRs) Report\n\nAsynchronously create a report containing Wireless Detail Records (WDRs) for the SIM cards that consumed wireless data in the given time period.\n\n`POST /wireless/detail_records_reports`\n\nOptional: `end_time` (string), `start_time` (string)\n\n```python\ndetail_records_report = client.wireless.detail_records_reports.create()\nprint(detail_records_report.data)\n```\n\nReturns: `created_at` (string), `end_time` (string), `id` (uuid), `record_type` (string), `report_url` (string), `start_time` (string), `status` (enum: pending, complete, failed, deleted), `updated_at` (string)\n\n## Get a Wireless Detail Record (WDR) Report\n\nReturns one specific WDR report\n\n`GET /wireless/detail_records_reports/{id}`\n\n```python\ndetail_records_report = client.wireless.detail_records_reports.retrieve(\n    \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\",\n)\nprint(detail_records_report.data)\n```\n\nReturns: `created_at` (string), `end_time` (string), `id` (uuid), `record_type` (string), `report_url` (string), `start_time` (string), `status` (enum: pending, complete, failed, deleted), `updated_at` (string)\n\n## Delete a Wireless Detail Record (WDR) Report\n\nDeletes one specific WDR report.\n\n`DELETE /wireless/detail_records_reports/{id}`\n\n```python\ndetail_records_report = client.wireless.detail_records_reports.delete(\n    \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\",\n)\nprint(detail_records_report.data)\n```\n\nReturns: `created_at` (string), `end_time` (string), `id` (uuid), `record_type` (string), `report_url` (string), `start_time` (string), `status` (enum: pending, complete, failed, deleted), `updated_at` (string)","tags":["telnyx","account","reports","python","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-account-reports-python","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-account-reports-python","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (27,159 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T12:54:43.042Z","embedding":null,"createdAt":"2026-04-18T22:06:10.366Z","updatedAt":"2026-04-22T12:54:43.042Z","lastSeenAt":"2026-04-22T12:54:43.042Z","tsv":"'+13125550001':83 '+13125550002':85 '-01':538,918,1751,1760,2282,2293 '-02':528,537,908,917,1750,1759 '-06':2286,2297 '-07':2281,2292 '-12':529,909 '-47':3119,3175 '-8948':3118,3174 '/call_events':231 '/ledger_billing_group_reports':274,331 '/legacy/reporting/batch_detail_records/messaging':397,476,615,698 '/legacy/reporting/batch_detail_records/voice':780,853,1029,1106 '/legacy/reporting/batch_detail_records/voice/fields':991 '/legacy/reporting/usage_reports/messaging':1182,1256,1320,1395 '/legacy/reporting/usage_reports/number_lookup':1465,1522,1584,1646 '/legacy/reporting/usage_reports/voice':1664,1738,1821,1896 '/phone_numbers/csv_downloads':1955,1983,2009 '/reports/cdr_usage_reports/sync':2076 '/reports/mdr_usage_reports':2179,2263,2467,2543 '/reports/mdr_usage_reports/sync':2395 '/reports/mdrs':2613 '/reports/wdrs':2680 '/session_analysis':2840 '/session_analysis/metadata':2751,2784 '/usage_reports':2905 '/usage_reports/options':2951 '/wireless/detail_records_reports':2990,3055,3110,3166 '0':237,1188,1262,1670,1961,2185,2687,2917 '00':540,541,920,921,1753,1754,1762,1763,2284,2285,2287,2295,2296,2298 '1':111 '10':287 '182bd5e5':621,704,1035,1112,1326,1401,1827,1902,2475,2551,2852 '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e':620,703,1034,1111,1325,1400,1826,1901,2474,2550,2851 '2019':289 '2020':2280,2291 '2024':527,536,907,916,1749,1758 '24':228 '401':69,146 '403':150 '404':153 '422':65,134,157 '429':62,99,163 '4291':342 '4fe4':623,706,1037,1114,1328,1403,1829,1904,2477,2553,2854 '59':531,532,911,912 '6a09cdc3':3117,3173 '6e1a':622,705,1036,1113,1327,1402,1828,1903,2476,2552,2853 '74ac943d6c58':3123,3179 '84fe544797bd':345 '8ff0':341 'a0ac':344 'a0ac-84fe544797bd':343 'a799':624,707,1038,1115,1329,1404,1830,1905,2478,2554,2855 'aa62':3122,3178 'aa6d9a6ab26e':625,708,1039,1116,1330,1405,1831,1906,2479,2555,2856 'account':3,7,497,513,806,878,891,944,1062,1139,1487,1544,1608 'actual':118 'aggreg':1192,1260,1266,1334,1409,1473,1530,1594,1674,1767,1835,1910,2081,2084,2092,2096,2169,2189,2193,2255,2273,2276,2302,2306,2400,2406,2410,2483,2487,2559,2563 'alias':2797 'alreadi':45 'alway':70 'analysi':2749,2821,2826,2847 'api':25,29,53,126,148 'applic':215 'array':405,413,421,426,433,484,487,490,498,501,505,546,554,562,567,574,630,638,646,651,658,713,721,729,734,741,789,792,801,807,814,862,865,868,871,879,883,927,930,939,945,952,1000,1004,1008,1012,1045,1048,1057,1063,1070,1122,1125,1134,1140,1147,1196,1211,1270,1285,1338,1353,1413,1428,1488,1497,1545,1554,1609,1618,1678,1771,1839,1914,2102,2197,2220,2310,2333,2414,2437,2491,2514,2567,2590,2765,2798,2802,2812,2922,2963,2967,2971 'assum':42 'asynchron':3032 'aud':2634 'authent':67,394,777 'auto':178 'auto-pagin':177 'automat':192 'avail':975,981,2740,2943 'backoff':107,169 'bash':11 'beta':2891,2931 'bill':270,282,307,327,335,363,999,2099 'bodi':494 'boolean':495,514,876,892 'breakdown':1693,1786,1854,1929,2086,2088,2117,2120,2177 'broken':2898 'cad':2635 'call':54,194,197,243,247,261,787,860,925,1043,1120 'card':2721,3044 'cdr':767,772,839,845,976,988,1017,1023,1094,1100,1652,1660,1721,1730,1810,1815,1881,1890,2035 'check':93,112,138,160 'child':2800,2834 'cld':2621 'cli':2623 'client':23,43 'client.call_events.list':234 'client.ledger_billing_group_reports.create':285 'client.ledger_billing_group_reports.retrieve':338 'client.legacy.reporting.batch_detail_records.messaging.create':523 'client.legacy.reporting.batch_detail_records.messaging.delete':702 'client.legacy.reporting.batch_detail_records.messaging.list':400 'client.legacy.reporting.batch_detail_records.messaging.retrieve':619 'client.legacy.reporting.batch_detail_records.voice.create':903 'client.legacy.reporting.batch_detail_records.voice.delete':1110 'client.legacy.reporting.batch_detail_records.voice.list':783 'client.legacy.reporting.batch_detail_records.voice.retrieve':994,1033 'client.legacy.reporting.usage_reports.messaging.create':1259 'client.legacy.reporting.usage_reports.messaging.delete':1399 'client.legacy.reporting.usage_reports.messaging.list':1185 'client.legacy.reporting.usage_reports.messaging.retrieve':1324 'client.legacy.reporting.usage_reports.number_lookup.create':1526 'client.legacy.reporting.usage_reports.number_lookup.delete':1649 'client.legacy.reporting.usage_reports.number_lookup.list':1469 'client.legacy.reporting.usage_reports.number_lookup.retrieve':1589 'client.legacy.reporting.usage_reports.voice.create':1745 'client.legacy.reporting.usage_reports.voice.delete':1900 'client.legacy.reporting.usage_reports.voice.list':1667 'client.legacy.reporting.usage_reports.voice.retrieve':1825 'client.messages.send':81 'client.phone_numbers.csv_downloads.create':1987 'client.phone_numbers.csv_downloads.list':1958 'client.phone_numbers.csv_downloads.retrieve':2014 'client.reports.cdr_usage_reports.fetch':2079 'client.reports.list':2616,2683 'client.reports.mdr_usage_reports.create':2272 'client.reports.mdr_usage_reports.delete':2549 'client.reports.mdr_usage_reports.fetch':2398 'client.reports.mdr_usage_reports.list':2182 'client.reports.mdr_usage_reports.retrieve':2473 'client.session_analysis.metadata.retrieve':2754,2789 'client.session_analysis.retrieve':2848 'client.usage_reports.get':2954 'client.usage_reports.list':2908 'client.wireless.detail_records_reports.create':3067 'client.wireless.detail_records_reports.delete':3172 'client.wireless.detail_records_reports.list':2995 'client.wireless.detail_records_reports.retrieve':3116 'code':75,129,133,145 'command':265 'common':143 'complet':316,372,449,590,674,757,1973,1999,2027,2148,2230,2343,2447,2524,2600,2865,3019,3091,3147,3203 'connect':94,404,483,545,629,712,791,864,929,1047,1124,1195,1269,1337,1412,1677,1770,1838,1913,2097,2101,2196,2309,2413,2490,2566 'consum':3046 'contain':3036 'cost':2625,2691,2833,2870 'countri':2125,2131 'coupl':2072,2391 'creat':267,293,349,407,457,464,548,632,715,794,836,842,932,1050,1127,1198,1233,1242,1272,1340,1415,1476,1533,1597,1680,1715,1724,1773,1841,1916,1978,2104,2199,2238,2312,2416,2493,2569,2627,2693,2872,2999,3025,3033,3071,3127,3183 'csv':1952,1980,1985,2006,2012 'csv_download.data':1989,2017 'currenc':2632 'data':1003,1011,1452,1461,1511,1518,1568,1577,1632,1639,2171,2257,2699,2733,2890,2895,2921,3048 'date':296,322,352,378,410,416,418,442,444,455,551,557,559,583,585,596,635,641,643,667,669,680,718,724,726,750,752,763,1201,1206,1224,1231,1275,1280,1298,1305,1343,1348,1366,1373,1418,1423,1441,1448,1479,1482,1483,1500,1501,1507,1536,1539,1540,1557,1558,1564,1600,1603,1604,1621,1622,1628,1683,1688,1706,1713,1776,1781,1799,1806,1844,1849,1867,1874,1919,1924,1942,1949,2107,2112,2143,2154,2202,2205,2207,2223,2225,2236,2278,2289,2315,2318,2320,2336,2338,2349,2419,2422,2424,2440,2442,2453,2496,2499,2501,2517,2519,2530,2572,2575,2577,2593,2595,2606,2630,2696,2868,2875 'date-tim':295,321,351,377,409,417,443,454,550,558,584,595,634,642,668,679,717,725,751,762,1200,1205,1223,1230,1274,1279,1297,1304,1342,1347,1365,1372,1417,1422,1440,1447,1478,1506,1535,1563,1599,1627,1682,1687,1705,1712,1775,1780,1798,1805,1843,1848,1866,1873,1918,1923,1941,1948,2106,2111,2142,2153,2201,2206,2224,2235,2314,2319,2337,2348,2418,2423,2441,2452,2495,2500,2518,2529,2571,2576,2594,2605,2629,2695,2867,2874 'datetim':519,521,899,901,1741,1743,2266,2268 'datetime.fromisoformat':526,535,906,915,1748,1757,2279,2290 'default':34 'delay':119 'delet':318,374,682,688,697,1092,1097,1105,1375,1383,1394,1630,1635,1645,1876,1884,1895,2532,2536,2542,3021,3093,3149,3153,3160,3165,3205 'deliv':2662 'detail':383,389,461,468,602,609,685,692,2772,2976,2992,3028,3038,3064,3100,3113,3156,3169 'detail_records_report.data':3069,3125,3181 'detail_records_reports.data':2997 'dimens':2903,2909,2949,2962 'direct':412,486,553,637,720,2639 'dlr':2663,2665 'downlink':2698 'download':1953,1981,1986,2007,2013 'durat':2701 'e':123 'e.message':130 'e.status':128,132 'end':415,480,524,556,640,723,797,857,904,935,1053,1130,1203,1277,1345,1420,1481,1538,1602,1685,1746,1778,1846,1921,2109,2204,2277,2317,2421,2498,2574,3002,3057,3074,3130,3186 'endpoint':2046,2251,2365 'enum':260,264,305,314,361,370,447,588,672,755,1971,1997,2025,2094,2118,2146,2191,2228,2304,2341,2408,2445,2485,2522,2561,2598,2633,2645,2659,3017,3089,3145,3201 'error':50,59,64,68,72,92,127,137,144,159 'eur':2636 'event':195,198,203,224,251,262,2804,2831,2835,2843,2849 'exampl':40,2782,2806 'except':88,97,120 'expir':451,592,676,759,1975,2001,2029,2150,2232,2345,2449,2526,2602 'exponenti':106,168 'f':125 'f0':3121,3177 'f0-aa62-74ac943d6c58':3120,3176 'f5586561':340 'f5586561-8ff0':339 'fail':56,317,373,450,591,675,758,1974,2000,2028,2149,2231,2344,2448,2525,2601,2670,3020,3092,3148,3204 'fetch':1173,1312,1655,1813,2034,2040,2051,2156,2161,2353,2359,2370,2458,2608,2671,2675 'field':140,161,867,978,982,995 'filter':196,201,210,223,420,474,489,561,645,728,800,851,870,938,1056,1133,1254,1736 'format':142,162 'found':156 'free':2124,2129 'full':2824 'gbp':2637 'generat':2032,2038,2049,2351,2357,2368 'get':230,324,330,380,396,598,614,765,779,974,990,1014,1028,1181,1307,1319,1464,1566,1583,1663,1808,1820,1954,2008,2075,2178,2394,2466,2612,2679,2735,2750,2767,2783,2819,2839,2886,2892,2904,2926,2932,2950,2973,2989,3097,3109 'given':200,2830,2987,3051 'group':271,283,308,328,336,364,2100,2725,2729 'gw':2660,2668 'handl':51,71 'header':116 'hello':87 'hour':229 'id':213,217,241,245,249,298,301,332,354,357,423,564,613,616,648,696,699,731,803,941,1027,1030,1059,1104,1107,1136,1208,1282,1318,1321,1350,1393,1396,1425,1484,1541,1572,1582,1585,1590,1605,1644,1647,1650,1690,1783,1819,1822,1851,1894,1897,1926,1965,1991,2010,2015,2019,2114,2209,2322,2426,2465,2468,2503,2541,2544,2579,2641,2704,2722,2726,2844,2850,2863,2882,3005,3077,3111,3133,3167,3189 'import':17,21,77,108,170,520,900,1742,2267 'imsi':2706 'includ':492,873,2779,2832,2940 'inform':1007 'initi':46 'instal':10,13 'insuffici':151 'int32':823,830,961,968,1079,1086,1156,1163,1194,1227,1268,1301,1336,1369,1411,1444,1676,1694,1709,1769,1787,1802,1837,1855,1870,1912,1930,1945 'integ':277,279,406,485,488,506,547,631,714,790,793,815,863,866,884,928,931,953,1046,1049,1071,1123,1126,1148,2103,2198,2311,2415,2492,2568 'interact':1002 'invalid':147 'item':183 'iter':180,188 'key':26,30,149 'last':227 'ledger':269,281,306,326,334,362 'ledger_billing_group_report.data':291,347 'leg':212,240,244 'legaci':1236,1245,1378,1387,1718,1727,1879,1888 'limit':61,101,165 'linkag':2838 'list':173,193,1169,1450,1458,1651,1951 'lookup':1468,1525,1588 'manag':496,512,805,877,890,943,1061,1138,1486,1543,1607 'match':2985 'may':2067,2386 'mcc':2708 'mdr':382,388,460,467,601,608,684,691,1170,1178,1239,1248,1309,1314,1380,1389,2239,2269,2354,2470,2533,2546,2610 'mdr_usage_report.data':2300,2481,2557 'mdrs':2617 'messag':399,493,522,618,701,1258,1323,1398,2158,2163,2170,2247,2256,2360,2372,2456,2461,2537,2643 'messaging.data':543,627,710,1264,1332,1407 'messagings.data':402 'meta':2758,2808,2877,2924 'metadata':254,875,2736,2753,2770,2773 'metadata.meta':2756 'method':174 'metric':2911,2947,2966 'minut':2074,2393 'mms':2647 'mnc':2710 'month':276,286 'name':256,436,508,577,661,744,817,886,955,1073,1150,2651,2730 'necessari':2063,2382 'network':58,91 'new':459,466,838,844,1235,1244,1516,1717,1726,2245,2246 'note':171 'number':1006,1467,1524,1587,2649,2703,2713 'number_lookup.data':1528,1592 'number_lookups.data':1471 'object':255,422,491,563,647,730,802,872,940,1058,1135,1220,1294,1362,1437,1498,1555,1619,1702,1795,1863,1938,2139,2221,2334,2438,2515,2591,2692,2700,2716,2734,2759,2762,2766,2803,2807,2809,2813,2871,2878,2880,2923,2925,2972 'occur':207 'omit':38 'one':3105,3161 'option':275,482,859,2930,2936,2955,3056 'order':205 'organ':300,356 'os':18 'os.environ.get':27 'overview':2737 'page':185,191,233,235,1184,1186,1666,1668,1957,1959,2181,2183,2682,2685,2907,2915,2919 'page.call':239 'page.data':236,1187,1669,1960,2184,2686,2916 'page.id':1190,1672,1963,2187,2689 'pagin':172,179,1457 'paramet':202,2746,2761,2988 'parent':2810 'part':2648 'pend':315,371,448,589,673,756,1972,1998,2026,2147,2229,2342,2446,2523,2599,3018,3090,3146,3202 'per':2130 'period':2059,2175,2261,2378,3053 'permiss':152 'phone':2712 'pip':12 'poll':2061,2380 'post':273,475,852,1255,1521,1737,1982,2262,3054 'present':220 'previous':1175,1657 'print':90,124,135,238,290,346,401,542,626,709,784,922,996,1040,1117,1189,1263,1331,1406,1470,1527,1591,1671,1764,1832,1907,1962,1988,2016,2089,2186,2299,2403,2480,2556,2618,2688,2755,2794,2861,2918,2956,2996,3068,3124,3180 'product':74,1692,1785,1853,1928,2085,2116,2814,2837,2888,2897,2913,2942,2959,2961,2965 'profil':425,500,566,650,733,1210,1284,1352,1427,2194,2211,2307,2324,2402,2411,2428,2488,2505,2564,2581,2650 'pull':2253 'python':5,9,16,76,232,280,333,398,517,617,700,781,897,992,1031,1108,1183,1257,1322,1397,1466,1523,1586,1648,1665,1739,1823,1898,1956,1984,2011,2077,2180,2264,2396,2469,2545,2614,2681,2752,2787,2845,2906,2952,2991,3063,3112,3168 'queri':2745,2760,2929,2938 'rate':60,100,164,2653,2715 'receiv':2667 'record':258,303,359,428,431,503,569,572,653,656,736,739,809,812,881,947,950,1065,1068,1142,1145,1213,1287,1355,1430,1490,1547,1611,1695,1788,1856,1931,1967,1993,2021,2132,2213,2326,2430,2507,2583,2611,2655,2674,2678,2717,2741,2763,2768,2777,2785,2790,2792,2816,2841,2857,2859,2969,2977,2993,3007,3029,3039,3065,3079,3101,3114,3135,3157,3170,3191 'reject':2669 'relationship':2780,2801,2811 'report':4,8,272,284,309,310,329,337,365,366,384,390,435,438,462,469,507,576,579,603,610,660,663,686,693,743,746,768,773,816,819,840,846,885,954,957,977,989,1018,1024,1072,1075,1095,1101,1149,1152,1172,1180,1216,1240,1249,1290,1311,1316,1358,1381,1390,1433,1454,1463,1493,1513,1520,1550,1570,1579,1614,1634,1641,1654,1662,1698,1722,1731,1791,1812,1817,1859,1882,1891,1934,2037,2043,2054,2135,2160,2165,2167,2216,2241,2249,2271,2329,2356,2362,2373,2433,2457,2463,2472,2510,2535,2539,2548,2586,2928,2935,2979,2983,2994,3010,3031,3035,3066,3082,3103,3108,3115,3138,3159,3164,3171,3194 'request':385,391,463,470,604,611,687,694,769,774,841,847,1019,1025,1096,1102,1176,1241,1250,1382,1391,1658,1723,1732,1883,1892,2243 'requir':139,477,854 'resourc':154 'respect':2946 'respons':993,2066,2078,2385,2397,2615,2788,2953 'response.aliases':2795 'response.billing':997 'response.data':2090,2404,2619,2957 'result':80,186,1219,1293,1361,1436,1496,1553,1617,1701,1794,1862,1937,2138,2219,2332,2436,2513,2589 'retri':96,104,114,166,822,960,1078,1155 'retriev':386,605,770,979,1020,1455,1573,2004,2455,2822 'retry-aft':113 'return':175,242,292,348,403,544,628,711,786,924,998,1042,1119,1191,1265,1333,1408,1472,1529,1593,1673,1766,1834,1909,1964,1990,2018,2091,2188,2301,2405,2482,2558,2620,2690,2738,2757,2771,2796,2864,2920,2958,2980,2998,3070,3104,3126,3182 'root':2879 'second':2702 'select':510,888 'session':216,248,2748,2820,2825,2846,2881 'session_analysis.session':2862 'setup':15 'shown':48 'sim':2720,2724,2728,3043 'singl':1313,1814,2460 'skill' 'skill-telnyx-account-reports-python' 'sms':2646 'sourc':824,893,962,1080,1157 'source-team-telnyx' 'specif':600,607,690,1016,1022,1099,1385,1575,1637,1886,2776,3106,3162 'specifi':473,850,1253,1735,2057,2173,2259,2376,2902 'start':441,478,533,582,666,749,826,855,913,964,1082,1159,1221,1295,1363,1438,1499,1556,1620,1703,1755,1796,1864,1939,2140,2222,2288,2335,2439,2516,2592,3013,3060,3085,3141,3197 'status':313,369,446,587,671,754,829,967,1085,1162,1226,1300,1368,1443,1502,1559,1623,1708,1801,1869,1944,1970,1996,2024,2145,2227,2340,2444,2521,2597,2658,2884,3016,3088,3144,3200 'string':246,250,253,257,414,427,430,434,437,440,499,502,509,516,555,568,571,575,578,581,639,652,655,659,662,665,722,735,738,742,745,748,796,799,804,808,811,818,821,825,828,832,835,869,880,887,894,896,934,937,942,946,949,956,959,963,966,970,973,1001,1005,1009,1013,1052,1055,1060,1064,1067,1074,1077,1081,1084,1088,1091,1129,1132,1137,1141,1144,1151,1154,1158,1161,1165,1168,1197,1212,1215,1218,1271,1286,1289,1292,1339,1354,1357,1360,1414,1429,1432,1435,1475,1489,1492,1495,1503,1532,1546,1549,1552,1560,1596,1610,1613,1616,1624,1679,1697,1700,1772,1790,1793,1840,1858,1861,1915,1933,1936,1966,1969,1977,1992,1995,2003,2020,2023,2031,2134,2137,2212,2215,2218,2325,2328,2331,2429,2432,2435,2506,2509,2512,2582,2585,2588,2622,2624,2626,2640,2642,2652,2654,2657,2705,2707,2709,2711,2714,2719,2723,2727,2731,2799,2805,2815,2818,2883,2885,2910,2912,2960,2964,2968,3001,3004,3009,3012,3015,3024,3059,3062,3073,3076,3081,3084,3087,3096,3129,3132,3137,3140,3143,3152,3185,3188,3193,3196,3199,3208 'submit':1509,1514,2242 'support':2744 'sync':2080,2399 'synchron':2044,2363 't00':539,919,1752,1761,2283,2294 't23':530,910 'tag':2098,2195,2308,2412,2489,2565 'take':2068,2387 'telco':1451,1460,1510,1517,1567,1576,1631,1638 'telephoni':1010 'telnyx':2,6,14,20,22,24,28,78,2887,2893 'telnyx-account-reports-python':1 'telnyx.apiconnectionerror':89 'telnyx.apistatuserror':121 'telnyx.ratelimiterror':98 'text':86 'time':109,297,323,353,379,411,419,445,456,479,481,525,534,552,560,586,597,636,644,670,681,719,727,753,764,798,827,856,858,905,914,936,965,1054,1083,1131,1160,1202,1204,1207,1222,1225,1232,1276,1278,1281,1296,1299,1306,1344,1346,1349,1364,1367,1374,1419,1421,1424,1439,1442,1449,1480,1508,1537,1565,1601,1629,1684,1686,1689,1704,1707,1714,1747,1756,1777,1779,1782,1797,1800,1807,1845,1847,1850,1865,1868,1875,1920,1922,1925,1940,1943,1950,2058,2108,2110,2113,2141,2144,2155,2174,2203,2208,2226,2237,2260,2316,2321,2339,2350,2377,2420,2425,2443,2454,2497,2502,2520,2531,2573,2578,2596,2607,2631,2697,2869,2876,3003,3014,3052,3058,3061,3075,3086,3131,3142,3187,3198 'time.sleep':110 'timeout':2661,2666 'timestamp':252 'timezon':515,831,895,969,1087,1164 'toll':2123,2128 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'tree':2827 'tri':79 'type':259,263,304,360,429,432,504,570,573,654,657,737,740,788,810,813,861,882,926,948,951,1044,1066,1069,1121,1143,1146,1193,1214,1261,1267,1288,1335,1356,1410,1431,1474,1491,1531,1548,1595,1612,1675,1696,1768,1789,1836,1857,1911,1932,1968,1994,2022,2082,2093,2133,2190,2214,2274,2303,2327,2401,2407,2431,2484,2508,2560,2584,2644,2656,2718,2742,2764,2769,2778,2786,2791,2793,2817,2842,2858,2860,2970,3008,3080,3136,3192 'unconfirm':2664 'updat':319,375,452,593,677,760,833,971,1089,1166,1228,1302,1370,1445,1504,1561,1625,1710,1803,1871,1946,2151,2233,2346,2450,2527,2603,3022,3094,3150,3206 'uplink':2732 'uri':312,368 'url':311,367,439,580,664,747,820,958,1076,1153,1217,1291,1359,1434,1494,1551,1615,1699,1792,1860,1935,1976,2002,2030,2136,2217,2330,2434,2511,2587,3011,3083,3139,3195 'usag':1171,1179,1237,1246,1310,1315,1379,1388,1453,1462,1512,1519,1569,1578,1633,1640,1653,1661,1719,1728,1811,1816,1880,1889,2036,2042,2159,2164,2166,2240,2248,2270,2355,2361,2462,2471,2534,2538,2547,2889,2894,2927,2934,2939 'usd':2638 'use':181,986 'user':395,778 'uuid':299,302,355,358,424,565,649,732,1209,1283,1351,1426,1485,1542,1606,1691,1784,1852,1927,2115,2210,2323,2427,2504,2580,3006,3078,3134,3190 'v2':1238,1247,1377,1386,1720,1729,1878,1887 'valid':63,136,158 'voic':782,902,1032,1109,1744,1824,1899,2041,2053 'voice.data':923,1041,1118,1765,1833,1908 'voices.data':785 'vs':2122,2127 'wait':102 'wdr':2673,2677,2982,3102,3107,3158,3163 'wdrs':2684,2978,3030,3040 'webhook':266 'wireless':2914,2975,3027,3037,3047,3099,3155 'year':278,288","prices":[{"id":"e2b1a490-edcb-4031-8af9-d9d8939d5077","listingId":"c4c90819-f1d8-4d55-9091-2bf9d91fd3e1","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"team-telnyx","category":"ai","install_from":"skills.sh"},"createdAt":"2026-04-18T22:06:10.366Z"}],"sources":[{"listingId":"c4c90819-f1d8-4d55-9091-2bf9d91fd3e1","source":"github","sourceId":"team-telnyx/ai/telnyx-account-reports-python","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-account-reports-python","isPrimary":false,"firstSeenAt":"2026-04-18T22:06:10.366Z","lastSeenAt":"2026-04-22T12:54:43.042Z"}],"details":{"listingId":"c4c90819-f1d8-4d55-9091-2bf9d91fd3e1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-account-reports-python","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"3680ca8b57e631384be45d9339b7410d063f020a","skill_md_path":"skills/telnyx-account-reports-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-account-reports-python"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-account-reports-python","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-account-reports-python"},"updatedAt":"2026-04-22T12:54:43.042Z"}}