Skip to content

Upsert Vectors

POST/v5/vector-stores/{vector_store_name}/upsert

Insert new documents or update existing documents in a vector store.

Upsert Behavior: If a document ID already exists, it will be completely replaced with the new content and metadata. The previous document’s text, embedding, and all metadata fields are discarded. If the ID does not exist, a new document is created.

Document Content: Each document supports several modes:

  • content only: text is automatically embedded using the store’s configured model.
  • embedding only: pre-computed embedding vector is used directly. Dimension must match the store’s configuration.
  • Both content and embedding: the pre-computed embedding is stored and text is kept for retrieval/search.
  • Neither (metadata-only): only metadata is updated on an existing document without re-embedding. If the document does not exist, it will appear as a failure in the batch response.

A store created without an embedding model (dimensions-only) only accepts documents with pre-computed embedding.

Batch Operations: This endpoint supports batch operations with partial success handling and mixed document types (some with raw embeddings, some with content) in the same call.

Metadata: Supports nested metadata with string, number, boolean, object, and array types. Null values are not permitted—omit the field or use an empty string instead.

Path ParametersExpand Collapse
vector_store_name: string

The name of the vector store

Body ParametersJSONExpand Collapse
vectors: array of object { id, content, embedding, metadata }

Array of documents to upsert

id: string

Unique document ID

content: optional TextContent { text, type }

Text content for documents.

text: string

Text content to be embedded

type: optional "text"

Content type identifier

embedding: optional array of number

Pre-computed embedding vector

metadata: optional map[unknown]

Key-value metadata

ReturnsExpand Collapse
failure_count: number

Number of failed documents

success_count: number

Number of successfully processed documents

failed: optional array of object { id, error }

Failed documents with their error messages

id: string

Document ID

error: string

Error message describing why the document failed

succeeded: optional array of string

IDs of successfully processed documents

Upsert Vectors

curl https://api.egp.scale.com/v5/vector-stores/$VECTOR_STORE_NAME/upsert \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $SGP_API_KEY" \
    -d '{
          "vectors": [
            {
              "id": "id"
            }
          ]
        }'
{
  "failure_count": 0,
  "success_count": 0,
  "failed": [
    {
      "id": "id",
      "error": "error"
    }
  ],
  "succeeded": [
    "string"
  ]
}
Returns Examples
{
  "failure_count": 0,
  "success_count": 0,
  "failed": [
    {
      "id": "id",
      "error": "error"
    }
  ],
  "succeeded": [
    "string"
  ]
}