> ## Documentation Index
> Fetch the complete documentation index at: https://actianvectorai-ml-crtx-1153-academy-tutorial-rewrites.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# REST API overview

> Complete REST API documentation for VectorAI DB operations.

The VectorAI DB REST API provides a complete HTTP-based interface for managing collections, inserting and querying vectors, and performing advanced operations. All endpoints accept and return JSON, making it compatible with any programming language or HTTP client.

## Base URL

```
http://localhost:6573
```

For production deployments, use your VectorAI DB instance URL.

Port 6574 is used for gRPC connections. The REST API runs on port 6573.

## Authentication

Authentication is not required for local development. For production deployments, see the [Access Tokens](/api-reference/access-tokens/create-access-token) section for details on API keys and tokens.

## API endpoints overview

The REST API is organized into the following categories:

<CardGroup cols={2}>
  <Card title="Collections" icon="layer-group" href="/api-reference/rest/collections/collections/list-all-collections">
    Create, update, delete, and list vector collections.
  </Card>

  <Card title="Points" icon="circle-dot" href="/api-reference/rest/points/points/upsert-points">
    Insert, update, retrieve, and delete vector points.
  </Card>

  <Card title="Search" icon="magnifying-glass" href="/api-reference/rest/search/search/search-vectors">
    Perform vector similarity searches with filters and pagination.
  </Card>

  <Card title="Filters" icon="filter" href="/api-reference/rest/filters/filters/filter-examples">
    Filter search results based on payload conditions.
  </Card>

  <Card title="Error codes" icon="exclamation-triangle" href="/api-reference/error-codes">
    Error codes and exception types returned by the REST API.
  </Card>

  <Card title="Admin User" icon="user-shield" href="/api-reference/admin-user/create-admin-user">
    Create, reset password, and manage the admin user.
  </Card>

  <Card title="Access Tokens" icon="key" href="/api-reference/access-tokens/create-access-token">
    Create, list, rotate, and delete access tokens.
  </Card>
</CardGroup>

## Request format

All API requests should include the `Content-Type: application/json` header. Request bodies should be valid JSON.

The following example inserts a point into a collection.

```bash theme={null}
curl -X PUT http://localhost:6573/collections/my_collection/points \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer <admin-jwt-or-access-token>' \
  -d '{
    "points": [
      {
        "id": 1,
        "vector": [0.1, 0.2, 0.3, 0.4],
        "payload": {"category": "A"}
      }
    ]
  }'
```

## Response format

All API responses return JSON with a consistent structure that includes the operation status and timing.

### Success response

A successful response includes the operation status, timing, and result data.

```json theme={null}
{
  "usage": {
    "hardware": null
  },
  "time": 0.002308817,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "Completed"
  }
}
```

### Error response

An error response includes a message describing the issue.

```json theme={null}
{
  "status": {
    "error": "Collection not found: my_collection"
  },
  "time": 0
}
```

## Status codes

The REST API uses standard HTTP status codes to indicate the outcome of each request.

* `200 OK` - Request succeeded.
* `400 Bad Request` - Invalid request parameters.
* `404 Not Found` - Collection or resource not found.
* `409 Conflict` - Resource already exists.
* `500 Internal Server Error` - Server error.

## Python SDK

For a more ergonomic development experience with type safety and automatic connection management, consider using the [Python SDK](/sdks/python/quickstart). The SDK communicates over gRPC (port 6574) and provides the same operations available through the REST API.

```python theme={null}
from actian_vectorai import VectorAIClient, VectorParams, Distance

with VectorAIClient("localhost:6574") as client:
    # Create collection
    client.collections.create(
        "my_collection",
        vectors_config=VectorParams(size=128, distance=Distance.Cosine)
    )
```

## Next steps

* Explore [Collections API](/api-reference/rest/collections/collections/list-all-collections) to get started.
* Learn about [points operations](/api-reference/rest/points/points/upsert-points) for data management.
* Try [vector search](/api-reference/rest/search/search/search-vectors) to query your data.
* Check [error codes](/api-reference/error-codes) for troubleshooting.
