> ## Documentation Index
> Fetch the complete documentation index at: https://onextel-09023014.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List channel accounts

> The provider accounts each channel dispatches through.

A channel account is the provider connection a channel actually sends through — the WhatsApp
number, the SMS route, the email sender. Templates reference them by `channelAccountId`, so this
endpoint is how you resolve that id into something readable, and how you check whether a channel
is live before you try to send on it.

<Warning>
  A disabled channel account fails the send at dispatch time with `channel_account_disabled` (409),
  even though the template still lists the channel. If a channel starts failing for every
  destination, check `status` here before looking anywhere else.
</Warning>

## Credentials

`credentialFields[]` describes the provider credentials the account is configured with. Fields
marked `secret: true` always come back with an empty `value` — the API never returns a
credential, and there is no parameter that makes it.

Use the `key` and `label` to render a settings view; change the values in the OneXtel portal.

## Paging

Page-numbered, the same as [List templates](/api-reference/verify/list-templates): pass `page`
and `pageSize`, read `total` and `totalPages`, and trust the echoed values, which are post-clamp.


## OpenAPI

````yaml GET /v1/channel-accounts
openapi: 3.1.0
info:
  title: Onextel Verify API
  version: 1.0.0
  description: >
    Generate, dispatch and verify one-time PINs across SMS, WhatsApp and email.


    Every request is authenticated with an API key created from the OneXtel
    portal's

    **Developers → API Keys** page, sent as a bearer token.


    Every error response carries the same shape — see

    [Verify Error Codes](/api-reference/verify/error-codes) for the full list:


    ```json

    { "error": { "code": "pin_expired", "message": "...", "details": {},
    "requestId": "req_..." } }

    ```
servers:
  - url: https://api.onexaura.com
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Pins
    description: Create, resend and verify one-time PINs.
  - name: Templates
    description: The templates a PIN can be sent under.
  - name: Channel Accounts
    description: The provider accounts a channel dispatches through.
paths:
  /v1/channel-accounts:
    get:
      tags:
        - Channel Accounts
      summary: List channel accounts
      description: >
        Page-numbered: pass `page` and `pageSize`, and read `total`/`totalPages`
        off the response to drive a pager. `page`/`pageSize` are echoed back
        post-clamp. Secret credential fields are always returned with an empty
        `value`.
      operationId: listChannelAccounts
      parameters:
        - name: channelType
          in: query
          schema:
            $ref: '#/components/schemas/ChannelType'
        - name: status
          in: query
          schema:
            type: string
            enum:
              - enabled
              - disabled
        - name: archived
          in: query
          schema:
            type: boolean
        - $ref: '#/components/parameters/Page'
        - $ref: '#/components/parameters/PageSize'
        - $ref: '#/components/parameters/SortBy'
        - $ref: '#/components/parameters/SortOrder'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/PageMeta'
                  - type: object
                    properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/ChannelAccount'
        '400':
          $ref: '#/components/responses/ValidationFailed'
        '401':
          $ref: '#/components/responses/Unauthenticated'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    ChannelType:
      type: string
      enum:
        - sms
        - whatsapp
        - email
    PageMeta:
      type: object
      properties:
        page:
          type: integer
          examples:
            - 1
        pageSize:
          type: integer
          examples:
            - 25
        total:
          type: integer
          examples:
            - 137
        totalPages:
          type: integer
          examples:
            - 6
    ChannelAccount:
      type: object
      properties:
        id:
          type: string
          examples:
            - ca_abc123
        name:
          type: string
        channelType:
          $ref: '#/components/schemas/ChannelType'
        status:
          type: string
          enum:
            - enabled
            - disabled
        archivedAt:
          type:
            - string
            - 'null'
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        createdBy:
          type: string
        updatedBy:
          type: string
        credentialFields:
          type: array
          items:
            $ref: '#/components/schemas/CredentialField'
    CredentialField:
      type: object
      properties:
        key:
          type: string
        label:
          type: string
        secret:
          type: boolean
          description: Secret fields are always returned with an empty `value`.
        value:
          type: string
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              examples:
                - pin_expired
            message:
              type: string
            requestId:
              type: string
              examples:
                - req_9f3a2c
            details:
              type: object
              additionalProperties: true
  parameters:
    Page:
      name: page
      in: query
      description: 1-based page number. Out-of-range or unparseable values read as page 1.
      schema:
        type: integer
        default: 1
    PageSize:
      name: pageSize
      in: query
      description: Rows per page. Defaults to 25; larger values clamp to 100.
      schema:
        type: integer
        default: 25
        maximum: 100
    SortBy:
      name: sortBy
      in: query
      description: >
        Column to sort by. Defaults to `createdAt`. Enum-typed columns sort by
        declaration order, not alphabetically.
      schema:
        type: string
        default: createdAt
    SortOrder:
      name: sortOrder
      in: query
      description: Sort direction. Defaults to `desc`.
      schema:
        type: string
        enum:
          - asc
          - desc
        default: desc
  responses:
    ValidationFailed:
      description: '`validation_failed`'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthenticated:
      description: '`unauthenticated`'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: '`forbidden` / `workspace_disabled`'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key from the OneXtel portal, **Developers → API Keys**, sent as
        `Authorization: Bearer <key>`.

````

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