Skip to main content
POST
Register a persistent subscription and open an SSE match stream

Authorizations

Authorization
string
header
required

API key bearer token. Obtain from the Noetive dashboard. Pass as: Authorization: Bearer <api-key>.

Body

application/json
query
string
required

SemQL query text for subscription matching. Subject to the SemQL query limits — see the "SemQL query limits" section in the API description.

Two clause shapes are rejected here that /v1/search accepts: a query with no DISTANCE, DIRECTION or CONTRAST clause (it would deliver the namespace's entire stream), and any use of TOP (it ranks within a result set, and a stream has none — use WITHIN instead). Both return 400 invalid_request.

namespace
string
required

Target namespace alias — a registered name (e.g. articles) or the well-known global alias. Required; there is no default. Every request is validated against the namespace's configured model and dimensions; a mismatch returns 400 invalid_request.

Pass the alias, not the ns_... identifier shown in the dashboard — a raw identifier is rejected with 400 invalid_request.

Maximum string length: 64
Pattern: ^[A-Za-z0-9_-]+$
model
string
required

Embedding model name. Required; there is no default. Must match the model configured on the namespace, or the request fails with 400 model_not_provisioned.

dimensions
integer
required

Embedding vector dimensionality. Required; there is no default. Must match the dimensionality configured on the namespace for model, or the request fails with 400 model_not_provisioned.

Required range: 1 <= x <= 4096

Response

SSE stream of match events. Content-Type: text/event-stream.

  • First event: event: subscribed, data is a SubscribedEvent.
  • Subsequent events: event: match, data is a MatchEvent.

Raw SSE stream. Payload schemas for each event type are SubscribedEvent and MatchEvent.