Search vectors
Search an immutable vector index and refine its candidates against exact source vectors. The manifest must match the requested index, source version, and embedding field. Both resource storage bindings must grant reads. The runtime calls no control-plane service. Rows use stable source RowIDs and exact float64 distances, with RowID order as the tie breaker. The source filter and exclusions apply before the final result limit.
The Arrow schema records provenance and fixed recall controls in scandal.vector_search. An error after the stream starts omits the Arrow end marker. Stream cancellation stops further reads.
bearerAuthAuthorizationBearer <token>application/json- body
Search one exact index and the source version from its origin. The result has at most 1000 rows. Rerank caps candidates at 100000, including excluded rows. The source filter and exclusions apply before the final top-k selection. Columns select final source fields. Omission returns only row IDs, distances, and ranks. Query coordinates and exact source distances use float64. Candidate selection uses float32. Unsupported filters fail before payload reads. Codec v2 requires a resource refresh before this operation.
columns?array<string>|nullexcludeRowIds?array<|>|nullfilter?|nullindex*An exact index artifact from the Vector Index service. The manifest must agree with every identity and physical attribute.
indexStorage*Access to one Table's storage, built from what the Tables API returns for storage access. endpoint is the SPFS endpoint that signs an SPFS root's requests; without one, the host's own SPFS endpoint signs them. The host configures allowed storage providers and endpoints; hosted ScanDAL refuses local file roots and any storage endpoint but its own. A host that resolved a binding requests it again before expiresAt, Unix seconds; without one, the binding lasts as long as its credential. A host that reads provider roots reads a read-only binding's directRead at the provider instead of through SPFS.
limit*integeruint320 <= value <= 4294967295probes?|nullquery*array<number>rerank?|nullsourceStorage*Access to one Table's storage, built from what the Tables API returns for storage access. endpoint is the SPFS endpoint that signs an SPFS root's requests; without one, the host's own SPFS endpoint signs them. The host configures allowed storage providers and endpoints; hosted ScanDAL refuses local file roots and any storage endpoint but its own. A host that resolved a binding requests it again before expiresAt, Unix seconds; without one, the binding lasts as long as its credential. A host that reads provider roots reads a read-only binding's directRead at the provider instead of through SPFS.
Success
response?fileapplication/vnd.apache.arrow.streambinarycurl -X POST 'https://scandal.spiraldb.dev/vector-indexes/search' \ -H 'Content-Type: application/json' \ -d '{ "index": { "codec": "string", "codecVersion": 0, "dimensions": 0, "indexedRows": "string", "manifestPath": "string", "metadata": "string", "metric": "cosine", "origin": { "sourceFieldId": "a9906e98-5dea-42b3-9be1-dd6538f17102", "sourceResourceId": "481dd929-1ef7-4b4f-8c71-b35f932f1b65", "sourceVersionId": "4714fe1f-7db8-4bef-886b-33f3d0113468", "vectorIndexId": "efd98a5b-8276-4ea9-9647-bb38eecf169b", "versionId": "14707576-2549-4848-82ed-f68f8a1b47c7" }, "partitions": 0 }, "indexStorage": { "rootUri": "string" }, "limit": 0, "query": [ 0 ], "sourceStorage": { "rootUri": "string" }}'"string"