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

# Pesquisa de pessoas

> Encontre pessoas por cargo, senioridade, localização ou empregador. Você também pode enriquecer o perfil de uma pessoa conhecida ou encontrar seu e-mail profissional. Escolha uma ação e preencha abaixo os campos obrigatórios.

Cada ação retorna `output` normalizado. A saída nativa do Provedor não é repetida ali; ela permanece no Run e pode ser lida com [Get Run](https://glasser.ai/docs/pt/api-reference/runs/get.md). `search` retorna `total_matches` e `output.items[]`, uma linha por pessoa. `enrich` e `find_email` retornam uma pessoa com os mesmos campos no nível superior. Um valor que o Provedor selecionado não informa é `null`; o Glasser não o preenche.

Leia `result_status` separadamente de `status`: `success`, `no_result`, `error` ou `pending`. Uma resposta vazia, mas válida, é `no_result` e mantém o formato da ação: todos os campos são `null`, ou `items` é `[]`. `find_email` sem um e-mail é `no_result`. `charge_usd` totaliza o `runs` desta resposta e permanece nulo até que todos os Runs sejam concluídos. Com `provider: auto`, o fallback pode criar vários Runs, cada um listado em `runs[]` com sua própria cobrança. Consulte [Seleção de Provedor e cobranças](https://glasser.ai/docs/pt/api-reference/solutions/overview.md#how-provider-selection-works).

## Saída por ação

Todos os campos estão presentes em todas as linhas; um valor que o Provedor não informa é `null`. Os campos seguem as [convenções de campos](https://glasser.ai/docs/pt/api-reference/solutions/overview.md#field-conventions).

| `action` | `output` |
| - | - |
| `search` | `total_matches`, `items[]`: uma pessoa por linha |
| `enrich` | uma pessoa |
| `find_email` | uma pessoa |

Uma pessoa tem estes campos: name, first\_name, last\_name, job\_title, seniority, department, headline, linkedin\_url, city, region, country, country\_code, email, email\_status, email\_catch\_all, email\_source, phone, company\_name, company\_domain, company\_linkedin\_url, apollo\_match\_confidence, pdl\_likelihood, hunter\_email\_score, zoominfo\_accuracy\_score.

* Nomes, cargos e rótulos são apresentados conforme o Provedor os informa. Os nomes do PDL são escritos em minúsculas. `name` é `null` quando o Provedor fornece apenas o nome e o sobrenome; o Glasser não os combina. A busca do Apollo oculta o sobrenome, portanto `last_name` é `null`.
* `seniority` e `department` são rótulos do próprio vocabulário do Provedor que responde (por exemplo, Apollo `founder`, PDL `cxo`, LeadMagic `C-Team`). Eles não são valores de `seniorities` da solicitação e não são comparáveis entre Provedores.
* `email` é o endereço que o Provedor fornece como e-mail profissional. O PDL o preenche apenas a partir de `work_email`; os outros endereços permanecem no Run. As linhas de busca do Apollo, ZoomInfo e LeadMagic não têm e-mail.
* `email_status` é o próprio rótulo de verificação do Provedor (`verified`, `VERIFIED`, `valid`). Os Provedores verificam de maneiras diferentes, portanto não compare os rótulos. Leia-os junto com `email_catch_all` (o domínio aceita todos os endereços, portanto uma verificação da caixa de entrada não pode confirmar este) e `email_source` (Hunter: `found` na web ou `generated` a partir do padrão de endereços do domínio). O Hunter cobra por um endereço gerado.
* `total_matches` contabiliza as correspondências em todo o conjunto de dados do Provedor, não apenas nesta página. Ele é `null` para o LeadMagic, que fornece apenas a contagem da página.
* As pontuações do modelo próprio de um Provedor mantêm o nome dele e são `null` para os demais: `apollo_match_confidence` (alta, média, baixa, nenhuma), `pdl_likelihood` (1–10), `hunter_email_score` (0–100), `zoominfo_accuracy_score` (0–100).

```json
{
  "action": "find_email",
  "provider": "hunter",
  "status": "COMPLETED",
  "result_status": "success",
  "output": {
    "name": null, "first_name": "Avery", "last_name": "Example", "job_title": null,
    "email": "example@stripe.com", "email_status": "valid", "email_catch_all": true, "email_source": "generated",
    "company_name": "Stripe", "company_domain": "stripe.com", "hunter_email_score": 80, "…": "other fields null"
  },
  "charge_usd": "0.0245",
  "runs": [{ "provider": "hunter", "status": "COMPLETED", "charge_usd": "0.0245" }],
  "result_url": "/v1/solutions/gtm/people_search/result?token=…"
}
```

## Filtros

* O PDL corresponde a `job_titles` exatamente como fornecido, portanto "CTO" não corresponde a "Co-founder & CTO". Ele corresponde a `locations` como substring, portanto "london" também corresponde a "new london, connecticut".
* O ZoomInfo não tem nível `founder`, `owner`, `partner`, `head`, `entry` ou `intern`; portanto, com `auto`, essas solicitações ignoram o ZoomInfo. O `senior` do ZoomInfo é todo o nível "Non Manager", que também inclui colaboradores individuais juniores.
* A busca do Hunter lista apenas os endereços pessoais em `company_domain`, não caixas de e-mail de função, como info\@. O enriquecimento do Prospeo retorna apenas pessoas para as quais mantém um e-mail profissional verificado. find\_email via Apollo também aceita `linkedin_url` por conta própria; uma correspondência do Apollo sem um e-mail real é considerada uma falha e não é cobrada.


## OpenAPI

````yaml /openapi.pt.json post /v1/solutions/gtm/people_search
openapi: 3.1.0
info:
  title: Glasser
  version: 0.0.1
  description: >-
    Uma chave, sem contrato, pagamento por chamada, para todas as APIs pagas
    adquiridas no atacado. Cada resposta contém x-request-id; cada corpo de erro
    contém o mesmo envelope.
servers:
  - url: https://api.glasser.ai
security: []
tags:
  - name: Solutions
  - name: Endpoints
  - name: Runs
  - name: Balance
paths:
  /v1/solutions/gtm/people_search:
    post:
      tags:
        - Solutions
      summary: Pesquisa de pessoas
      description: >-
        Encontre pessoas por cargo, senioridade, localização ou empregador. Você
        também pode enriquecer o perfil de uma pessoa conhecida, encontrar seu
        e-mail corporativo, verificar um endereço de e-mail de forma
        independente, ler perfis de funcionários e seus cargos reais em uma
        empresa ou encontrar um número de celular a partir de um perfil do
        LinkedIn, e-mail ou nome e empregador, quando houver suporte. Escolha
        uma ação e forneça abaixo os campos obrigatórios.


        Toda ação retorna uma saída normalizada com o id, o provedor de dados e
        o status do ciclo de vida do último Run: search e list_employees
        fornecem total_matches e output.items[] com pessoas; enrich, find_email
        e find_phone fornecem uma pessoa com os mesmos campos no nível superior;
        verify_email fornece um veredito de caixa de correio com status e
        sinalizadores nativos do provedor de dados. Vereditos inválidos,
        catch-all, descartáveis e desconhecidos são resultados válidos de
        verificação, não casos sem resultado. A saída nativa do provedor de
        dados não é repetida em output; ela permanece no Run e pode ser lida com
        GET /v1/runs/:id. Um valor que o provedor de dados selecionado não
        informa é null.


        Leia result_status separadamente de status: success, no_result, error ou
        pending. charge_usd é a cobrança total dos Runs desta resposta e é null
        até que todos os Runs listados sejam concluídos; runs[] contém a
        cobrança de cada Run. provider=auto seleciona o primeiro provedor de
        dados elegível e tenta o próximo somente em PROVIDER_ERROR, TIMED_OUT ou
        503 na admissão; um provedor de dados nomeado nunca usa fallback.
        Reutilize a mesma Idempotency-Key e os mesmos parâmetros de execução
        para uma nova tentativa intencional.
      operationId: gtm-people-search
      parameters:
        - name: idempotency-key
          in: header
          schema:
            type: string
            minLength: 1
            description: >-
              Gere um valor exclusivo para cada execução pretendida
              (recomenda-se um UUID). Tente novamente com a mesma chave e os
              mesmos parâmetros de execução para recuperar o Run original sem
              uma segunda cobrança. Alterar os parâmetros de execução com a
              mesma chave retorna 409; alterar task_id ou metadata não atualiza
              o Run original.
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  anyOf:
                    - type: string
                      enum:
                        - search
                        - list_employees
                        - enrich
                        - find_email
                        - verify_email
                        - find_phone
                      description: >-
                        Padrão: search.


                        - search: forneça pelo menos um de job_titles,
                        seniorities, locations, company_domain ou keywords. As
                        linhas do Apollo e do ZoomInfo não contêm e-mail nem
                        telefone; as linhas do PDL são registros completos; o
                        Hunter lista os endereços pessoais em company_domain.

                        - list_employees: forneça company_domain. Leia até 100
                        perfis de funcionários e seus cargos reais do LeadMagic;
                        esta é uma amostra, não uma lista completa de
                        funcionários da empresa. Não se aplicam filtros de cargo
                        ou localização.

                        - enrich: forneça linkedin_url, email ou full_name junto
                        com company_domain. O Prospeo retorna apenas pessoas
                        para as quais possui um e-mail corporativo verificado.

                        - find_email: forneça full_name e company_domain. O
                        Apollo também aceita apenas linkedin_url; uma
                        correspondência do Apollo sem um e-mail real é
                        considerada um caso sem resultado e não é cobrada.

                        - verify_email: forneça email. Vereditos inválidos,
                        catch-all, descartáveis e desconhecidos são respostas
                        bem-sucedidas, não resultados ausentes. Use completed_at
                        do Run final como horário da verificação.

                        - find_phone: o LeadMagic exige linkedin_url; o Prospeo
                        também aceita email ou full_name junto com
                        company_domain. Encontra um número de celular; não envia
                        mensagens nem faz chamadas.


                        Os filtros nunca são descartados silenciosamente. Com
                        auto, os provedores de dados que não conseguem
                        aplicá-los são ignorados; um provedor de dados nomeado
                        que não consegue aplicá-los retorna 400.
                    - type: 'null'
                provider:
                  anyOf:
                    - type: string
                      enum:
                        - auto
                        - apollo
                        - pdl
                        - leadmagic
                        - zoominfo
                        - hunter
                        - prospeo
                      description: >-
                        Padrão auto: selecione o primeiro provedor de dados
                        elegível na ordem de preferência da Glasser. Um provedor
                        de dados nomeado deve aceitar a solicitação e ser
                        permitido pela sua Key; ele não usa fallback para outro
                        provedor de dados. Os valores disponíveis estão listados
                        abaixo.
                    - type: 'null'
                job_titles:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 200
                      minItems: 1
                      maxItems: 20
                      description: >-
                        Cargos a serem correspondidos. O PDL corresponde a cada
                        cargo exatamente como fornecido; portanto, 'CTO' não
                        corresponde a 'Co-founder & CTO'.
                    - type: 'null'
                seniorities:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        enum:
                          - owner
                          - founder
                          - c_suite
                          - partner
                          - vp
                          - head
                          - director
                          - manager
                          - senior
                          - entry
                          - intern
                      minItems: 1
                      maxItems: 11
                      description: >-
                        Níveis de senioridade: um ou mais entre owner, founder,
                        c_suite, partner, vp, head, director, manager, senior,
                        entry e intern. Um provedor de dados sem um nível
                        correspondente retorna 400 quando nomeado e é ignorado
                        com auto. O ZoomInfo não tem os níveis founder, owner,
                        partner, head, entry ou intern; seu nível senior
                        corresponde a toda a categoria Non Manager, que também
                        inclui colaboradores individuais juniores.
                    - type: 'null'
                locations:
                  anyOf:
                    - type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 200
                      minItems: 1
                      maxItems: 20
                      description: >-
                        Localizações em texto livre. O PDL corresponde a cada
                        uma como uma substring do nome da localização da pessoa;
                        portanto, 'london' também corresponde a 'new london,
                        connecticut'.
                    - type: 'null'
                company_domain:
                  anyOf:
                    - type: string
                      minLength: 3
                      maxLength: 253
                      description: >-
                        Um domínio de site, como stripe.com. Uma URL completa é
                        aceita e reduzida ao host.
                    - type: 'null'
                keywords:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 300
                    - type: 'null'
                full_name:
                  anyOf:
                    - type: string
                      minLength: 1
                      maxLength: 200
                    - type: 'null'
                email:
                  anyOf:
                    - type: string
                      maxLength: 320
                      pattern: ^[^\s@]+@[^\s@]+\.[^\s@]+$
                      description: Um endereço de e-mail.
                    - type: 'null'
                linkedin_url:
                  anyOf:
                    - type: string
                      maxLength: 2048
                      pattern: linkedin\.com\/in\/[^/?#\s]+
                      description: >-
                        A URL do perfil da pessoa no LinkedIn,
                        `linkedin.com/in/<slug>`. Não é uma página de empresa.
                    - type: 'null'
                limit:
                  anyOf:
                    - type: integer
                      minimum: 1
                      maximum: 100
                      description: >-
                        Linhas a retornar. Mantenha esse valor pequeno: a regra
                        de cobrança do endpoint roteado pode consultá-lo. Cada
                        capacidade impõe um limite adicional.
                    - type: 'null'
                task_id:
                  anyOf:
                    - type: string
                      description: >-
                        Agrupe Runs relacionados, incluindo o fallback
                        automático, em um único Task. Reutilize uma string
                        estável e filtre a lista de Runs por task para
                        recuperá-los.
                    - type: 'null'
                metadata:
                  anyOf:
                    - anyOf:
                        - type: object
                          additionalProperties:
                            type: string
                            minLength: 1
                            maxLength: 500
                          maxProperties: 20
                          propertyNames:
                            type: string
                            pattern: ^[a-z][a-z0-9_]{0,39}$
                        - {}
                      description: >-
                        Campos opcionais de rastreamento, retornados no Run e
                        disponíveis como filtros. Eles nunca são enviados ao
                        provedor de dados nem afetam o roteamento, o Price ou a
                        idempotência.


                        - Até 20 chaves: letras minúsculas, dígitos e
                        sublinhados; comece com uma letra; no máximo 40
                        caracteres.

                        - Valores: strings de 1–500 caracteres.

                        - user_id: o ID opaco do seu usuário final, nunca o
                        endereço de e-mail ou o nome.


                        Entradas inválidas são descartadas por inteiro, não
                        truncadas. A solicitação continua, e o Run retorna os
                        campos que foram armazenados.
                    - type: 'null'
              additionalProperties: false
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/PeopleSearchResult'
        '202':
          description: Success
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/PeopleSearchResult'
        '400':
          description: ValidationFailed | IdempotencyKeyRequired
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ValidationFailedEncoded'
                  - $ref: '#/components/schemas/IdempotencyKeyRequiredEncoded'
                  - $ref: '#/components/schemas/ValidationFailedEncoded'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedEncoded'
        '402':
          description: InsufficientBalance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InsufficientBalanceEncoded'
        '403':
          description: EndpointNotPermitted | Forbidden
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/EndpointNotPermittedEncoded'
                  - $ref: '#/components/schemas/ForbiddenEncoded'
        '409':
          description: IdempotencyConflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdempotencyConflictEncoded'
        '429':
          description: RateLimited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitedEncoded'
        '503':
          description: ServiceUnavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailableEncoded'
      security:
        - bearer: []
components:
  schemas:
    PeopleSearchResult:
      type: object
      properties:
        id:
          type: string
        run_url:
          type: string
          description: Abra este Run no console. Requer associação ao Workspace.
        provider:
          type: string
          pattern: ^[a-z0-9][a-z0-9-]*$
        endpoint:
          type: string
          pattern: ^\/.+$
        endpoint_version:
          type: integer
          exclusiveMinimum: 0
        status:
          type: string
          enum:
            - QUEUED
            - RUNNING
            - COMPLETED
            - FAILED
            - STOPPED
          description: >-
            QUEUED ou RUNNING: ainda em andamento. COMPLETED: uma resposta do
            provedor de dados está disponível, incluindo respostas não 2xx.
            FAILED: consulte `failure`. STOPPED: interrompido antes do envio.
            Leia charge_usd separadamente de status.
        failure:
          anyOf:
            - type: object
              properties:
                kind:
                  type: string
                  enum:
                    - TIMED_OUT
                    - INTERNAL
                message:
                  type: string
              required:
                - kind
                - message
              additionalProperties: false
            - type: 'null'
          description: Motivo da falha do Run. Não nulo somente quando status é FAILED.
        input:
          type: object
        output:
          anyOf:
            - anyOf:
                - type: object
                  properties:
                    total_matches:
                      anyOf:
                        - anyOf:
                            - type: number
                            - type: string
                              enum:
                                - Infinity
                                - '-Infinity'
                                - NaN
                        - type: 'null'
                      description: >-
                        Pessoas que correspondem aos filtros em todo o conjunto
                        de dados do provedor de dados, não apenas nesta página.
                        Nulo quando o provedor de dados fornece somente a
                        contagem da página (LeadMagic).
                    items:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Nome completo exatamente como informado pelo
                              provedor de dados (PDL usa letras minúsculas).
                              Nulo quando o provedor de dados fornece apenas
                              nome e sobrenome; nunca concatenado.
                          first_name:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Nome conforme informado pelo provedor de dados.
                          last_name:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Sobrenome conforme informado pelo provedor de
                              dados. Nulo quando o provedor de dados o mascara
                              (pesquisa do Apollo).
                          job_title:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Cargo atual conforme informado pelo provedor de
                              dados.
                          seniority:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Rótulo de senioridade no vocabulário próprio do
                              provedor de dados que respondeu (Apollo founder,
                              PDL cxo, LeadMagic C-Team, Hunter executive). Não
                              é o vocabulário de seniorities da solicitação e
                              não é comparável entre provedores de dados;
                              verifique provider. Quando o provedor de dados
                              lista vários, o primeiro.
                          department:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Departamento ou função profissional no vocabulário
                              próprio do provedor de dados que respondeu. Quando
                              o provedor de dados lista vários, o primeiro.
                          headline:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Título do perfil (a linha de cargo do LinkedIn).
                          linkedin_url:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              URL do perfil no LinkedIn. https:// é adicionado
                              quando o provedor de dados omite o esquema.
                          city:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Cidade da localização da pessoa.
                          region:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: Estado ou região da localização da pessoa.
                          country:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              País da localização da pessoa como nome de
                              exibição em inglês (nunca um código).
                          country_code:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              País da localização da pessoa como código ISO
                              3166-1 alpha-2.
                          email:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              E-mail profissional conforme informado pelo
                              provedor de dados. PDL: somente work_email; os
                              demais endereços permanecem no Run.
                          email_status:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Rótulo próprio de verificação de e-mail do
                              provedor de dados que respondeu (Apollo verified,
                              Prospeo VERIFIED, Hunter e LeadMagic valid). Os
                              provedores de dados verificam de maneiras
                              diferentes, portanto os rótulos não são
                              comparáveis; leia-o com email_catch_all e
                              email_source.
                          email_catch_all:
                            anyOf:
                              - type: boolean
                              - type: 'null'
                            description: >-
                              Verdadeiro quando o provedor de dados informa que
                              o domínio do e-mail aceita todos os endereços,
                              portanto uma verificação de caixa de entrada não
                              pode confirmar este endereço (Hunter accept_all,
                              Apollo email_domain_catchall).
                          email_source:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Como o Hunter obteve o e-mail: found (encontrado
                              na web) ou generated (gerado a partir do padrão de
                              endereços do domínio). Nulo para outros provedores
                              de dados.
                          phone:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Número de telefone conforme informado pelo
                              provedor de dados. Números mascarados são
                              omitidos.
                          company_name:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Empregador atual conforme informado pelo provedor
                              de dados.
                          company_domain:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Domínio do empregador atual (hostname sem www. ou
                              porta).
                          company_linkedin_url:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              URL da página da empresa do empregador atual no
                              LinkedIn.
                          apollo_match_confidence:
                            anyOf:
                              - type: string
                              - type: 'null'
                            description: >-
                              Confiança do Apollo de que o registro corresponde
                              à entrada: high, medium, low ou none. Nulo para
                              outros provedores de dados.
                          pdl_likelihood:
                            anyOf:
                              - anyOf:
                                  - type: number
                                  - type: string
                                    enum:
                                      - Infinity
                                      - '-Infinity'
                                      - NaN
                              - type: 'null'
                            description: >-
                              Pontuação de 1 a 10 da People Data Labs sobre o
                              quanto o registro corresponde à entrada. Nulo para
                              outros provedores de dados.
                          hunter_email_score:
                            anyOf:
                              - anyOf:
                                  - type: number
                                  - type: string
                                    enum:
                                      - Infinity
                                      - '-Infinity'
                                      - NaN
                              - type: 'null'
                            description: >-
                              Confiança de 0 a 100 do Hunter no e-mail
                              (pontuação do email-finder, confiança da pesquisa
                              de domínio). Nulo para outros provedores de dados.
                          zoominfo_accuracy_score:
                            anyOf:
                              - anyOf:
                                  - type: number
                                  - type: string
                                    enum:
                                      - Infinity
                                      - '-Infinity'
                                      - NaN
                              - type: 'null'
                            description: >-
                              Pontuação de 0 a 100 da ZoomInfo sobre a precisão
                              do contato. Nulo para outros provedores de dados.
                        required:
                          - name
                          - first_name
                          - last_name
                          - job_title
                          - seniority
                          - department
                          - headline
                          - linkedin_url
                          - city
                          - region
                          - country
                          - country_code
                          - email
                          - email_status
                          - email_catch_all
                          - email_source
                          - phone
                          - company_name
                          - company_domain
                          - company_linkedin_url
                          - apollo_match_confidence
                          - pdl_likelihood
                          - hunter_email_score
                          - zoominfo_accuracy_score
                        additionalProperties: false
                  required:
                    - total_matches
                    - items
                  additionalProperties: false
                - type: object
                  properties:
                    email:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: Endereço de e-mail retornado pelo provedor de dados.
                    email_status:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Veredito próprio do provedor de dados sobre a capacidade
                        de entrega. Endereços com status Unknown e catch-all não
                        são endereços verificados como entregáveis.
                    email_catch_all:
                      anyOf:
                        - type: boolean
                        - type: 'null'
                      description: >-
                        Indica se o provedor de dados informa que o domínio é
                        catch-all.
                    email_disposable:
                      anyOf:
                        - type: boolean
                        - type: 'null'
                      description: >-
                        Indica se o provedor de dados informa que o endereço é
                        descartável.
                    email_webmail:
                      anyOf:
                        - type: boolean
                        - type: 'null'
                      description: >-
                        Indica se o provedor de dados informa que o endereço é
                        de um serviço gratuito de webmail.
                    hunter_email_score:
                      anyOf:
                        - anyOf:
                            - type: number
                            - type: string
                              enum:
                                - Infinity
                                - '-Infinity'
                                - NaN
                        - type: 'null'
                      description: >-
                        Pontuação própria de confiança de 0 a 100 do Hunter;
                        nulo para outros provedores de dados.
                  required:
                    - email
                    - email_status
                    - email_catch_all
                    - email_disposable
                    - email_webmail
                    - hunter_email_score
                  additionalProperties: false
                - type: object
                  properties:
                    name:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Nome completo exatamente como informado pelo provedor de
                        dados (PDL usa letras minúsculas). Nulo quando o
                        provedor de dados fornece apenas nome e sobrenome; nunca
                        concatenado.
                    first_name:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: Nome conforme informado pelo provedor de dados.
                    last_name:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Sobrenome conforme informado pelo provedor de dados.
                        Nulo quando o provedor de dados o mascara (pesquisa do
                        Apollo).
                    job_title:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: Cargo atual conforme informado pelo provedor de dados.
                    seniority:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Rótulo de senioridade no vocabulário próprio do provedor
                        de dados que respondeu (Apollo founder, PDL cxo,
                        LeadMagic C-Team, Hunter executive). Não é o vocabulário
                        de seniorities da solicitação e não é comparável entre
                        provedores de dados; verifique provider. Quando o
                        provedor de dados lista vários, o primeiro.
                    department:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Departamento ou função profissional no vocabulário
                        próprio do provedor de dados que respondeu. Quando o
                        provedor de dados lista vários, o primeiro.
                    headline:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: Título do perfil (a linha de cargo do LinkedIn).
                    linkedin_url:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        URL do perfil no LinkedIn. https:// é adicionado quando
                        o provedor de dados omite o esquema.
                    city:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: Cidade da localização da pessoa.
                    region:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: Estado ou região da localização da pessoa.
                    country:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        País da localização da pessoa como nome de exibição em
                        inglês (nunca um código).
                    country_code:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        País da localização da pessoa como código ISO 3166-1
                        alpha-2.
                    email:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        E-mail profissional conforme informado pelo provedor de
                        dados. PDL: somente work_email; os demais endereços
                        permanecem no Run.
                    email_status:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Rótulo próprio de verificação de e-mail do provedor de
                        dados que respondeu (Apollo verified, Prospeo VERIFIED,
                        Hunter e LeadMagic valid). Os provedores de dados
                        verificam de maneiras diferentes, portanto os rótulos
                        não são comparáveis; leia-o com email_catch_all e
                        email_source.
                    email_catch_all:
                      anyOf:
                        - type: boolean
                        - type: 'null'
                      description: >-
                        Verdadeiro quando o provedor de dados informa que o
                        domínio do e-mail aceita todos os endereços, portanto
                        uma verificação de caixa de entrada não pode confirmar
                        este endereço (Hunter accept_all, Apollo
                        email_domain_catchall).
                    email_source:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Como o Hunter obteve o e-mail: found (encontrado na web)
                        ou generated (gerado a partir do padrão de endereços do
                        domínio). Nulo para outros provedores de dados.
                    phone:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Número de telefone conforme informado pelo provedor de
                        dados. Números mascarados são omitidos.
                    company_name:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Empregador atual conforme informado pelo provedor de
                        dados.
                    company_domain:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Domínio do empregador atual (hostname sem www. ou
                        porta).
                    company_linkedin_url:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        URL da página da empresa do empregador atual no
                        LinkedIn.
                    apollo_match_confidence:
                      anyOf:
                        - type: string
                        - type: 'null'
                      description: >-
                        Confiança do Apollo de que o registro corresponde à
                        entrada: high, medium, low ou none. Nulo para outros
                        provedores de dados.
                    pdl_likelihood:
                      anyOf:
                        - anyOf:
                            - type: number
                            - type: string
                              enum:
                                - Infinity
                                - '-Infinity'
                                - NaN
                        - type: 'null'
                      description: >-
                        Pontuação de 1 a 10 da People Data Labs sobre o quanto o
                        registro corresponde à entrada. Nulo para outros
                        provedores de dados.
                    hunter_email_score:
                      anyOf:
                        - anyOf:
                            - type: number
                            - type: string
                              enum:
                                - Infinity
                                - '-Infinity'
                                - NaN
                        - type: 'null'
                      description: >-
                        Grau de confiança de 0 a 100 do Hunter no e-mail
                        (pontuação do email-finder, confiança na pesquisa de
                        domínio). Nulo para outros provedores de dados.
                    zoominfo_accuracy_score:
                      anyOf:
                        - anyOf:
                            - type: number
                            - type: string
                              enum:
                                - Infinity
                                - '-Infinity'
                                - NaN
                        - type: 'null'
                      description: >-
                        Pontuação de precisão de contato de 0 a 100 do ZoomInfo.
                        Nulo para outros provedores de dados.
                  required:
                    - name
                    - first_name
                    - last_name
                    - job_title
                    - seniority
                    - department
                    - headline
                    - linkedin_url
                    - city
                    - region
                    - country
                    - country_code
                    - email
                    - email_status
                    - email_catch_all
                    - email_source
                    - phone
                    - company_name
                    - company_domain
                    - company_linkedin_url
                    - apollo_match_confidence
                    - pdl_likelihood
                    - hunter_email_score
                    - zoominfo_accuracy_score
                  additionalProperties: false
            - type: 'null'
          description: >-
            Campos normalizados por ação; enrich e find_email retornam uma
            pessoa com os mesmos campos de uma linha de pesquisa. A saída nativa
            do provedor de dados não é repetida aqui; ela permanece no Run (GET
            /v1/runs/:id). Os valores que um provedor de dados não informar
            serão nulos; uma resposta vazia tem o formato da ação com todos os
            campos nulos ou items: [], com result_status no_result. Nomes,
            cargos e rótulos são apresentados como informados pelo provedor de
            dados. Uma pontuação do próprio modelo de um provedor de dados
            recebe o nome desse provedor (pdl_likelihood) e é nula para os
            demais.


            - search: total_matches, items[]: name, first_name, last_name,
            job_title, seniority, department, headline, linkedin_url, city,
            region, country, country_code, email, email_status, email_catch_all,
            email_source, phone, company_name, company_domain,
            company_linkedin_url, apollo_match_confidence, pdl_likelihood,
            hunter_email_score, zoominfo_accuracy_score

            - list_employees: total_matches, items[]: name, first_name,
            last_name, job_title, seniority, department, headline, linkedin_url,
            city, region, country, country_code, email, email_status,
            email_catch_all, email_source, phone, company_name, company_domain,
            company_linkedin_url, apollo_match_confidence, pdl_likelihood,
            hunter_email_score, zoominfo_accuracy_score

            - enrich: name, first_name, last_name, job_title, seniority,
            department, headline, linkedin_url, city, region, country,
            country_code, email, email_status, email_catch_all, email_source,
            phone, company_name, company_domain, company_linkedin_url,
            apollo_match_confidence, pdl_likelihood, hunter_email_score,
            zoominfo_accuracy_score

            - find_email: name, first_name, last_name, job_title, seniority,
            department, headline, linkedin_url, city, region, country,
            country_code, email, email_status, email_catch_all, email_source,
            phone, company_name, company_domain, company_linkedin_url,
            apollo_match_confidence, pdl_likelihood, hunter_email_score,
            zoominfo_accuracy_score

            - find_phone: name, first_name, last_name, job_title, seniority,
            department, headline, linkedin_url, city, region, country,
            country_code, email, email_status, email_catch_all, email_source,
            phone, company_name, company_domain, company_linkedin_url,
            apollo_match_confidence, pdl_likelihood, hunter_email_score,
            zoominfo_accuracy_score

            - verify_email: email, email_status, email_catch_all,
            email_disposable, email_webmail, hunter_email_score
        provider_response:
          anyOf:
            - type: object
              properties:
                http_status:
                  type: integer
                  minimum: 100
                  maximum: 599
                  description: >-
                    Status HTTP retornado pelo provedor de dados. Verifique-o
                    mesmo quando o Run estiver COMPLETED.
                error:
                  anyOf:
                    - {}
                    - type: 'null'
              required:
                - http_status
              additionalProperties: false
            - type: 'null'
          description: >-
            Não nulo somente quando o status for COMPLETED.


            - Para respostas 2xx, output contém o JSON nativo do provedor de
            dados (qualquer formato) ou null para um corpo vazio.

            - Para respostas não 2xx, error contém o corpo de erro do provedor
            de dados e output é null.


            Os campos confidenciais são removidos de ambos os corpos.
        charge_usd:
          anyOf:
            - type: string
              pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
              description: >-
                String decimal exata em USD (mínimo de 2 e máximo de 6 casas
                decimais, com uma única grafia canônica). Some usando aritmética
                decimal ou multiplique por 10^6 — nunca use números de ponto
                flutuante.
            - type: 'null'
          description: >-
            Cobrança total dos Runs nesta resposta de Solution. Nulo até que
            todos os Runs listados sejam finalizados. Cada Run mantém sua
            própria cobrança; falhas também podem ser cobradas.
        charge_basis:
          anyOf:
            - type: object
              properties:
                clause:
                  type: string
                  enum:
                    - rule
                    - NO_RESULT
                    - PROVIDER_ERROR
                    - TIMED_OUT
                    - INTERNAL
                quantity:
                  anyOf:
                    - type: integer
                      minimum: 0
                    - type: 'null'
              required:
                - clause
                - quantity
              additionalProperties: false
            - type: 'null'
          description: >-
            Base de cobrança de um único Run ou nulo para um total de vários
            Runs. Leia runs[].charge_basis para cada cobrança.
        stoppable:
          type: boolean
          description: >-
            Indica se uma solicitação de parada pode ser aceita no momento. Isso
            não garante que o Run possa ser interrompido antes do dispatch.
        stop_requested_at:
          anyOf:
            - type: string
              description: Timestamp UTC no formato ISO-8601
              format: date-time
            - type: 'null'
          description: >-
            Quando uma parada foi solicitada. O Run ainda pode continuar se o
            dispatch já tiver começado.
        created_at:
          type: string
          description: Timestamp UTC no formato ISO-8601
          format: date-time
        started_at:
          anyOf:
            - type: string
              description: Timestamp UTC no formato ISO-8601
              format: date-time
            - type: 'null'
        completed_at:
          anyOf:
            - type: string
              description: Timestamp UTC no formato ISO-8601
              format: date-time
            - type: 'null'
        task_id:
          anyOf:
            - type: string
            - type: 'null'
        metadata:
          type: object
          additionalProperties:
            type: string
            minLength: 1
            maxLength: 500
          maxProperties: 20
          propertyNames:
            type: string
            pattern: ^[a-z][a-z0-9_]{0,39}$
          description: >-
            Seus campos de rastreamento armazenados. Use-os para filtrar Runs.
            Eles nunca são enviados ao provedor de dados nem afetam o
            roteamento, o Price ou a idempotência.


            - Até 20 chaves: letras minúsculas, dígitos e sublinhados; devem
            começar com uma letra; no máximo 40 caracteres.

            - Valores: strings de 1 a 500 caracteres.

            - user_id: o ID opaco do seu usuário final, nunca o endereço de
            e-mail ou o nome dele.
        action:
          type: string
          enum:
            - search
            - list_employees
            - enrich
            - find_email
            - verify_email
            - find_phone
        result_status:
          type: string
          enum:
            - success
            - no_result
            - error
            - pending
          description: >-
            Status de entrega comercial, independente do ciclo de vida final do
            Run em status. no_result é uma resposta vazia, mas válida; error
            significa que a saída do provedor de dados não pôde ser entregue.
        error:
          anyOf:
            - type: object
              properties:
                code:
                  type: string
                message:
                  type: string
              required:
                - code
                - message
              additionalProperties: false
            - type: 'null'
        runs:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              run_url:
                type: string
                description: Abra este Run no console. Requer associação ao Workspace.
              provider:
                type: string
                pattern: ^[a-z0-9][a-z0-9-]*$
              endpoint:
                type: string
                pattern: ^\/.+$
              endpoint_version:
                type: integer
                exclusiveMinimum: 0
              status:
                type: string
                enum:
                  - QUEUED
                  - RUNNING
                  - COMPLETED
                  - FAILED
                  - STOPPED
                description: >-
                  QUEUED ou RUNNING: ainda em andamento. COMPLETED: uma resposta
                  do provedor de dados está disponível, incluindo respostas não
                  2xx. FAILED: consulte `failure`. STOPPED: interrompido antes
                  do dispatch. Leia charge_usd separadamente de status.
              failure:
                anyOf:
                  - type: object
                    properties:
                      kind:
                        type: string
                        enum:
                          - TIMED_OUT
                          - INTERNAL
                      message:
                        type: string
                    required:
                      - kind
                      - message
                    additionalProperties: false
                  - type: 'null'
                description: >-
                  Motivo da falha do Run. Não nulo somente quando o status for
                  FAILED.
              input:
                type: object
                properties:
                  omitted:
                    type: boolean
                    enum:
                      - true
                required:
                  - omitted
                additionalProperties: false
              output:
                type: object
                properties:
                  omitted:
                    type: boolean
                    enum:
                      - true
                required:
                  - omitted
                additionalProperties: false
              provider_response:
                anyOf:
                  - type: object
                    properties:
                      http_status:
                        type: integer
                        minimum: 100
                        maximum: 599
                        description: >-
                          Status HTTP retornado pelo provedor de dados.
                          Verifique-o mesmo quando o Run estiver COMPLETED.
                    required:
                      - http_status
                    additionalProperties: false
                  - type: 'null'
              charge_usd:
                anyOf:
                  - type: string
                    pattern: ^(0|[1-9]\d*)\.(\d{2}|\d{2}\d{0,3}[1-9])$
                    description: >-
                      String decimal exata em USD (mínimo de 2 e máximo de 6
                      casas decimais, com uma única grafia canônica). Some
                      usando aritmética decimal ou multiplique por 10^6 — nunca
                      use números de ponto flutuante.
                  - type: 'null'
                description: >-
                  Cobrança final como uma string decimal exata em USD. Nulo
                  enquanto estiver QUEUED ou RUNNING. Um Run FAILED pode ter uma
                  cobrança diferente de zero conforme o Price do endpoint.
              charge_basis:
                anyOf:
                  - type: object
                    properties:
                      clause:
                        type: string
                        enum:
                          - rule
                          - NO_RESULT
                          - PROVIDER_ERROR
                          - TIMED_OUT
                          - INTERNAL
                      quantity:
                        anyOf:
                          - type: integer
                            minimum: 0
                          - type: 'null'
                    required:
                      - clause
                      - quantity
                    additionalProperties: false
                  - type: 'null'
                description: >-
                  Cláusula de Price usada para calcular a cobrança. Nulo antes
                  da finalização ou quando nenhuma tentativa com o provedor de
                  dados tiver sido feita.
              stoppable:
                type: boolean
                description: >-
                  Indica se uma solicitação de parada pode ser aceita no
                  momento. Isso não garante que o Run possa ser interrompido
                  antes do dispatch.
              stop_requested_at:
                anyOf:
                  - type: string
                    description: Timestamp UTC no formato ISO-8601
                    format: date-time
                  - type: 'null'
                description: >-
                  Quando uma parada foi solicitada. O Run ainda pode continuar
                  se o dispatch já tiver começado.
              created_at:
                type: string
                description: Timestamp UTC no formato ISO-8601
                format: date-time
              started_at:
                anyOf:
                  - type: string
                    description: Timestamp UTC no formato ISO-8601
                    format: date-time
                  - type: 'null'
              completed_at:
                anyOf:
                  - type: string
                    description: Timestamp UTC no formato ISO-8601
                    format: date-time
                  - type: 'null'
              task_id:
                anyOf:
                  - type: string
                  - type: 'null'
              metadata:
                type: object
                additionalProperties:
                  type: string
                  minLength: 1
                  maxLength: 500
                maxProperties: 20
                propertyNames:
                  type: string
                  pattern: ^[a-z][a-z0-9_]{0,39}$
                description: >-
                  Seus campos de rastreamento armazenados. Use-os para filtrar
                  Runs. Eles nunca são enviados ao provedor de dados nem afetam
                  o roteamento, o Price ou a idempotência.


                  - Até 20 chaves: letras minúsculas, dígitos e sublinhados;
                  devem começar com uma letra; no máximo 40 caracteres.

                  - Valores: strings de 1 a 500 caracteres.

                  - user_id: o ID opaco do seu usuário final, nunca o endereço
                  de e-mail ou o nome dele.
            required:
              - id
              - run_url
              - provider
              - endpoint
              - endpoint_version
              - status
              - failure
              - input
              - output
              - provider_response
              - charge_usd
              - charge_basis
              - stoppable
              - stop_requested_at
              - created_at
              - started_at
              - completed_at
              - task_id
              - metadata
            additionalProperties: false
        result_url:
          type: string
          description: >-
            Caminho de URL autenticado e somente leitura para consultar este
            resultado normalizado e a cobrança total. Use-o com a origem da API.
            Não cria Runs nem retoma o fallback. GET /v1/runs/:id ainda retorna
            o Run nativo e individual.
      required:
        - id
        - run_url
        - provider
        - endpoint
        - endpoint_version
        - status
        - failure
        - input
        - output
        - provider_response
        - charge_usd
        - charge_basis
        - stoppable
        - stop_requested_at
        - created_at
        - started_at
        - completed_at
        - task_id
        - metadata
        - action
        - result_status
        - error
        - runs
        - result_url
      additionalProperties: false
    ValidationFailedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - validation_failed
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    IdempotencyKeyRequiredEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - idempotency_key_required
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    UnauthorizedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - unauthorized
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    InsufficientBalanceEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - insufficient_balance
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    EndpointNotPermittedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - endpoint_not_permitted
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    ForbiddenEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - forbidden
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    IdempotencyConflictEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - idempotency_conflict
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    RateLimitedEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - rate_limited
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
    ServiceUnavailableEncoded:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - service_unavailable
            message:
              type: string
            reason:
              anyOf:
                - type: string
                - type: 'null'
            control:
              anyOf:
                - type: string
                - type: 'null'
            retry_after_ms:
              anyOf:
                - anyOf:
                    - type: integer
                    - type: 'null'
                - type: 'null'
            details:
              anyOf:
                - type: object
                - type: 'null'
          required:
            - code
            - message
          additionalProperties: false
        request_id:
          type: string
      required:
        - error
        - request_id
      additionalProperties: false
  securitySchemes:
    bearer:
      type: http
      scheme: Bearer

````

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