Skip to main content
POST
/
upload
curl -X POST "http://localhost:8080/upload" \
  -H "Content-Type: application/json" \
  -d '{
    "store_mode": "text",
    "embedding_model": "BAAI/bge-base-en-v1.5",
    "items": [
      {
        "id": "doc-1",
        "text": "Hello world",
        "vector": [0.01, -0.02, "... 768 floats ..."]
      }
    ]
  }'
{
  "status": "success",
  "message": "Items uploaded successfully.",
  "total": 1,
  "dimension": 768,
  "store_mode": "text"
}
{
  "status": "failure",
  "message": "Item limit exceeded: max 10000, current 10000, requested 1 new items.",
  "items": 10000,
  "max_items": 10000,
  "requested_new": 1
}

Overview

Upload or replace items keyed by id. Re-uploading an existing id updates the embedding and does not consume additional quota. On the first upload to an empty store, store_mode is required. Dimension and mode are locked afterward.
store_mode
string
Required when the store is empty: "text" or "vector".
embedding_model
string
Optional for text stores. Defaults to BAAI/bge-base-en-v1.5.
items
array
required
Non-empty array of item objects.
Each item object:
id
string
required
Item id. Alias: item_id.
vector
array
required
Float embedding matching the store dimension (768 for text mode).
text
string
Optional text stored with the item and returned in search results.
curl -X POST "http://localhost:8080/upload" \
  -H "Content-Type: application/json" \
  -d '{
    "store_mode": "text",
    "embedding_model": "BAAI/bge-base-en-v1.5",
    "items": [
      {
        "id": "doc-1",
        "text": "Hello world",
        "vector": [0.01, -0.02, "... 768 floats ..."]
      }
    ]
  }'
{
  "status": "success",
  "message": "Items uploaded successfully.",
  "total": 1,
  "dimension": 768,
  "store_mode": "text"
}
{
  "status": "failure",
  "message": "Item limit exceeded: max 10000, current 10000, requested 1 new items.",
  "items": 10000,
  "max_items": 10000,
  "requested_new": 1
}