> ## Documentation Index
> Fetch the complete documentation index at: https://docs.moorcheh.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload

> Upload text documents or precomputed vectors.

## Text documents (SDK)

Embeds locally with BGE and uploads to a **text** store (768 dimensions):

```python theme={null}
resp = edge.upload_documents([
    {"id": "doc-1", "text": "Hello world"},
])
print(resp["total"], resp["store_mode"])
```

## Precomputed vectors (SDK)

```python theme={null}
resp = edge.upload_vectors([
    {"id": "item-1", "vector": [...], "text": "Optional label"},
])
print(resp["total"], resp["dimension"])
```

## Low-level upload (SDK)

```python theme={null}
resp = edge.upload_items(
    [{"id": "a", "vector": [...], "text": "..."}],
    store_mode="text",
    embedding_model="BAAI/bge-base-en-v1.5",
)
```

## HTTP client

```python theme={null}
resp = client.upload({
    "store_mode": "vector",
    "items": [
        {"id": "item-1", "vector": [...]},
    ],
})
```

## Quota errors

When the store is full, the server returns **409**. Catch `MoorchehEdgeApiError`:

```python theme={null}
except MoorchehEdgeApiError as exc:
    if exc.is_item_limit_exceeded:
        print(exc.body)
```

See [API: Upload](/api-references/upload).
