---
title: "POST /v1/core/index"
method: POST
path: "/v1/core/index"
tags: ["IndexService"]
---

# POST /v1/core/index

`POST /v1/core/index`

This API is intended to be used by experts.  It gives you fine-grained control over chunking
strategies by using the `parts`.  Most users will want to use the [File Upload API](https://docs.vectara.com/docs/rest-api/file-upload) or the "standard" [Index API](https://docs.vectara.com/docs/rest-api/index).

Some tips for this API:
* This operation authenticates with either the Personal API Key, Index API Key, or OAuth 2.0 (in a JWT "Bearer Token"). You can find details of how to set up an API key or use OAuth 2.0 [here](https://docs.vectara.com/docs/console-ui/manage-api-access).
* The `metadataJson` object needs the JSON to be escaped so that it's not confused with other parts of the request JSON.
* [Custom dimensions](https://docs.vectara.com/docs/learn/semantic-search/add-custom-dimensions) (`customDims`) is a feature that is only available to [Scale](https://vectara.com/pricing/) accounts.

## Headers

- `customer-id` integer, required
- `timeout` string

## Request body

- VectaraIndexCoreDocumentRequest — Request to index a document.
  - `customerId` string, int64 — The Customer ID to issue the request for.
  - `corpusId` string, int64 — The Corpus ID to index the document into.
  - `document` IndexingCoreDocument — A document to index.
    - `documentId` string — A document ID to assign to this document.
    - `metadataJson` string — Metadata about the document. This should be a json string. It can be retrieved at query time.
    - `parts` IndexingCoreDocumentPart[] — All parts of this document.
      - `text` string — A part of the document. e.g., a sentence.
      - `context` string — Context of the part.
      - `metadataJson` string — Metadata about this part of the document. This should be a json string. It is passed through the system, without being used at indexing time. It can be retrieved at query time.
      - `customDims` VectaraindexingCustomDimension[]
        - `name` string — The name of the dimension.
        - `value` number, double — The value of the dimension.
    - `defaultPartContext` string — This field provides a way to specify a blanket context for all parts. If the context in a part is empty, this context will be used.
    - `customDims` VectaraindexingCustomDimension[] — A list of custom dimension values that are included in the generated representation of all parts.
      - `name` string — The name of the dimension.
      - `value` number, double — The value of the dimension.

## Response `200`

A successful response.

- VectaraIndexCoreDocumentResponse
  - `status` ComvectaraStatus
    - `code` 'OK' | 'FAILURE' | 'UNKNOWN' | 'INVALID_ARGUMENT' | 'DEADLINE_EXCEEDED' | 'ALREADY_EXISTS' | 'PERMISSION_DENIED' | 'RESOURCE_EXHAUSTED' | 'FAILED_PRECONDITION' | 'ABORTED' | 'OUT_OF_RANGE' | 'UNIMPLEMENTED' | 'INTERNAL' | 'UNAVAILABLE' | 'DATA_LOSS' | 'UNAUTHENTICATED' | 'BAD_REQUEST' | 'UNAUTHORIZED' | 'FORBIDDEN' | 'NOT_FOUND' | 'METHOD_NOT_ALLOWED' | 'CONFLICT' | 'UNSUPPORTED_MEDIA_TYPE' | 'TOO_MANY_REQUESTS' | 'INTERNAL_SERVER_ERROR' | 'NOT_IMPLEMENTED' | 'SERVICE_UNAVAILABLE' | 'INSUFFICIENT_STORAGE' | 'UNPARSEABLE_RESPONSE' | 'DISABLED_CUSTOMER' | 'INVALID_CUSTOMER_ID' | 'DISABLED_CORPUS' | 'INVALID_CORPUS_ID' | 'DISABLED_API_KEY' | 'EXPIRED_API_KEY' | 'INVALID_API_KEY' | 'CMK_INACCESSIBLE' | 'QRY__DISABLED_CORPUS' | 'QRY__DOCUMENT_DB_FAILURE' | 'QRY__ENCODER_FAILURE' | 'QRY__INTERRUPTED' | 'QRY__INVALID_CORPUS' | 'QRY__INVALID_START' | 'QRY__INVALID_NUM_RESULTS' | 'QRY__INVALID_CONTEXT' | 'QRY__MISSING_QUERY' | 'QRY__MISSING_CORPUS' | 'QRY__TIMEOUT' | 'QRY__TOO_MANY_CORPORA' | 'QRY__TOO_MANY_QUERIES' | 'QRY__VECTOR_INDEX_FAILURE' | 'QRY__INVALID_DIMENSION' | 'QRY__INVALID_CLIENTKEY' | 'QRY__DECRYPTION_FAILURE' | 'QRY__INVALID_RERANKER' | 'QRY__PARTIAL_RERANK' | 'QRY__RERANK_FAILURE' | 'QRY__TOO_MANY_RESULT_ROWS' | 'QRY__PARTIAL_RETRIEVAL' | 'QRY__SMRY__INVALID_SUMMARIZER_PROMPT' | 'QRY__SMRY__INVALID_SUMMARY_LANG' | 'QRY__SMRY__UNSUPPORTED_SUMMARY_LANG' | 'QRY__SMRY__PARTIAL_SUMMARY' | 'QRY__SMRY__NO_QUERY_RESULTS' | 'QRY__SMRY__EVAL_UNSUPPORTED_LANG' | 'QRY__SMRY__EVAL_FAILURE' | 'QRY__GEN__NO_QUERY_RESULTS' | 'QRY__GEN__UNPARSEABLE_MODEL_PARAMS' | 'CX_SPECS__INVALID_JSON' | 'CX_SPECS__UNREGISTERED_TYPE' | 'CX_SPECS__MISSING_SPEC' | 'CX_SPECS__MISSING_TYPE' | 'CX_SPECS__UNPARSEABLE_SPEC' | 'ADM__INVALID_CUSTOMER_ID' | 'ADM__INVALID_CORPUS_ID' | 'ADM__INVALID_ENCODER_ID' | 'ADM__INVALID_ROLE_ID' | 'ADM__ROLE_ALREADY_EXISTS' | 'ADM__ONLY_ONE_OWNER_SUPPORTED' | 'ADM__INVALID_PERMISSION' | 'ADM__ROLECREATION_FAILURE' | 'ADM__USER_EMAIL_NOT_AVAIALBLE' | 'ADM__USERNAME_NOT_AVAILABLE' | 'ADM__SIGNUP_MISSING_NAME' | 'ADM__SIGNUP_MISSING_ORG' | 'ADM__SIGNUP_MISSING_EMAIL' | 'ADM__SIGNUP_MISSING_PAYMENT' | 'ADM__SIGNUP_MISSING_PLAN' | 'ADM__SIGNUP_MISSING_PASSWORD' | 'ADM__SIGNUP_INVALID_NAME' | 'ADM__SIGNUP_INVALID_ORG' | 'ADM__SIGNUP_INVALID_EMAIL' | 'ADM__SIGNUP_INVALID_PAYMENT' | 'ADM__SIGNUP_INVALID_PLAN' | 'ADM__SIGNUP_INVALID_PASSWORD' | 'ADM__SIGNUP_INVALID_ACCOUNT_ALIAS' | 'ADM__SIGNUP_INVALID_EMAIL_VALIDATION_CODE' | 'ADM__SIGNUP_MISSING_COUNTRY_CODE' | 'ADM__SIGNUP_ROOT_EMAIL_NOT_AVAILABLE' | 'ADM__CUST_MARK_DELETE_FAILED' | 'ADM__CUST_FAISS_DEALLOC_FAILED' | 'ADM__CUST_ALREADY_ACTIVE' | 'ADM__CUST_REACTIVATE_FAILED' | 'ADM__CUST_ENABLEMENT_FAILED' | 'ADM__CORPUS_LIMIT_REACHED' | 'ADM__STRIPE_CARD_DECLINED' | 'ADM__STRIPE_PROCESSING_ERROR' | 'ADM__EMAIL_VALIDATION_REQUEST_NOT_FOUND' | 'ADM__EMAIL_NOT_VALIDATED' | 'ADM__CHANGE_PLAN__NO_CURRENT_PLAN' | 'ADM__CHANGE_PLAN__REQUIRES_MANUAL_CHANGE' | 'ADM__CHANGE_PLAN__INVALID_PLAN_ID' | 'ADM__CHANGE_PLAN__NO_PAYMENT_SOURCE' | 'ADM__CHANGE_PLAN__INVALID_EFFECTIVE_DATE' | 'ADM__CHANGE_PLAN__CONFLICTING_CHANGE' | 'SCM__MISCONFIGURED_CONNECTION' | 'STATS_DB_READ_FAILURE' | 'VDB__TEXT_READ_FAILURE' | 'REBUILD__LOW_RECALL' | 'REBUILD__INDEX_UPLOAD_FAILURE' | 'REBUILD__UPDATE_JOURNAL_FAILURE' | 'REBUILD__UPDATE_FAISSPARAMS_FAILURE' | 'REBUILD__NO_DATA' | 'REBUILD__EVALUATION' | 'IDX__TRANSIENT_PARTIAL_DELETION_FAILURE' | 'IDX__PERMANENT_PARTIAL_DELETION_FAILURE' | 'CALB__INVALID_JSON' | 'CALB__INVALID_SPEC' | 'CALB__UNREGISTERED_TYPE' | 'CALB__MISSING_SPEC' | 'CALB__MISSING_TYPE' | 'CALB__UNPARSABLE_SPEC'
    - `statusDetail` string
  - `quotaConsumed` VectaraStorageQuota
    - `numChars` string, int64 — The number of chars from the document that consumed the storage quota.
    - `numMetadataChars` string, int64 — The number of chars in the metadata of the document that consumed the storage quota.

## Other responses

- `default` — An unexpected error response.

---

[API](https://skmtc.net/vectara/apis/vectara-rest-api.md) · [All operations](https://skmtc.net/vectara/apis/vectara-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vectara/vectara-rest-api/revisions/d4c8fc1d0e7a/schema)
