> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # Addresses > Read-only access to fabric addresses. [restclient]: /docs/server-sdks/reference/typescript/rest/client Read-only access to fabric addresses. Addresses represent the endpoints (phone numbers, SIP URIs, domains) that route traffic to fabric resources. Access via `client.fabric.addresses` on a [`RestClient`][restclient] instance. ### list List all fabric addresses. ### Schema ```yaml openapi: 3.1.0 info: title: API version: 1.0.0 paths: /api/fabric/addresses: get: operationId: subpackageAddresses_list_resource_addresses_client summary: List Resource Addresses from a Client description: >- Returns the resource addresses visible to the authenticated [Subscriber](/docs/platform/subscribers). A subscriber client uses this collection to discover the callable handles it can reach. Authenticate with a Subscriber Access Token (SAT) created by [Create Subscriber token](/docs/apis/rest/subscribers/tokens/create-subscriber-token); project administration code should use the project-scoped [List Resource Addresses](/docs/apis/rest/addresses/list-resource-addresses) operation instead. Resource addresses are callable handles, not standalone SIP Address configurations or physical [E911 Addresses](/docs/apis/rest/e-911-addresses/list-addresses). #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Voice_, _Messaging_, _Fax_, or _Video_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). tags: - subpackage_addresses responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/FabricAddressesResponse' '401': description: Access is unauthorized. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode401' '404': description: The server cannot find the requested resource. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode404' '500': description: An internal server error occurred. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode500' tags: - name: subpackage_addresses servers: - url: https://%7BYour_Space_Name%7D.signalwire.com description: SignalWire API components: schemas: uuid: type: string format: uuid description: Universal Unique Identifier. title: uuid AudioChannel: type: object properties: audio: type: string description: Audio Channel of Fabric Address required: - audio title: AudioChannel MessagingChannel: type: object properties: messaging: type: string description: Messaging Channel of Fabric Address required: - messaging title: MessagingChannel VideoChannel: type: object properties: video: type: string description: Video Channel of Fabric Address required: - video title: VideoChannel AddressChannel: oneOf: - $ref: '#/components/schemas/AudioChannel' - $ref: '#/components/schemas/MessagingChannel' - $ref: '#/components/schemas/VideoChannel' title: AddressChannel DisplayTypes: type: string enum: - app - room - call - subscriber description: DisplayTypes title: DisplayTypes FabricAddress: type: object properties: id: $ref: '#/components/schemas/uuid' description: Unique ID of the Fabric Address. name: type: string description: Name of the Fabric Address. display_name: type: string description: Display name of the Fabric Address. cover_url: type: string description: Cover url of the Fabric Address. preview_url: type: string description: Preview url of the Fabric Address. locked: type: boolean description: >- Locks the Fabric Address. This is used to prevent the Fabric Address from accepting calls. channels: $ref: '#/components/schemas/AddressChannel' description: Channels of the Fabric Address. created_at: type: string format: date-time description: Fabric Address Creation Date. type: $ref: '#/components/schemas/DisplayTypes' required: - id - name - display_name - cover_url - preview_url - locked - channels - created_at - type title: FabricAddress FabricAddressPaginationResponse: type: object properties: self: type: string format: uri description: Link of the current page first: type: string format: uri description: Link to the first page next: type: string format: uri description: Link to the next page prev: type: string format: uri description: Link to the previous page required: - self - first title: FabricAddressPaginationResponse FabricAddressesResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/FabricAddress' description: An array of objects containing a list of Resource Addresses links: $ref: '#/components/schemas/FabricAddressPaginationResponse' description: Object containing pagination links required: - data - links title: FabricAddressesResponse TypesStatusCodesStatusCode401Error: type: string enum: - Unauthorized title: TypesStatusCodesStatusCode401Error Types.StatusCodes.StatusCode401: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode401Error' required: - error description: Access is unauthorized. title: Types.StatusCodes.StatusCode401 TypesStatusCodesStatusCode404Error: type: string enum: - Not Found title: TypesStatusCodesStatusCode404Error Types.StatusCodes.StatusCode404: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode404Error' required: - error description: The server cannot find the requested resource. title: Types.StatusCodes.StatusCode404 TypesStatusCodesStatusCode500Error: type: string enum: - Internal Server Error title: TypesStatusCodesStatusCode500Error Types.StatusCodes.StatusCode500: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode500Error' required: - error description: An internal server error occurred. title: Types.StatusCodes.StatusCode500 ``` ## **Response Example** ### Response (200) ```json { "data": [ { "id": "691af061-cd86-4893-a605-173f47afc4c2", "name": "justice-league", "display_name": "Justice League", "cover_url": "https://coverurl.com", "preview_url": "https://previewurl.com", "locked": true, "channels": { "audio": "/external/resource_name?channel=audio" }, "created_at": "2024-05-06T12:20:00Z", "type": "app" } ], "links": { "self": "https://example.signalwire.com/api/fabric/addresses?page_number=0&page_size=50", "first": "https://example.signalwire.com/api/fabric/addresses?page_number=0&page_size=50", "next": "https://example.signalwire.com/api/fabric/addresses?page_number=1&page_number=1&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca", "prev": "https://example.signalwire.com/api/fabric/addresses?page_number=0&page_size=50&page_token=PAbff61159-faab-48b3-959a-3021a8f5beca" } } ``` ### get Retrieve a single fabric address. ### Schema ```yaml openapi: 3.1.0 info: title: API version: 1.0.0 paths: /api/fabric/addresses/{id}: get: operationId: subpackageAddresses_get_resource_address_client summary: Get Resource Address from a Client description: >- Retrieves one resource address visible to the authenticated [Subscriber](/docs/platform/subscribers) by address ID. Use it when a subscriber client already holds a callable address identifier; use [List Resource Addresses from a Client](/docs/apis/rest/addresses/list-resource-addresses-client) to discover visible addresses. Authenticate with a Subscriber Access Token (SAT), not a project API token. Resource addresses are callable handles, not standalone SIP Address configurations or physical [E911 Addresses](/docs/apis/rest/e-911-addresses/get-address). #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Voice_, _Messaging_, _Fax_, or _Video_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). tags: - subpackage_addresses parameters: - name: id in: path description: Unique ID of a FabricAddress. required: true schema: $ref: '#/components/schemas/uuid' responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/FabricAddress' '401': description: Access is unauthorized. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode401' '404': description: The server cannot find the requested resource. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode404' '500': description: An internal server error occurred. content: application/json: schema: $ref: '#/components/schemas/Types.StatusCodes.StatusCode500' tags: - name: subpackage_addresses servers: - url: https://%7BYour_Space_Name%7D.signalwire.com description: SignalWire API components: schemas: uuid: type: string format: uuid description: Universal Unique Identifier. title: uuid AudioChannel: type: object properties: audio: type: string description: Audio Channel of Fabric Address required: - audio title: AudioChannel MessagingChannel: type: object properties: messaging: type: string description: Messaging Channel of Fabric Address required: - messaging title: MessagingChannel VideoChannel: type: object properties: video: type: string description: Video Channel of Fabric Address required: - video title: VideoChannel AddressChannel: oneOf: - $ref: '#/components/schemas/AudioChannel' - $ref: '#/components/schemas/MessagingChannel' - $ref: '#/components/schemas/VideoChannel' title: AddressChannel DisplayTypes: type: string enum: - app - room - call - subscriber description: DisplayTypes title: DisplayTypes FabricAddress: type: object properties: id: $ref: '#/components/schemas/uuid' description: Unique ID of the Fabric Address. name: type: string description: Name of the Fabric Address. display_name: type: string description: Display name of the Fabric Address. cover_url: type: string description: Cover url of the Fabric Address. preview_url: type: string description: Preview url of the Fabric Address. locked: type: boolean description: >- Locks the Fabric Address. This is used to prevent the Fabric Address from accepting calls. channels: $ref: '#/components/schemas/AddressChannel' description: Channels of the Fabric Address. created_at: type: string format: date-time description: Fabric Address Creation Date. type: $ref: '#/components/schemas/DisplayTypes' required: - id - name - display_name - cover_url - preview_url - locked - channels - created_at - type title: FabricAddress TypesStatusCodesStatusCode401Error: type: string enum: - Unauthorized title: TypesStatusCodesStatusCode401Error Types.StatusCodes.StatusCode401: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode401Error' required: - error description: Access is unauthorized. title: Types.StatusCodes.StatusCode401 TypesStatusCodesStatusCode404Error: type: string enum: - Not Found title: TypesStatusCodesStatusCode404Error Types.StatusCodes.StatusCode404: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode404Error' required: - error description: The server cannot find the requested resource. title: Types.StatusCodes.StatusCode404 TypesStatusCodesStatusCode500Error: type: string enum: - Internal Server Error title: TypesStatusCodesStatusCode500Error Types.StatusCodes.StatusCode500: type: object properties: error: $ref: '#/components/schemas/TypesStatusCodesStatusCode500Error' required: - error description: An internal server error occurred. title: Types.StatusCodes.StatusCode500 ``` ## **Response Example** ### Response (200) ```json { "id": "691af061-cd86-4893-a605-173f47afc4c2", "name": "justice-league", "display_name": "Justice League", "cover_url": "https://coverurl.com", "preview_url": "https://previewurl.com", "locked": true, "channels": { "audio": "/external/resource_name?channel=audio" }, "created_at": "2024-05-06T12:20:00Z", "type": "app" } ``` ## **Example** ```typescript {10} import { RestClient } from "@signalwire/sdk"; const client = new RestClient({ project: "your-project-id", token: "your-api-token", host: "your-space.signalwire.com" }); // List all addresses const addresses = await client.fabric.addresses.list(); for (const addr of addresses.data ?? []) { console.log(`${addr['display_name']}: ${addr['type']}`); } // Get a specific address const address = await client.fabric.addresses.get("address-id"); console.log(`Address: ${address['display_name']}`); ``` > Read-only access to fabric addresses.