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

# GetVoiceCallerNameAPI mirrors erdo_voice_caller_name_get: the organization's


> caller name, its registration, and what each number shows when it calls.




## OpenAPI

````yaml /api/openapi.json get /v1/voice/caller-name
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-09-24'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/voice/caller-name:
    get:
      summary: >
        GetVoiceCallerNameAPI mirrors erdo_voice_caller_name_get: the
        organization's
      description: |
        caller name, its registration, and what each number shows when it calls.
      operationId: GET:mcp.GetVoiceCallerNameAPI
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  approved_at:
                    format: date-time
                    type: string
                  caller_name:
                    description: |
                      empty until somebody declares one.
                    title: >
                      CallerName is the name declared on the business profile,
                      upper case, or
                    type: string
                  caller_name_out_of_date:
                    description: >
                      was registered: the carriers still show RegisteredName.
                      Re-registering replaces it for every number, and re-opens
                      review.
                    title: >
                      OutOfDate says the business profile's caller name has
                      changed since it
                    type: boolean
                  last_polled_at:
                    format: date-time
                    type: string
                  missing_profile_fields:
                    description: >
                      caller name: identity, representative, address and
                      caller\_name.
                    items:
                      type: string
                    title: >
                      MissingProfileFields is what the business profile still
                      needs for a
                    type: array
                  next_step:
                    title: |
                      NextStep is what a pending registration is waiting on.
                    type: string
                  not_registerable_reason:
                    type: string
                  numbers:
                    description: >
                      registration and the name a carrier lookup last showed for
                      it.
                    items:
                      $ref: '#/components/schemas/voice.CallerNameNumberView'
                    title: >
                      Numbers is every number the organization holds, with its
                      part in the
                    type: array
                  reason:
                    description: >
                      the registration could not proceed — whichever a person
                      has to act on.
                    title: >
                      Reason is Twilio's verdict on a rejection, the last
                      provider error, or why
                    type: string
                  registerable:
                    description: >
                      attach — every one is on Erdo's own account, the org's own
                      Twilio account, toll-free, or outside the US and Canada.
                    title: >
                      Registerable is false when this organization has no number
                      the flow can
                    type: boolean
                  registered_name:
                    description: |
                      registration has submitted one.
                    title: >
                      RegisteredName is the name the carriers were given, empty
                      until a
                    type: string
                  requested_at:
                    format: date-time
                    type: string
                  review_status:
                    title: >
                      ReviewStatus is Twilio's own word for the trust product's
                      review.
                    type: string
                  status:
                    title: |
                      Status is unregistered, pending, approved or failed.
                    type: string
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    voice.CallerNameNumberView:
      properties:
        agent_name:
          type: string
        agent_ref:
          description: |
            value the SMS registration list reports as agent\_ref.
          title: >
            AgentRef is the managed voice agent that answers on this number —
            the same
          type: string
        agent_slug:
          type: string
        attach_error:
          type: string
        attachment:
          description: >
            registered), pending (in review), attached, or attaching (approved,
            this number not attached yet).
          title: |
            Attachment is not_registerable, unregistered (the org's name is not
          type: string
        last_check_failed:
          type: boolean
        last_checked_at:
          description: >
            LastCheckFailed says it failed (Observed then still shows the last
            successful answer). A manual check within a minute of it is refused.
          format: date-time
          title: |
            LastCheckedAt is the latest lookup attempt, successful or not, and
          type: string
        not_registerable_reason:
          type: string
        observed:
          description: |
            looked up yet. ObservedName is the name the lookup returned.
          title: |
            Observed is none, ours, other, or empty when the number has not been
          type: string
        observed_at:
          format: date-time
          type: string
        observed_name:
          type: string
        observed_type:
          type: string
        phone_number:
          type: string
        registerable:
          description: |
            reason in words a person should see.
          title: >
            Registerable is false for a number this flow can never attach, with
            the
          type: boolean
      title: |
        CallerNameNumberView is one number's caller-name state.
      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_...).

````