Actian Corporation Search API
Vector similarity search operations
Vector similarity search operations
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/actian:actian-search-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Actian VectorAI DB Search API
description: Vector similarity search operations for Actian VectorAI DB.
version: 1.0.0
contact:
name: Actian Corporation
url: https://www.actian.com
servers:
- url: http://localhost:6573
description: Local development server (REST API)
- url: https://api.vectorai.actian.com
description: Production server
security:
- bearerAuth: []
tags:
- name: Search
description: Vector similarity search operations
paths:
/collections/{collection_name}/points/search:
post:
tags:
- Search
summary: Search vectors
description: Find the most similar vectors in a collection using approximate nearest neighbor search. Supports score thresholds, payload filtering, and tunable HNSW parameters.
operationId: search_points
parameters:
- name: collection_name
in: path
required: true
schema:
type: string
description: The name of the collection to search.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- vector
properties:
vector:
type: array
items:
type: number
example:
- 0.1
- 0.2
- 0.3
- 0.4
description: The query vector to search for. The number of dimensions must match the collection's configured vector size.
limit:
type: integer
default: 10
example: 5
description: Maximum number of results to return. Defaults to 10.
offset:
type: integer
default: 0
example: 0
description: Number of results to skip for pagination. Use with `limit` to page through results.
score_threshold:
type: number
example: 0.7
description: Minimum similarity score for results. Only points with scores at or above this threshold are returned.
filter:
type: object
description: Optional filter to narrow search results based on payload metadata. See the Filters API for syntax.
with_payload:
type: boolean
default: true
example: true
description: Whether to include payload metadata in the response.
with_vector:
type: boolean
default: false
example: false
description: Whether to include vector data in the response. Set to `false` to reduce response size.
params:
type: object
description: Advanced search parameters for tuning search quality and performance.
properties:
hnsw_ef:
type: integer
example: 128
description: Controls the number of candidates HNSW evaluates during search. Higher values improve accuracy at the cost of latency.
exact:
type: boolean
example: false
description: If `true`, performs an exact brute-force search instead of approximate. Slower but guarantees finding true nearest neighbors.
examples:
basic_search:
summary: Basic search
value:
vector:
- 0.1
- 0.2
- 0.3
- 0.4
limit: 5
offset: 0
with_payload: true
with_vector: false
search_with_threshold:
summary: With score threshold
value:
vector:
- 0.1
- 0.2
- 0.3
- 0.4
limit: 10
offset: 0
score_threshold: 0.7
with_payload: true
with_vector: false
params:
hnsw_ef: 128
exact: false
search_with_filter:
summary: With payload filter
value:
vector:
- 0.1
- 0.2
- 0.3
- 0.4
limit: 10
offset: 0
filter:
must:
- key: category
match:
value: electronics
with_payload: true
with_vector: false
responses:
'200':
description: Search results
content:
application/json:
schema:
type: object
properties:
usage:
type: object
properties:
hardware:
type:
- object
- 'null'
description: Hardware resource counters for the operation, including CPU, payload I/O, payload index I/O, and vector I/O metrics.
time:
type: number
format: double
example: 5.53e-05
description: Time spent to process this request, in seconds.
status:
type: string
example: ok
description: Operation status.
result:
type: array
items:
type: object
properties:
id:
oneOf:
- type: integer
- type: string
example: 1
description: The point's unique identifier.
version:
type: integer
example: 0
description: The point's version number.
score:
type: number
example: 0.9843740463256836
description: Similarity score between the query vector and this point.
payload:
type:
- object
- 'null'
example: null
description: Payload metadata, or null if `with_payload` is false.
vector:
type:
- array
- 'null'
items:
type: number
example: null
description: Vector data, or null if `with_vector` is false.
example:
usage:
hardware: null
time: 5.53e-05
status: ok
result:
- id: 1
version: 0
score: 1
payload: null
vector: null
- id: 3
version: 0
score: 0.9843740463256836
payload: null
vector: null
- id: 2
version: 0
score: 0.9688639640808105
payload: null
vector: null
4XX:
description: Error response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-codeSamples:
- lang: Python
label: Basic search
source: "from actian_vectorai_client import VectorAIClient\nimport random\n\nwith VectorAIClient(\"localhost:6574\") as client:\n # Basic vector search\n query = [random.gauss(0, 1) for _ in range(64)]\n results = client.points.search(\"my_collection\", vector=query, limit=5)\n \n for r in results:\n print(f\"ID: {r.id}, Score: {r.score:.4f}\")\n print(f\"Payload: {r.payload.get('category')}\")\n"
- lang: Python
label: Search with score threshold
source: "from actian_vectorai_client import VectorAIClient\nimport random\n\nwith VectorAIClient(\"localhost:6574\") as client:\n # Search with minimum score\n query = [random.gauss(0, 1) for _ in range(64)]\n results = client.points.search(\n \"my_collection\",\n vector=query,\n limit=10,\n score_threshold=0.7\n )\n print(f\"Found {len(results)} results above threshold\")\n"
- lang: Python
label: Search with custom HNSW
source: "from actian_vectorai_client import VectorAIClient, SearchParams\nimport random\n\nwith VectorAIClient(\"localhost:6574\") as client:\n # Search with custom HNSW parameters\n query = [random.gauss(0, 1) for _ in range(64)]\n results = client.points.search(\n \"my_collection\",\n vector=query,\n limit=5,\n params=SearchParams(hnsw_ef=256, exact=False)\n )\n print(f\"Found {len(results)} results\")\n"
- lang: Python
label: Exact search
source: "from actian_vectorai_client import VectorAIClient, SearchParams\nimport random\n\nwith VectorAIClient(\"localhost:6574\") as client:\n # Exact (brute-force) search\n query = [random.gauss(0, 1) for _ in range(64)]\n results = client.points.search(\n \"my_collection\",\n vector=query,\n limit=5,\n params=SearchParams(exact=True)\n )\n for r in results:\n print(f\"ID: {r.id}, Score: {r.score:.4f}\")\n"
- lang: JavaScript
label: Basic search
source: "import { VectorAIClient } from '@actian/vectorai-client';\n\nconst client = new VectorAIClient('localhost:6574');\n\nconst results = await client.points.search('my_collection', [0.1, 0.2, 0.3, 0.4], {\n limit: 5,\n withPayload: true,\n});\nfor (const r of results) {\n console.log(`id=${r.id} score=${r.score.toFixed(4)} payload=${JSON.stringify(r.payload)}`);\n}\n\nclient.close();\n"
- lang: JavaScript
label: Filtered search
source: "import { VectorAIClient, Field } from '@actian/vectorai-client';\n\nconst client = new VectorAIClient('localhost:6574');\n\nconst filter = Field.of('category').eq('electronics');\nconst results = await client.points.search('my_collection', [0.1, 0.2, 0.3, 0.4], {\n limit: 5,\n filter,\n withPayload: true,\n});\nconsole.log(`Found ${results.length} results`);\n\nclient.close();\n"
- lang: cURL
label: Search
source: "curl -X POST \"http://localhost:6573/collections/my_collection/points/search\" \\\n -H \"Content-Type: application/json\" \\\n -H 'Authorization: Bearer <admin-jwt-or-access-token>' \\\n -d '{\n \"vector\": [0.1, 0.2, 0.3, 0.4],\n \"limit\": 5\n }'\n"
/collections/{collection_name}/points/search/batch:
post:
tags:
- Search
summary: Batch search
description: Execute multiple search queries in a single request. This is more efficient than sending individual search requests when you have several queries to run.
operationId: search_batch
parameters:
- name: collection_name
in: path
required: true
schema:
type: string
description: The name of the collection to search.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- searches
properties:
searches:
type: array
description: Array of search request objects to execute.
items:
type: object
required:
- vector
properties:
vector:
type: array
items:
type: number
example:
- 0.1
- 0.2
- 0.3
- 0.4
description: The query vector for this search.
limit:
type: integer
example: 3
description: Maximum number of results for this search.
offset:
type: integer
example: 0
description: Number of results to skip for pagination.
score_threshold:
type: number
example: 0.7
description: Minimum similarity score for results.
filter:
type: object
description: Optional filter conditions for this search.
with_payload:
type: boolean
example: true
description: Whether to include payload metadata in the response.
with_vector:
type: boolean
example: false
description: Whether to include vector data in the response.
examples:
batch_search:
summary: Multiple queries
value:
searches:
- vector:
- 0.1
- 0.2
- 0.3
- 0.4
limit: 3
with_payload: true
with_vector: false
- vector:
- 0.5
- 0.6
- 0.7
- 0.8
limit: 3
with_payload: true
with_vector: false
- vector:
- 0.9
- 0.8
- 0.7
- 0.6
limit: 3
with_payload: true
with_vector: false
responses:
'200':
description: Batch search results
content:
application/json:
schema:
type: object
properties:
usage:
type: object
properties:
hardware:
type:
- object
- 'null'
description: Hardware resource counters for the operation, including CPU, payload I/O, payload index I/O, and vector I/O metrics.
time:
type: number
format: double
example: 7.06e-05
description: Time spent to process this request, in seconds.
status:
type: string
example: ok
description: Operation status.
result:
type: array
description: Array of result arrays, one per search query.
items:
type: array
items:
type: object
properties:
id:
oneOf:
- type: integer
- type: string
example: 1
description: The point's unique identifier.
version:
type: integer
example: 0
description: The point's version number.
score:
type: number
example: 0.9843740463256836
description: Similarity score between the query vector and this point.
payload:
type:
- object
- 'null'
example: null
description: Payload metadata, or null if `with_payload` is false.
vector:
type:
- array
- 'null'
items:
type: number
example: null
description: Vector data, or null if `with_vector` is false.
example:
usage:
hardware: null
time: 7.06e-05
status: ok
result:
- - id: 1
version: 0
score: 1
payload: null
vector: null
- id: 3
version: 0
score: 0.9843740463256836
payload: null
vector: null
- id: 2
version: 0
score: 0.9688639640808105
payload: null
vector: null
- - id: 2
version: 0
score: 1
payload: null
vector: null
- id: 3
version: 0
score: 0.9973233938217163
payload: null
vector: null
4XX:
description: Error response
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-codeSamples:
- lang: Python
label: Batch search
source: "from actian_vectorai_client import VectorAIClient\nimport random\n\nwith VectorAIClient(\"localhost:6574\") as client:\n # Execute multiple searches at once\n queries = [\n {\"vector\": [random.gauss(0, 1) for _ in range(64)], \"limit\": 3}\n for _ in range(3)\n ]\n batch_results = client.points.search_batch(\"my_collection\", queries)\n \n for i, results in enumerate(batch_results):\n ids = [r.id for r in results]\n print(f\"Query {i + 1}: top IDs = {ids}\")\n"
- lang: JavaScript
label: Batch search
source: "import { VectorAIClient } from '@actian/vectorai-client';\n\nconst client = new VectorAIClient('localhost:6574');\n\nconst batchResults = await client.points.searchBatch('my_collection', [\n { vector: [0.1, 0.2, 0.3, 0.4], limit: 3 },\n { vector: [0.5, 0.6, 0.7, 0.8], limit: 3 },\n]);\nconsole.log(`Batch search: ${batchResults.length} result sets`);\nfor (let i = 0; i < batchResults.length; i++) {\n console.log(` Query ${i}: ${batchResults[i].length} results`);\n}\n\nclient.close();\n"
- lang: cURL
label: Batch search
source: "curl -X POST \"http://localhost:6573/collections/my_collection/points/search/batch\" \\\n -H \"Content-Type: application/json\" \\\n -H 'Authorization: Bearer <admin-jwt-or-access-token>' \\\n -d '{\n \"searches\": [\n {\"vector\": [0.1, 0.2, 0.3, 0.4], \"limit\": 3},\n {\"vector\": [0.5, 0.6, 0.7, 0.8], \"limit\": 3}\n ]\n }'\n"
components:
schemas:
ErrorResponse:
type: object
properties:
status:
type: object
properties:
error:
type: string
time:
type: number
format: double
description: Time spent to process this request, in seconds.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: Admin JWT or access token for authenticating requests to VectorAI DB.