REST ClientProjects

list

View as MarkdownOpen in Claude

projects.list

List the authenticated root project and its subprojects. Returns one page; use client.projects.paginate() to iterate every project across pages.

Query parameters

namestringOptional
Filter projects by name.
page_sizeintegerOptional1-1000Defaults to 50
The number of results per page.
page_tokenstringOptional
Cursor token for paging, taken from the `links` in a previous response.
page_numberintegerOptional>=0Defaults to 0
The page index, used together with `page_token`.

Response

datalist of objectsRequired
The projects on this page.

Response Example

Response
{
"links": {
"self": "https://example-space.signalwire.com/api/projects?page_size=50",
"first": "https://example-space.signalwire.com/api/projects?page_size=50",
"next": "https://example-space.signalwire.com/api/projects?page_size=50&page_number=1&page_token=PA8f14e45f",
"prev": "https://example-space.signalwire.com/api/projects?page_size=50&page_number=0&page_token=PA8f14e45f"
},
"data": [
{
"id": "8f14e45f-ceea-467d-9c2b-7a1d3a9b2c34",
"name": "Acme Staging",
"parent_project_id": "b3877739-5c7e-4d4f-9d1a-2f0c8c2f1a11",
"subproject": true,
"region_preference": "us-west",
"protect_recordings": false,
"protect_message_media": false,
"protect_fax_media": false,
"force_https_requests": true,
"created_at": "2024-05-06T12:20:00Z",
"updated_at": "2024-05-06T12:20:00Z"
}
]
}

Example

from signalwire.rest import RestClient
client = RestClient(
project="your-project-id",
token="your-api-token",
host="your-space.signalwire.com",
)
result = client.projects.list()
for project in result.get("data", []):
kind = "subproject" if project["subproject"] else "root"
print(project["name"], project["id"], kind)