> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goyappr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SIP Endpoints Status

> Whether this workspace can create username-and-password trunks right now.
`credentials_available` is `true` when trunks are switched on for your
workspace and Yappr's voice servers answer calls on them. While it is
`false`, [creating one](/api-reference/sip-endpoints/create) is refused
with `403 SIP_TRUNKS_NOT_ENABLED` (not switched on for your workspace: ask
Yappr support) or `409 VOICE_NOT_READY` (for example during an update: try
again in a few minutes), and the dashboard offers SIP address endpoints
only. Existing endpoints can still be listed, changed and deleted, and a
trunk can still get a new password with
[rotate-password](/api-reference/sip-endpoints/rotate-password). Yappr
checks its voice servers at most once a minute, so the answer can be up to
a minute old. Requires `sip_endpoints:read`.


Whether this workspace can create username-and-password trunks right now. Requires
`sip_endpoints:read`.

```bash theme={null}
curl https://api.goyappr.com/sip-endpoints/status \
  -H "Authorization: Bearer ypr_live_..."
```

```json theme={null}
{ "credentials_available": true }
```

`true` means both of these hold:

* username-and-password trunks are switched on for your workspace;
* Yappr's voice servers answer calls on them.

While it is `false`:

* [Creating a trunk](/api-reference/sip-endpoints/create) is refused and nothing is
  created. The answer says why: `403 SIP_TRUNKS_NOT_ENABLED` when trunks aren't
  switched on for your workspace (ask Yappr support to switch them on), or
  `409 VOICE_NOT_READY` while Yappr can't take trunk calls, for example during an
  update (try again in a few minutes).
* The dashboard offers SIP address endpoints only.
* SIP address endpoints can still be created.
* Existing endpoints can still be listed, changed and deleted, and a trunk can still
  get a new password with [rotate-password](/api-reference/sip-endpoints/rotate-password).

Yappr checks its voice servers at most once a minute, so after an update the answer
can take up to a minute to change.

## Errors

| Status | `code` | Meaning |
| - | - | - |
| 400 | `SIP_ENDPOINT_QUERY_INVALID` | The request has a query parameter: this call takes none. |
| 401 | `MISSING_KEY`, `INVALID_KEY`, `EXPIRED_KEY` | The API key is missing, not recognised or expired. |
| 403 | `INSUFFICIENT_SCOPE` | The API key lacks `sip_endpoints:read`. |


## OpenAPI

````yaml GET /sip-endpoints/status
openapi: 3.1.0
info:
  title: Yappr API
  description: >
    Create and manage AI voice agents, purchase phone numbers, configure tools,
    and initiate calls — all via REST.
  version: 1.0.0
  contact:
    url: https://goyappr.com
servers:
  - url: https://api.goyappr.com
    description: Production
security:
  - apiKey: []
paths:
  /sip-endpoints/status:
    get:
      tags:
        - SIP Endpoints
      summary: Check username-and-password trunks are available
      description: >
        Whether this workspace can create username-and-password trunks right
        now.

        `credentials_available` is `true` when trunks are switched on for your

        workspace and Yappr's voice servers answer calls on them. While it is

        `false`, [creating one](/api-reference/sip-endpoints/create) is refused

        with `403 SIP_TRUNKS_NOT_ENABLED` (not switched on for your workspace:
        ask

        Yappr support) or `409 VOICE_NOT_READY` (for example during an update:
        try

        again in a few minutes), and the dashboard offers SIP address endpoints

        only. Existing endpoints can still be listed, changed and deleted, and a

        trunk can still get a new password with

        [rotate-password](/api-reference/sip-endpoints/rotate-password). Yappr

        checks its voice servers at most once a minute, so the answer can be up
        to

        a minute old. Requires `sip_endpoints:read`.
      operationId: getSipEndpointsStatus
      responses:
        '200':
          description: Whether username-and-password trunks can be created
          content:
            application/json:
              schema:
                type: object
                required:
                  - credentials_available
                properties:
                  credentials_available:
                    type: boolean
                    example: true
        '400':
          description: >-
            `SIP_ENDPOINT_QUERY_INVALID` — the request has a query parameter;
            this call takes none.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            `MISSING_KEY`, `INVALID_KEY` or `EXPIRED_KEY` — the API key is
            missing, not recognised or expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: '`INSUFFICIENT_SCOPE` — the API key lacks `sip_endpoints:read`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: >-
        Your Yappr API key (e.g. `ypr_live_...`). Generate one in the dashboard
        under **Settings → API Keys**.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.