> ## 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.

# Test Carrier Account

> Checks the key, the app and its outbound voice profile with Telnyx, and
re-checks that every number is still in your account. **Places no call.**
A number Telnyx no longer lists stops being callable until a later test finds
it again. If Telnyx refuses the API key, the account pauses right away
(`pause_reason: key_rejected`) and its numbers stop calling, as a refused call
would pause it; reactivate it once the key works. Requires
`carrier_accounts:manage`. Limit: 60 per workspace per day.


Checks the account with Telnyx and **places no call**. Requires
`carrier_accounts:manage`.

```bash theme={null}
curl -X POST https://api.goyappr.com/carrier-accounts/7c1e…/test \
  -H "Authorization: Bearer ypr_live_..."
```

```json theme={null}
{
  "ok": true,
  "checks": [
    { "name": "api_key", "ok": true, "detail": "Telnyx accepts the API key." },
    { "name": "connection", "ok": true, "detail": "The Call Control App is active and points at Yappr." },
    { "name": "outbound_voice_profile", "ok": true, "detail": "Calls may go to: IL." },
    { "name": "numbers", "ok": true, "detail": "2 number(s) are in this Telnyx account." }
  ],
  "telnyx": { "connections": ["…"], "outbound_voice_profiles": ["…"] },
  "numbers": [{ "id": "e2a4…", "number": "+972501234567", "verified": true }]
}
```

`ok` covers the key, the app and its outbound voice profile. The test also asks
Telnyx again whether each number is still in your account: a number it no longer
lists gets `ownership_verified_at: null` and cannot make calls until a later test
finds it again. Limit: 60 per workspace per day.

If Telnyx refuses the API key, the account pauses right away (`status: "paused"`,
`pause_reason: "key_rejected"`) and its numbers stop calling, exactly as a refused
call would pause it, so no lead spends an attempt on a key that no longer works.
Fix the key in Telnyx (or [rotate it](/api-reference/carrier-accounts/update)), then
[turn the account back on](/api-reference/carrier-accounts/reactivate).


## OpenAPI

````yaml POST /carrier-accounts/{id}/test
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:
  /carrier-accounts/{id}/test:
    parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
          format: uuid
    post:
      tags:
        - Carrier Accounts
      summary: Test carrier account
      description: >
        Checks the key, the app and its outbound voice profile with Telnyx, and

        re-checks that every number is still in your account. **Places no
        call.**

        A number Telnyx no longer lists stops being callable until a later test
        finds

        it again. If Telnyx refuses the API key, the account pauses right away

        (`pause_reason: key_rejected`) and its numbers stop calling, as a
        refused call

        would pause it; reactivate it once the key works. Requires

        `carrier_accounts:manage`. Limit: 60 per workspace per day.
      operationId: testCarrierAccount
      responses:
        '200':
          description: Test result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CarrierAccountTestResult'
        '403':
          $ref: '#/components/responses/CarrierAccountsNotEnabled'
        '404':
          description: '`CARRIER_ACCOUNT_NOT_FOUND` — not in this workspace.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: '`RATE_LIMITED`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: >-
            `TELNYX_UNAVAILABLE` — Telnyx did not answer. Nothing changed; try
            again.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CarrierAccountTestResult:
      type: object
      properties:
        ok:
          type: boolean
          description: >-
            True when the key, the app and the outbound voice profile all pass.
            Numbers are reported, not required.
        checks:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
                enum:
                  - api_key
                  - connection
                  - outbound_voice_profile
                  - numbers
              ok:
                type: boolean
              detail:
                type: string
        telnyx:
          type: object
          nullable: true
          description: What your key can see. `null` when Telnyx refused the key.
          properties:
            connections:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  active:
                    type: boolean
                  outbound_voice_profile_id:
                    type: string
                    nullable: true
            outbound_voice_profiles:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  enabled:
                    type: boolean
                  allowed_destinations:
                    type: array
                    items:
                      type: string
                  daily_spend_limit:
                    type: string
                    nullable: true
                  daily_spend_limit_enabled:
                    type: boolean
                  channel_limit:
                    type: integer
                    nullable: true
        numbers:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                format: uuid
              number:
                type: string
              verified:
                type: boolean
    Error:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
  responses:
    CarrierAccountsNotEnabled:
      description: >
        `CARRIER_ACCOUNTS_NOT_ENABLED` — Yappr has switched calling out through
        your own

        Telnyx account off for this workspace. It is available in every
        workspace, so this

        is only the emergency-off answer; contact Yappr support. Every
        carrier-accounts

        route answers this while it is off (check with

        [GET /carrier-accounts/status](/api-reference/carrier-accounts/status)).
        An API key

        without the route's scope gets a 403 of its own.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/Error'
              - type: object
                properties:
                  enabled:
                    type: boolean
                    example: false
          example:
            error: >-
              Calling out through your own Telnyx account is switched off for
              this workspace. Contact Yappr support.
            code: CARRIER_ACCOUNTS_NOT_ENABLED
            enabled: false
  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**.

````