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

# Criar um Índice de Metadata

> Use este endpoint para criar um índice de metadata para um tipo de entidade específico. Índices de metadata melhoram o desempenho das consultas ao filtrar ou pesquisar por campos de metadata personalizados.



## OpenAPI

````yaml pt/openapi/v3-current/ledger.yaml post /v1/settings/metadata-indexes/entities/{entity_name}
openapi: 3.1.0
info:
  title: API Midaz Ledger
  description: >-
    Referência completa da API para serviços do Midaz Ledger incluindo
    gerenciamento de organizações, operações de ledger, ativos, segmentos,
    portfolios, contas, tipos de conta, transações, operações, saldos, rotas de
    operação, rotas de transação e índices de metadata.
  version: 3.7.8
servers:
  - url: https://ledger.sandbox.lerian.net
security: []
tags:
  - name: API de Organizações
  - name: API de Ledgers
  - name: API de Ativos
  - name: API de Segmentos
  - name: API de Portfolios
  - name: API de Tipos de Conta
  - name: API de Contas
  - name: API de Saldos
  - name: API de Transações
  - name: API de Operações
  - name: API de Rotas de Operação
  - name: API de Rotas de Transação
  - name: API de Índices de Metadata
  - name: API de Titulares
  - name: API de Instrumentos
  - name: API de Pacotes de Cobrança
  - name: API de Pacotes
  - name: API de Cálculo de Cobrança
  - name: API de Estimativa
  - name: API de Criptografia
  - name: API de Proteção
  - name: API de Taxas de Ativos
paths:
  /v1/settings/metadata-indexes/entities/{entity_name}:
    post:
      tags:
        - API de Índices de Metadata
      summary: Criar um Índice de Metadata
      description: >-
        Use este endpoint para criar um índice de metadata para um tipo de
        entidade específico. Índices de metadata melhoram o desempenho das
        consultas ao filtrar ou pesquisar por campos de metadata personalizados.
      parameters:
        - $ref: '#/components/parameters/EntityName'
        - $ref: '#/components/parameters/ContentType'
        - $ref: '#/components/parameters/XRequestId'
        - $ref: '#/components/parameters/Authorization'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMetadataIndexRequest'
            example:
              metadataKey: tier
              unique: false
              sparse: true
        required: true
      responses:
        '201':
          description: >-
            Indica que o índice de metadata foi criado com sucesso e a operação
            foi concluída conforme esperado.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataIndexResponse'
              example:
                indexName: metadata.tier_1
                entityName: transaction
                metadataKey: tier
                unique: false
                sparse: true
          headers: {}
        '400':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0009:
                  $ref: '#/components/examples/Error0009'
                Error0047:
                  $ref: '#/components/examples/Error0047'
                Error0134:
                  $ref: '#/components/examples/Error0134'
                Error0135:
                  $ref: '#/components/examples/Error0135'
                Error0136:
                  $ref: '#/components/examples/Error0136'
                Error0138:
                  $ref: '#/components/examples/Error0138'
          headers: {}
        '401':
          description: Não autorizado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0041:
                  $ref: '#/components/examples/Error0041'
                Error0042:
                  $ref: '#/components/examples/Error0042'
        '403':
          description: Proibido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0043:
                  $ref: '#/components/examples/Error0043'
        '409':
          description: >-
            Conflito — já existe um índice de metadata com a mesma chave para
            este tipo de entidade.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0132:
                  $ref: '#/components/examples/Error0132'
        '500':
          description: Erro Interno do Servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0046:
                  $ref: '#/components/examples/Error0046'
