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

# Crear un Índice de Metadatos

> Utilice este endpoint para crear un índice de metadatos para un tipo de entidad específico. Los índices de metadatos mejoran el rendimiento de las consultas al filtrar o buscar por campos de metadatos personalizados.



## OpenAPI

````yaml es/openapi/v3-current/ledger.yaml post /v1/settings/metadata-indexes/entities/{entity_name}
openapi: 3.1.0
info:
  title: API de Midaz Ledger
  description: >-
    Referencia completa de la API para los servicios de Midaz Ledger, incluyendo
    gestión de organizaciones, operaciones de ledger, activos, segmentos,
    portafolios, cuentas, tipos de cuenta, transacciones, operaciones, saldos,
    rutas de operación, rutas de transacción e índices de metadatos.
  version: 3.7.8
servers:
  - url: https://ledger.sandbox.lerian.net
security: []
tags:
  - name: Organizations API
  - name: Ledgers API
  - name: Assets API
  - name: Segments API
  - name: Portfolios API
  - name: Account Types API
  - name: Accounts API
  - name: Balances API
  - name: Transactions API
  - name: Operations API
  - name: Operation Routes API
  - name: Transaction Routes API
  - name: Metadata Indexes API
  - name: Holders API
  - name: Instruments API
  - name: Billing Packages API
  - name: Packages API
  - name: Billing Calculation API
  - name: Estimation API
  - name: Encryption API
  - name: Protection API
  - name: Asset Rates API
paths:
  /v1/settings/metadata-indexes/entities/{entity_name}:
    post:
      tags:
        - Metadata Indexes API
      summary: Crear un Índice de Metadatos
      description: >-
        Utilice este endpoint para crear un índice de metadatos para un tipo de
        entidad específico. Los índices de metadatos mejoran el rendimiento de
        las consultas al filtrar o buscar por campos de metadatos
        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 el índice de metadatos fue creado exitosamente y la
            operación se completó como se esperaba.
          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: No autorizado
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0041:
                  $ref: '#/components/examples/Error0041'
                Error0042:
                  $ref: '#/components/examples/Error0042'
        '403':
          description: Prohibido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0043:
                  $ref: '#/components/examples/Error0043'
        '409':
          description: >-
            Conflicto — ya existe un índice de metadatos con la misma clave para
            este tipo de entidad.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0132:
                  $ref: '#/components/examples/Error0132'
        '500':
          description: Error Interno del Servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorFormat'
              examples:
                Error0046:
                  $ref: '#/components/examples/Error0046'
components:
  parameters:
    EntityName:
      name: entity_name
      in: path
      description: >
        El nombre de la entidad para la cual se creará o gestionará el índice de
        metadatos.

        Entidades soportadas: `organization`, `ledger`, `asset`, `segment`,
        `portfolio`, `account`, `transaction`, `operation`, `account_type`,
        `operation_route`, `transaction_route`.
      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: >-
        El tipo de medio del recurso. El valor recomendado es
        `application/json`.
      required: false
      example: application/json
      schema:
        type: string
    XRequestId:
      name: X-Request-Id
      in: header
      description: Un identificador único utilizado para rastrear y seguir cada solicitud.
      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 autenticación.

        Requerido cuando `PLUGIN_AUTH_ENABLED=true` (obligatorio en despliegues
        multiinquilino).

        Opcional en el modo OSS de inquilino único predeterminado.

        Formato: `Bearer <token>`
  schemas:
    CreateMetadataIndexRequest:
      type: object
      description: El cuerpo de la solicitud para crear un índice de metadatos.
      required:
        - metadataKey
      properties:
        metadataKey:
          type: string
          maxLength: 100
          pattern: ^[a-zA-Z][a-zA-Z0-9_]*$
          description: >-
            La clave de metadatos a indexar. Esta clave debe coincidir con el
            nombre del campo de metadatos utilizado en sus entidades.
          examples:
            - tier
        unique:
          type: boolean
          default: false
          description: >-
            Indica si el índice exige unicidad. Cuando se establece en `true`,
            no se permitirán valores duplicados para esta clave de metadatos.
          examples:
            - false
        sparse:
          type: boolean
          default: true
          description: >-
            Indica si el índice es disperso. Cuando se establece en `true`, solo
            los documentos que contengan el campo indexado se incluirán en el
            índice.
          examples:
            - true
    MetadataIndexResponse:
      type: object
      description: El cuerpo de la respuesta para un índice de metadatos.
      required:
        - indexName
        - entityName
        - metadataKey
        - unique
        - sparse
      properties:
        indexName:
          type: string
          description: El nombre del índice en la base de datos.
          examples:
            - metadata.tier_1
        entityName:
          type: string
          description: El nombre de la entidad asociada con el índice.
          examples:
            - transaction
        metadataKey:
          type: string
          description: La clave de metadatos utilizada en el índice.
          examples:
            - tier
        unique:
          type: boolean
          description: Indica si el índice exige unicidad.
          examples:
            - false
        sparse:
          type: boolean
          description: >-
            Indica si el índice es disperso (ignora documentos sin el campo
            indexado).
          examples:
            - true
    ErrorFormat:
      type: object
      description: El mensaje de error de respuesta.
      required:
        - code
        - title
        - message
      properties:
        code:
          type: string
          description: Un identificador único y estable para el error.
        title:
          type: string
          description: Un breve resumen del problema.
        message:
          type: string
          description: Orientación detallada para resolver el error.
        entityType:
          type: string
          description: >-
            El tipo de entidad a la que se refiere el error (p. ej.
            organization, ledger, account, transaction). Opcional.
        fields:
          type: object
          additionalProperties: true
          description: Información adicional sobre los campos que causaron el error.
  examples:
    Error0009:
      summary: Missing Fields in Request
      value:
        code: 9
        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: 138
        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.

````