---
title: "List all internal endpoints"
method: GET
path: "/internalendpoints"
tags: ["Internal Endpoints"]
---

# List all internal endpoints

`GET /internalendpoints`

This operation lists all internal endpoints which organizations can use to communicate with. This includes all Spruce phone numbers, fax numbers, email addresses and Spruce Links. You can then [use an internal endpoint to send a message](/reference/postmessagefromendpoint).

## Response `200`

Expected response to a valid request

- object
  - `internalEndpoints` InternalEndpoint[], required
    - `additionalMembers` union[]
      - union
        - Teammate
          - `displayName` string, required — The full name of the teammate, including any title provided
          - `email` string, email — The email address of the teammate
          - `id` string, required — The id of the teammate
          - `isAdmin` boolean, required — Whether or not the teammate is an admin on Spruce
          - `object` string, required — String representing the object's type
          - `type` string, required — This will always be 'teammate'. This is provided for cases where a teammate may be in a mixed list with teams and/or your organization.
        - Team
          - `id` string, required — The id of the team
          - `name` string, required — The name of the team
          - `object` string, required — String representing the object's type
          - `type` string, required — This will always be 'team'. This is provided for cases where a team may be in a mixed list with teammtes and/or your organization.
        - Organization
          - `id` string, required — The id of the organization
          - `name` string, required — The name of the organization
          - `object` string, required — String representing the object's type
          - `type` string, required — This will always be 'organization'. This is provided for cases where a organization may be in a mixed list with teammtes and/or teams.
    - `endpoint` Endpoint, required
      - `channel` 'email' | 'phone' | 'fax' | 'secure', required — The channel of the endpoint (e.g. 'email', 'phone', 'fax', etc.). More endpoint channels may be added in the future, so ensure while parsing this that you gracefully handle any new/unexpected values.
      - `displayValue` string, required — The display value of the endpoint. This is the value that should be displayed to the user when showing the endpoint, along with the label if it's populated.
      - `id` string, required — The id of the endpoint. For secure (Spruce Link) endpoints, the id format depends on where the endpoint is returned: the list internal endpoints API returns the underlying organization invite id, while a secure endpoint that appears on a conversation is returned with a different, derived value. To determine whether a conversation belongs to a particular Spruce Link, compare `endpoint.rawValue` rather than `endpoint.id`. Endpoint ids for phone, fax, and email channels use the same format across responses.
      - `isInternal` boolean, required — Internal endpoints are endpoints that are owned by your organization, such as your organization's Spruce Phone Numbers or Spruce Links.
      - `label` string — The optional label of the endpoint
      - `object` string, required — String representing the object's type
      - `rawValue` string, required — The raw value of the endpoint. This can be used for programmatically comparing contact values, and is the stable identifier to use when matching a secure endpoint on a conversation back to the corresponding Spruce Link returned by the list internal endpoints API. The raw value for a phone/fax number will be in E164 format.
    - `object` string, required — String representing the object's type
    - `owner` union, required
      - Teammate
        - `displayName` string, required — The full name of the teammate, including any title provided
        - `email` string, email — The email address of the teammate
        - `id` string, required — The id of the teammate
        - `isAdmin` boolean, required — Whether or not the teammate is an admin on Spruce
        - `object` string, required — String representing the object's type
        - `type` string, required — This will always be 'teammate'. This is provided for cases where a teammate may be in a mixed list with teams and/or your organization.
      - Team
        - `id` string, required — The id of the team
        - `name` string, required — The name of the team
        - `object` string, required — String representing the object's type
        - `type` string, required — This will always be 'team'. This is provided for cases where a team may be in a mixed list with teammtes and/or your organization.
      - Organization
        - `id` string, required — The id of the organization
        - `name` string, required — The name of the organization
        - `object` string, required — String representing the object's type
        - `type` string, required — This will always be 'organization'. This is provided for cases where a organization may be in a mixed list with teammtes and/or teams.

## Other responses

- `500` — unexpected error

---

[API](https://skmtc.net/sprucehealth/apis/spruce-health-api.md) · [All operations](https://skmtc.net/sprucehealth/apis/spruce-health-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sprucehealth/spruce-health-api/revisions/988e298cd9fd/schema)
