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

# Listar preços de catálogo

> O catálogo de preços públicos — cada taxa cobrada pela plataforma, em vigor agora (ou em `at`). Esse endpoint é público e não requer credenciais: as taxas são idênticas para cada chamador, sem descontos específicos de conta ou termos de uso comprometido, portanto, não há nada de tenant-scope para proteger. Ele existe para que o site de marketing e o console leiam os preços do faturamento em vez de espelhá-los na fonte, onde eles variam toda vez que uma migração recomeça.

Como não requer credenciais, as solicitações são limitadas por taxa por IP do cliente. As respostas carregam um curto `Cache-Control` público — o catálogo muda em uma migração, não em uma solicitação.


<Info>
  Requer **nenhuma ação do IAM**. O acesso é decidido pelas próprias regras do endpoint, e não por uma política — consulte a descrição acima.
</Info>


## OpenAPI

````yaml /pt/api-reference/specs/billing.yaml get /v1/prices
openapi: 3.0.3
info:
  title: Basaltic Billing API
  version: 1.0.0
  description: >
    Preços, uso medido, faturas, pagamentos e créditos para a organização. O
    catálogo de preços (`/v1/prices`) é público; outras operações exigem
    concessão de políticas da organização para ações de faturamento.


    Inclui perfis de faturamento editáveis e status de fatura fiscal /
    downloads. A liquidação de uma fatura e a gestão dos métodos de pagamento
    ocorrem no console.
  contact:
    name: Basaltic Support
    email: ping@basaltic.sh
  license:
    name: Proprietary
    url: https://basaltic.sh/terms
servers:
  - url: https://billing.basaltic.sh
    description: Endpoint global da API
security:
  - BearerAuth: []
paths:
  /v1/prices:
    get:
      tags:
        - Billing
      summary: Listar preços de catálogo
      description: >
        O catálogo de preços públicos — cada taxa cobrada pela plataforma, em
        vigor agora (ou em `at`). Esse endpoint é público e não requer
        credenciais: as taxas são idênticas para cada chamador, sem descontos
        específicos de conta ou termos de uso comprometido, portanto, não há
        nada de tenant-scope para proteger. Ele existe para que o site de
        marketing e o console leiam os preços do faturamento em vez de
        espelhá-los na fonte, onde eles variam toda vez que uma migração
        recomeça.


        Como não requer credenciais, as solicitações são limitadas por taxa por
        IP do cliente. As respostas carregam um curto `Cache-Control` público —
        o catálogo muda em uma migração, não em uma solicitação.
      operationId: listPrices
      parameters:
        - name: service
          in: query
          description: Apenas SKUs faturados por este serviço.
          schema:
            type: string
            example: compute
        - name: resource_type
          in: query
          schema:
            type: string
            example: instance
        - name: sku
          in: query
          description: Exatamente um SKU.
          schema:
            type: string
            example: compute.instance.s1.medium
        - name: family
          in: query
          description: >
            Apenas SKUs cujo `metadata.family` corresponde — como os produtos
            gerenciados são separados dos tipos de instância de computação
            geral.
          schema:
            type: string
            example: loadbalancer
        - name: at
          in: query
          description: >
            Leia o catálogo a partir deste instante em vez de agora, para
            mostrar um preço histórico. RFC 3339.
          schema:
            type: string
            format: date-time
            example: '2026-01-01T00:00:00Z'
      responses:
        '200':
          description: O catálogo efetivo em `as_of`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PriceListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security: []
