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

# GetVoiceBrandedCallingAPI mirrors erdo_voice_branded_calling_get: the


> organization's US Enhanced Branded Calling, its inputs and each number's part. Read-only; never reaches Twilio.




## OpenAPI

````yaml /api/openapi.json get /v1/voice/branded-calling
openapi: 3.0.0
info:
  title: Erdo API
  description: >-
    Erdo's REST API: query and write datasets, run agents, manage threads,
    integrations, pages, evals, workstreams, experiments, and bounded outreach.
    Authenticate with a Bearer API key (erdo_api_...) or scoped token
    (erdo_token_...).
  version: '2026-10-22'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/voice/branded-calling:
    get:
      summary: |
        GetVoiceBrandedCallingAPI mirrors erdo_voice_branded_calling_get: the
      description: >
        organization's US Enhanced Branded Calling, its inputs and each number's
        part. Read-only; never reaches Twilio.
      operationId: GET:mcp.GetVoiceBrandedCallingAPI
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  approved_at:
                    format: date-time
                    type: string
                  default_display_name:
                    type: string
                  inputs:
                    $ref: '#/components/schemas/voice.BrandedCallingInputs'
                  inputs_digest:
                    description: |
                      exactly these.
                    title: >
                      InputsDigest identifies the inputs as they are now; an
                      approval is for
                    type: string
                  last_polled_at:
                    format: date-time
                    type: string
                  legal_name:
                    description: >
                      display name defaults to the legal name, trimmed to 35
                      characters.
                    title: >
                      LegalName and DefaultDisplayName come from the business
                      profile: the
                    type: string
                  loa:
                    $ref: '#/components/schemas/voice.BrandedCallingDocumentView'
                  logo_url:
                    type: string
                  missing_inputs:
                    description: >
                      MissingProfileFields what the business profile still
                      needs.
                    items:
                      type: string
                    title: >
                      MissingInputs is what the organization still has to supply
                      here;
                    type: array
                  missing_profile_fields:
                    items:
                      type: string
                    type: array
                  next_step:
                    type: string
                  not_registerable_reason:
                    type: string
                  numbers:
                    items:
                      $ref: '#/components/schemas/voice.BrandedCallingNumberView'
                    title: |
                      Numbers is every number the organization holds.
                    type: array
                  out_of_date:
                    type: boolean
                  price_per_call_usd:
                    title: >
                      PricePerCallUSD is what Twilio charges per call whose
                      brand is delivered.
                    type: string
                  profile_unavailable:
                    description: >
                      The digest is then left empty, since it would not describe
                      what a person approved, and filing is refused as retryable
                      rather than as a change.
                    title: >
                      ProfileUnavailable says the business profile could not be
                      read just now.
                    type: boolean
                  reason:
                    description: |
                      registration waits on.
                    title: >
                      Reason is Twilio's verdict, the last provider error, or
                      what the
                    type: string
                  registerable:
                    description: >
                      with the reason (no number Erdo manages, a sole
                      proprietor, outside the US).
                    title: >
                      Registerable is false when this organization can never
                      file one here,
                    type: boolean
                  registered_call_reason:
                    type: string
                  registered_display_name:
                    description: >
                      carries; OutOfDate says the inputs changed since it was
                      filed.
                    title: >
                      RegisteredDisplayName and RegisteredCallReason are what
                      the registration
                    type: string
                  requested_at:
                    format: date-time
                    type: string
                  review_status:
                    type: string
                  status:
                    description: |
                      approved, failed or not\_enabled.
                    title: >
                      Status is missing_inputs, unregistered (ready to request),
                      pending,
                    type: string
                  use_case_categories:
                    items:
                      type: string
                    type: array
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    voice.BrandedCallingInputs:
      properties:
        call_reason:
          title: >
            CallReason is the line under the name, e.g. "Your appointment
            request".
          type: string
        consent_description:
          title: |
            ConsentDescription says how the people called agreed to be called.
          type: string
        daily_call_volume:
          format: int64
          type: integer
        display_name:
          title: |
            DisplayName is shown on the phone. Defaults to the legal name.
          type: string
        employee_count:
          format: int64
          type: integer
        use_case_category:
          title: |
            UseCaseCategory is one of use_case_categories.
          type: string
        use_case_description:
          title: |
            UseCaseDescription says what the calls are for.
          type: string
      title: |
        BrandedCallingInputs are the text fields an organization supplies.
      type: object
    voice.BrandedCallingDocumentView:
      properties:
        filename:
          type: string
        uploaded_at:
          format: date-time
          type: string
      title: |
        BrandedCallingDocumentView is an uploaded document, without its bytes.
      type: object
    voice.BrandedCallingNumberView:
      properties:
        agent_name:
          type: string
        agent_ref:
          type: string
        agent_slug:
          type: string
        assign_error:
          type: string
        assignment:
          description: >
            in review), assigning (approved, this number not on it yet) or
            assigned.
          title: >
            Assignment is not_eligible, unregistered, pending (registration
            filed,
          type: string
        eligible:
          description: >
            the reason — most often that its SHAKEN/STIR attestation is not done
            yet.
          title: >
            Eligible is false while the number cannot be on the registration,
            with
          type: boolean
        not_eligible_reason:
          type: string
        phone_number:
          type: string
      title: |
        BrandedCallingNumberView is one number's part in the registration.
      type: object
  responses:
    APIError:
      content:
        application/json:
          schema:
            externalDocs:
              url: https://pkg.go.dev/encore.dev/beta/errs#Error
            properties:
              code:
                description: Error code
                example: not_found
                externalDocs:
                  url: https://pkg.go.dev/encore.dev/beta/errs#ErrCode
                type: string
              details:
                description: Error details
                type: object
              message:
                description: Error message
                type: string
            title: APIError
            type: object
      description: Error response
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).

````

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