List SIP trunks
/v1/voice/trunksfor await (const trunk of bird.voice.trunks.list()) {
// A trunk with no allow list and no session credentials admits nothing.
console.log(trunk.id, trunk.domain, trunk.inbound_enabled);
}for trunk in client.voice.trunks.list():
# A trunk with no allow list and no session credentials admits nothing.
print(trunk.id, trunk.domain, trunk.inbound_enabled)for trunk, err := range client.Voice.Trunks.List(context.Background(), bird.VoiceTrunksListParams{}) {
if err != nil {
log.Fatal(err)
}
// A trunk with no allow list and no session credentials admits nothing.
fmt.Println(trunk.Id, trunk.Domain, trunk.InboundEnabled)
}foreach ($bird->voice->trunks->list() as $trunk) {
// A trunk with no allow list and no session credentials admits nothing.
echo $trunk->getId(), ' ', $trunk->getDomain() ?? 'no domain yet', "\n";
}bird voice trunks listcurl -X GET "https://us1.platform.bird.com/v1/voice/trunks" \
-H "Authorization: Bearer $TOKEN" \
--url-query "sort=created_at" \
--url-query "order=desc" \
--url-query "limit=25"{
"data": [
{
"id": "spt_01krdgeqcxet5s7t44vh8rt9mg",
"workspace_id": "ws_01krdgeqcxet5s7t44vh8rt9mg",
"name": "Production PBX trunk",
"domain": "01kxp5bb9qf878642atrf0xy5r.trunk.eu1.sip.bird.com",
"ip_acls": [
{
"id": "sta_01krdgeqcxet5s7t44vh8rt9mg",
"trunk_id": "spt_01krdgeqcxet5s7t44vh8rt9mg",
"cidr": "203.0.113.0/24",
"description": "Office network"
}
],
"allowed_api_key_ids": [
"key_01krdgeqcxet5s7t44vh8rt9mg"
],
"ineligible_api_key_ids": [
"key_01krdgeqcxet5s7t44vh8rt9mg"
],
"digest_algorithms": [
"SHA-256",
"MD5"
],
"created_at": "2026-05-20T09:14:52Z",
"updated_at": "2026-05-25T16:42:01Z"
}
],
"next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
"prev_cursor": null,
"refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns the workspace's SIP trunks as a paginated list, each with its assigned domain and access control lists. Create a trunk to provision a new one, or use voice.trunks.get to fetch an existing trunk by ID.
Parámetros de consulta
sortstringField to sort by.
Possible values: created_at
orderstringSort direction. Defaults to desc, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.
Possible values: asc, desc
limitintegerMaximum number of items to return per page.
starting_afterstringCursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_beforestringCursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
Carga de respuesta
datanext_cursorCursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursorCursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursorRefresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
Recursos relacionados
Continúa con la documentación, guías y ejemplos de este tema.