Show: All versions v2 only
The Collections API is a deprecated v1 compatibility surface for older clients and SDKs. Internally, collections and buckets refer to the same underlying storage object, and collection search delegates to bucket search.
Note: For new integrations, use Buckets and POST /v2/buckets/\{bucket_id\}/search instead of the routes documented here.
Version Status Path prefix Guidance v1 Deprecated /v1/collections/*Compatibility only. No new features will be added. v2 Current /v2/buckets/*Use for all new integrations.
The v1 collection search endpoint returns Deprecation: true, Warning, and Link successor-version headers pointing to POST /v2/buckets/\{bucket_id\}/search.
All collection API endpoints require an API key in the Authorization header:
Authorization: Bearer sch_xxxxxxxxxxxxxxxxxxxx
Each endpoint also requires a specific API key scope:
Scope Access collections:manageCreate and delete collections. collections:readList collections, get a collection, or read stats. collections:useUpsert or delete vectors. embedEmbed and upsert documents (/documents and /add). querySearch a collection.
Dashboard session routes under /v1/organizations/\{org_id\} require a signed-in user who is a member of the target organization.
Field Type Description idstringUnique collection identifier. namestringHuman-readable collection name. dimensionintegerEmbedding dimension of the collection. modelstringEmbedding model used for the collection. backendstringVector backend, for example engine. vector_countintegerNumber of indexed vectors.
Create a new collection. The collection name must be unique within the organization.
Field Type Required Default Description namestringYes — Collection name. dimensionintegerYes — Vector dimension for the collection. modelstringNo schift-embed-1-smallEmbedding model to use. backendstringNo engineVector backend. Supported values: engine, pgvector, weaviate, qdrant, pinecone, milvus, chroma, elasticsearch, redis, mongodb.
"model" : " schift-embed-1-small " ,
"model" : " schift-embed-1-small " ,
Status Cause 400Invalid backend or request body. 403API key lacks the collections:manage scope. 409A collection with this name already exists.
List collections for the authenticated organization.
"model" : " schift-embed-1-small " ,
Status Cause 403API key lacks the collections:read scope.
Get a single collection by name.
Parameter Type Description namestringCollection name.
"model" : " schift-embed-1-small " ,
Status Cause 403API key lacks the collections:read scope. 404Collection not found.
Return the current vector count and metadata for a collection. The count is read directly from the vector backend and the stored count is refreshed.
Parameter Type Description namestringCollection name.
"model" : " schift-embed-1-small " ,
Status Cause 403API key lacks the collections:read scope. 404Collection not found.
Delete a collection and drop its vector table.
Parameter Type Description namestringCollection name.
Returns 204 No Content on success.
Status Cause 403API key lacks the collections:manage scope. 404Collection not found.
Upsert raw vectors into a collection. Each vector id is replaced if it already exists.
Note: Maximum batch size is 2048 vectors per request.
Parameter Type Description collectionstringCollection name.
Field Type Required Description vectorsobject[]Yes Array of vector items. vectors[].idstringYes Unique vector identifier. vectors[].valuesnumber[]Yes Embedding values. Must match the collection dimension. vectors[].metadataobjectNo Free-form metadata.
"values" : [ 0.01 , -0.02 , 0.03 ],
"metadata" : { "source" : " faq " }
Status Cause 400Batch size exceeds 2048, or vector dimension does not match the collection. 402Quota exceeded. 403API key lacks the collections:use scope. 404Collection not found.
Delete specific vectors from a collection by their IDs.
Parameter Type Description collectionstringCollection name.
Field Type Required Description idsstring[]Yes Vector IDs to delete. Must not be empty.
"ids" : [ " vec-1 " , " vec-2 " ]
Status Cause 400ids is empty.403API key lacks the collections:use scope. 404Collection not found. 501The configured backend does not support vector deletion by ID.
Embed documents and store the resulting vectors in a collection. The request body includes the target embedding model.
Note: Maximum batch size is 2048 documents per request.
Parameter Type Description collectionstringCollection name.
Field Type Required Description documentsobject[]Yes Array of document items. documents[].idstringNo Document identifier. Generated if omitted. documents[].textstringYes Text to embed. documents[].metadataobjectNo Free-form metadata. modelstringYes Embedding model ID.
"text" : " How do I reset my password? " ,
"metadata" : { "category" : " support " }
"model" : " schift-embed-1-small "
Status Cause 400Batch size exceeds 2048, or the embedding model is unknown. 402Quota exceeded. 403API key lacks the required collections:use or embed scope. 404Collection not found.
Embed documents and add them to a collection. If the collection does not exist, it is auto-created with dimension=1024, model=schift-embed-1-small, and backend=engine.
Note: Maximum batch size is 2048 documents per request.
Parameter Type Description namestringCollection name.
Field Type Required Default Description documentsstring[]Yes — Raw text strings to embed. Must not be empty. idsstring[]No nullOptional document IDs. metadataobject[]No nullOptional metadata objects, one per document. taskstringNo nullEmbedding task. One of: retrieval_query, retrieval_document, semantic_similarity, question_answering, clustering, classification, code_retrieval. modelstringNo schift-embed-1-smallEmbedding model ID.
" How do I reset my password? " ,
" Where can I download invoices? "
"model" : " schift-embed-1-small "
"collection" : " legacy-faq " ,
Status Cause 400documents is empty or batch size exceeds 2048.402Quota exceeded. 403Embedding entitlement limit reached, or API key lacks the required scope.
Search a collection. This endpoint is a compatibility wrapper over bucket search and returns a simplified response.
Parameter Type Description namestringCollection name.
Field Type Required Default Description querystringNo* — Text query. Either query or query_vector is required. query_vectornumber[]No* — Pre-computed query vector. taskstringNo nullEmbedding task. See valid task values . top_kintegerNo 10Number of results to return. Max 1000. filterobjectNo nullMetadata filter. modelstringNo nullEmbedding or rerank model override. modestringNo hybridSearch mode: vector or hybrid. rerankbooleanNo falseEnable reranking. rerank_top_kintegerNo nullTop-k cutoff for reranking. rerank_modelstringNo nullReranker model ID. temporalstringNo nullTemporal filter: before, after, between, as_of, or latest. temporal_startintegerNo nullRequired when temporal is set (except latest). temporal_endintegerNo nullRequired when temporal=between. advancedobjectNo nullAdvanced scoring params: graph_weight, temporal_weight, hit_weight, vector_weight, bm25_weight, hops, temporal_half_life_days. expand_contextobjectNo nullContext expansion params: window, max_extra, score_decay.
"query" : " reset password " ,
"filter" : { "category" : " support " },
"collection" : " legacy-faq " ,
"text" : " How do I reset my password? " ,
"metadata" : { "category" : " support " },
The response also includes deprecation headers pointing to the v2 bucket search successor:
Warning : 299 - "Deprecated search endpoint; migrate to /v2/buckets/{bucket_id}/search"
Link : </v2/buckets/abc123def456/search>; rel="successor-version"
Status Cause 400Neither query nor query_vector provided, or invalid temporal parameters. 402Quota exceeded. 403Search entitlement limit reached, or API key lacks the required scope. 404Collection not found.
These routes are used by the Schift dashboard and rely on session authentication. The calling user must be a member of \{org_id\}.
List collections in the organization.
Get a single collection in the organization.
Create a collection in the organization.
Field Type Required Default Description namestringYes — Collection name. modelstringNo schift-embed-1-smallEmbedding model. dimensionintegerNo model default or 1024 Vector dimension. backendstringNo engineVector backend.
Status Cause 400Missing name or unsupported backend. 403User is not an organization member, or the collection limit for the plan was reached.
Delete a collection in the organization. Returns 204 No Content.
Return collection stats, including the live vector count.
List organization-level VectorDB configurations.
Create or update a VectorDB configuration for a backend.
Field Type Required Description collection_idstringYes Target collection ID. backendstringYes Backend name. Must be supported. endpointstringNo Backend endpoint URL. api_keystringNo Backend credentials. extraobjectNo Additional backend-specific options.
Status Cause 400Unsupported backend. 403User is not an organization member.