:doc:`S3Vectors <../../s3vectors>` / Client / create_index

************
create_index
************



.. py:method:: S3Vectors.Client.create_index(**kwargs)

  

  Creates a vector index within a vector bucket. To specify the vector bucket, you must use either the vector bucket name or the vector bucket Amazon Resource Name (ARN).

    Permissions  

  You must have the ``s3vectors:CreateIndex`` permission to use this operation.

   

  You must have the ``s3vectors:TagResource`` permission in addition to ``s3vectors:CreateIndex`` permission to create a vector index with tags.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/s3vectors-2025-07-15/CreateIndex>`_  


  **Request Syntax**
  ::

    response = client.create_index(
        vectorBucketName='string',
        vectorBucketArn='string',
        indexName='string',
        dataType='float32',
        dimension=123,
        distanceMetric='euclidean'|'cosine',
        metadataConfiguration={
            'nonFilterableMetadataKeys': [
                'string',
            ]
        },
        encryptionConfiguration={
            'sseType': 'AES256'|'aws:kms',
            'kmsKeyArn': 'string'
        },
        tags={
            'string': 'string'
        }
    )
    
  :type vectorBucketName: string
  :param vectorBucketName: 

    The name of the vector bucket to create the vector index in.

    

  
  :type vectorBucketArn: string
  :param vectorBucketArn: 

    The Amazon Resource Name (ARN) of the vector bucket to create the vector index in.

    

  
  :type indexName: string
  :param indexName: **[REQUIRED]** 

    The name of the vector index to create.

    

  
  :type dataType: string
  :param dataType: **[REQUIRED]** 

    The data type of the vectors to be inserted into the vector index.

    

  
  :type dimension: integer
  :param dimension: **[REQUIRED]** 

    The dimensions of the vectors to be inserted into the vector index.

    

  
  :type distanceMetric: string
  :param distanceMetric: **[REQUIRED]** 

    The distance metric to be used for similarity search.

    

  
  :type metadataConfiguration: dict
  :param metadataConfiguration: 

    The metadata configuration for the vector index.

    

  
    - **nonFilterableMetadataKeys** *(list) --* **[REQUIRED]** 

      Non-filterable metadata keys allow you to enrich vectors with additional context during storage and retrieval. Unlike default metadata keys, these keys can’t be used as query filters. Non-filterable metadata keys can be retrieved but can’t be searched, queried, or filtered. You can access non-filterable metadata keys of your vectors after finding the vectors. For more information about non-filterable metadata keys, see `Vectors <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-vectors.html>`__ and `Limitations and restrictions <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors-limitations.html>`__ in the *Amazon S3 User Guide*.

      

    
      - *(string) --* 

      
  
  
  :type encryptionConfiguration: dict
  :param encryptionConfiguration: 

    The encryption configuration for a vector index. By default, if you don't specify, all new vectors in the vector index will use the encryption configuration of the vector bucket.

    

  
    - **sseType** *(string) --* 

      The server-side encryption type to use for the encryption configuration of the vector bucket. By default, if you don't specify, all new vectors in Amazon S3 vector buckets use server-side encryption with Amazon S3 managed keys (SSE-S3), specifically ``AES256``.

      

    
    - **kmsKeyArn** *(string) --* 

      Amazon Web Services Key Management Service (KMS) customer managed key ID to use for the encryption configuration. This parameter is allowed if and only if ``sseType`` is set to ``aws:kms``.

       

      To specify the KMS key, you must use the format of the KMS key Amazon Resource Name (ARN).

       

      For example, specify Key ARN in the following format: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``

      

    
  
  :type tags: dict
  :param tags: 

    An array of user-defined tags that you would like to apply to the vector index that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize, track costs, and control access to resources. For more information, see `Tagging for cost allocation or attribute-based access control (ABAC) <https://docs.aws.amazon.com/AmazonS3/latest/userguide/tagging.html>`__.

     

    .. note::

      

      You must have the ``s3vectors:TagResource`` permission in addition to ``s3vectors:CreateIndex`` permission to create a vector index with tags.

      

    

  
    - *(string) --* 

    
      - *(string) --* 

      


  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {
          'indexArn': 'string'
      }
      
    **Response Structure**

    

    - *(dict) --* 
      

      - **indexArn** *(string) --* 

        The Amazon Resource Name (ARN) of the newly created vector index.

        
  
  **Exceptions**
  
  *   :py:class:`S3Vectors.Client.exceptions.ValidationException`

  
  *   :py:class:`S3Vectors.Client.exceptions.ServiceUnavailableException`

  
  *   :py:class:`S3Vectors.Client.exceptions.TooManyRequestsException`

  
  *   :py:class:`S3Vectors.Client.exceptions.InternalServerException`

  
  *   :py:class:`S3Vectors.Client.exceptions.AccessDeniedException`

  
  *   :py:class:`S3Vectors.Client.exceptions.RequestTimeoutException`

  
  *   :py:class:`S3Vectors.Client.exceptions.ConflictException`

  
  *   :py:class:`S3Vectors.Client.exceptions.NotFoundException`

  
  *   :py:class:`S3Vectors.Client.exceptions.ServiceQuotaExceededException`

  