components:
  parameters:
    EntityName:
      name: entity_name
      in: path
      description: >-
        O nome da entidade para a qual o índice de metadata será criado ou
        gerenciado.
      required: true
      example: transaction
      schema:
        type: string
        enum:
          - organization
          - ledger
          - asset
          - segment
          - portfolio
          - account
          - transaction
          - operation
          - account_type
          - operation_route
          - transaction_route
    ContentType:
      name: Content-Type
      in: header
      description: O tipo de mídia do recurso. O valor recomendado é `application/json`.
      required: false
      example: application/json
      schema:
        type: string
    XRequestId:
      name: X-Request-Id
      in: header
      description: >-
        Um identificador único utilizado para rastrear e acompanhar cada
        requisição.
      required: false
      example: 019c96a0-0a98-7287-9a31-786e0809c769
      schema:
        type: string
        format: uuid
    Authorization:
      name: Authorization
      in: header
      required: false
      schema:
        type: string
      description: >
        Token JWT bearer para autenticação.

        Obrigatório quando `PLUGIN_AUTH_ENABLED=true` (exigido em implantações
        multi-tenant).

        Opcional no modo OSS single-tenant padrão.

        Formato: `Bearer <token>`
  schemas:
    CreateMetadataIndexRequest:
      type: object
      description: O corpo da requisição para criar um índice de metadata.
      required:
        - metadataKey
      properties:
        metadataKey:
          type: string
          maxLength: 100
          pattern: ^[a-zA-Z][a-zA-Z0-9_]*$
          description: >-
            A chave de metadata a ser indexada. Esta chave deve corresponder ao
            nome do campo de metadata utilizado em suas entidades.
          examples:
            - tier
        unique:
          type: boolean
          default: false
          description: >-
            Indica se o índice exige unicidade. Quando definido como `true`,
            valores duplicados para esta chave de metadata não serão permitidos.
          examples:
            - false
        sparse:
          type: boolean
          default: true
          description: >-
            Indica se o índice é esparso. Quando definido como `true`, apenas
            documentos que contêm o campo indexado serão incluídos no índice.
          examples:
            - true
    MetadataIndexResponse:
      type: object
      description: O corpo da resposta para um índice de metadata.
      required:
        - indexName
        - entityName
        - metadataKey
        - unique
        - sparse
      properties:
        indexName:
          type: string
          description: O nome do índice no banco de dados.
          examples:
            - metadata.tier_1
        entityName:
          type: string
          description: O nome da entidade associada ao índice.
          examples:
            - transaction
        metadataKey:
          type: string
          description: A chave de metadata utilizada no índice.
          examples:
            - tier
        unique:
          type: boolean
          description: Indica se o índice exige unicidade.
          examples:
            - false
        sparse:
          type: boolean
          description: >-
            Indica se o índice é esparso (ignora documentos sem o campo
            indexado).
          examples:
            - true
    ErrorFormat:
      type: object
      description: A mensagem de erro da resposta.
      required:
        - code
        - title
        - message
      properties:
        code:
          type: string
          description: Um identificador único e estável para o erro.
        title:
          type: string
          description: Um breve resumo do problema.
        message:
          type: string
          description: Orientação detalhada para resolver o erro.
        entityType:
          type: string
          description: >-
            O tipo de entidade ao qual o erro se refere (por exemplo,
            organization, ledger, account, transaction). Opcional.
        fields:
          type: object
          additionalProperties: true
          description: Informações adicionais sobre os campos que causaram o erro.
  examples:
    Error0009:
      summary: Missing Fields in Request
      value:
        code: '0009'
        title: Missing Fields in Request
        message: >-
          Your request is missing one or more required fields. Please refer to
          the documentation to ensure all necessary fields are included in your
          request.
        fields:
          metadataKey: metadataKey is a required field
    Error0047:
      summary: Bad Request
      value:
        code: '0047'
        title: Bad Request
        message: >-
          The server could not understand the request due to malformed syntax.
          Please check the listed fields and try again.
    Error0134:
      summary: Invalid Metadata Key Format
      value:
        code: '0134'
        title: Invalid Metadata Key Format
        message: >-
          The metadata key format is invalid. Keys must start with a letter and
          contain only alphanumeric characters and underscores.
    Error0135:
      summary: Metadata Index Limit Exceeded
      value:
        code: '0135'
        title: Metadata Index Limit Exceeded
        message: >-
          The maximum number of metadata indexes has been reached for this
          entity. Please delete unused indexes before creating new ones.
    Error0136:
      summary: Metadata Index Creation Failed
      value:
        code: '0136'
        title: Metadata Index Creation Failed
        message: >-
          The metadata index could not be created. Please try again later or
          contact support.
    Error0138:
      summary: Invalid Entity Name
      value:
        code: '0138'
        title: Invalid Entity Name
        message: >-
          The provided entity name is not valid. Accepted values are:
          organization, ledger, asset, segment, portfolio, account, transaction,
          operation, account_type, operation_route, transaction_route.
    Error0041:
      summary: Token Missing
      value:
        code: '0041'
        title: Token Missing
        message: >-
          A valid token must be provided in the request header. Please include a
          token and try again.
    Error0042:
      summary: Invalid Token
      value:
        code: '0042'
        title: Invalid Token
        message: >-
          The provided token is expired, invalid or malformed. Please provide a
          valid token and try again.
    Error0043:
      summary: Insufficient Privileges
      value:
        code: '0043'
        title: Insufficient Privileges
        message: >-
          You do not have the necessary permissions to perform this action.
          Please contact your administrator if you believe this is an error.
    Error0132:
      summary: Metadata Index Already Exists
      value:
        code: '0132'
        title: Metadata Index Already Exists
        message: >-
          A metadata index with the same key already exists for this entity.
          Please use a different key from the existing index.
    Error0046:
      summary: Internal Server Error
      value:
        code: '0046'
        title: Internal Server Error
        message: >-
          The server encountered an unexpected error. Please try again later or
          contact support.

````