components:
  schemas:
    PriceListResponse:
      type: object
      required:
        - prices
        - as_of
      properties:
        prices:
          type: array
          items:
            $ref: '#/components/schemas/Price'
        as_of:
          type: string
          format: date-time
          description: >
            O instante em que o catálogo foi lido — o `at` que foi solicitado,
            ou o relógio do servidor quando nenhum foi.
    Price:
      type: object
      description: >
        Uma linha efetiva do catálogo de preços públicos — a mesma linha
        `billing.billing_prices` contra a qual a classificação é cobrada. O
        dinheiro é uma cadeia decimal em vez de um número JSON, portanto, a taxa
        cotada é exatamente a que será cobrada.
      required:
        - sku
        - service
        - resource_type
        - name
        - unit
        - unit_price
        - currency
        - metadata
      properties:
        sku:
          type: string
          description: >
            Chave de catálogo estável, `{service}.{resource_type}.{variant}`.
            Esta é a identidade pública de um preço — o id da linha não é
            publicado.
          example: compute.instance.s1.medium
        service:
          type: string
          description: Qual serviço cobra esse SKU.
          example: compute
        resource_type:
          type: string
          example: instance
        name:
          type: string
          description: >-
            Nome de exibição. Para SKUs de computação, esse é o nome do tipo de
            instância.
          example: s1.medium
        description:
          type: string
          nullable: true
          example: 2 vCPU, 4 GB RAM
        unit:
          type: string
          description: O que uma unidade de `unit_price` compra.
          example: hour
        unit_price:
          type: string
          description: Preço para uma `unit`, como uma cadeia decimal exata.
          example: '0.085'
        currency:
          type: string
          example: BRL
        metadata:
          type: object
          additionalProperties: true
          description: >
            Fatos extras sobre o SKU — `class`, `family`, `vcpus`, `memory_gb`,
            `storage_type`, … `family` separa os produtos gerenciados (réplicas
            de balanceador de carga, nós de cluster de banco de dados) dos tipos
            de instância de computação gerais com os quais eles compartilham um
            `resource_type`.
          example:
            class: shared
            vcpus: 2
            memory_gb: 4
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              description: Código de erro identificando o tipo de erro
              example: INVALID_INPUT
            message:
              type: string
              description: Mensagem de erro legível pelo ser humano
              example: Invalid request parameters
            params:
              type: object
              additionalProperties: true
              description: >-
                Valores não sensíveis opcionais para interpolação de erros
                localizados, codificados por código de erro. Nunca presente para
                erros de servidor.
              example:
                instances: 2
                pools: 0
            request_id:
              type: string
              format: uuid
              description: Solicitar ID para depuração
              example: 550e8400-e29b-41d4-a716-446655440000
  responses:
    BadRequest:
      description: Parâmetros de solicitação inválidos
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INVALID_INPUT
              message: Invalid request parameters
              request_id: 550e8400-e29b-41d4-a716-446655440000
    TooManyRequests:
      description: >
        Limite de taxa excedido. O orçamento é uma janela fixa contada por
        endpoint e por chamador — o principal autenticado quando a solicitação
        carrega credenciais, o IP do cliente caso contrário — para que um
        endpoint limitado nunca gaste o orçamento de outro e um locatário nunca
        gaste o de outro.


        Aguarde `Retry-After` segundos, em seguida, tente novamente. Os
        cabeçalhos `X-RateLimit-*` também são baseados nas respostas
        bem-sucedidas de um endpoint com taxa limitada, para que um cliente
        possa se adaptar ao invés de descobrir o limite ao atingi-lo.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: RATE_LIMITED
              message: Too many requests, please try again later
              request_id: 550e8400-e29b-41d4-a716-446655440000
      headers:
        Retry-After:
          description: Segundos para aguardar antes de tentar novamente. Nunca zero.
          required: true
          schema:
            type: integer
            minimum: 1
          example: 42
        X-RateLimit-Limit:
          description: Solicitações permitidas por janela neste endpoint.
          required: true
          schema:
            type: integer
            minimum: 1
          example: 5
        X-RateLimit-Remaining:
          description: Solicitações deixadas na janela atual. Sempre 0 em um 429.
          required: true
          schema:
            type: integer
            minimum: 0
          example: 0
        X-RateLimit-Reset:
          description: >-
            Segundos até que a janela seja redefinida — uma duração, não um
            carimbo de data/hora, portanto, não precisa de acordo de clock entre
            cliente e servidor.
          required: true
          schema:
            type: integer
            minimum: 1
          example: 42
    InternalServerError:
      description: Erro interno do servidor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: INTERNAL_ERROR
              message: An internal error occurred
              request_id: 550e8400-e29b-41d4-a716-446655440000
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >+
        Um token bearer OAuth 2.0, enviado como `Authorization: Bearer <token>`.
        Esta é a forma recomendada de autenticação.


        Obtenha o token trocando o par de chaves de acesso de uma conta de
        serviço em `POST /v1/oauth/token` com `grant_type=client_credentials`.
        Esse é o fluxo padrão de credenciais de cliente; bibliotecas compatíveis
        com OAuth podem obter e renovar o token para você.


        ```

        curl -s -u "$KEY_ID:$SECRET" -d grant_type=client_credentials \
          https://iam.basaltic.sh/v1/oauth/token
        ```


        Os tokens duram uma hora por padrão. O mesmo par de chaves de acesso
        também serve como credencial AWS SigV4 para o endpoint de objetos
        compatível com S3, que aceita somente esse método de autenticação.


````

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