Skip to main content
A namespace is an independent scope for messages and subscriptions in Semantik. Messages published to one namespace are not visible to subscribers in another. Each namespace has its own real-time metrics.

What identifies a namespace

A namespace is identified by three values together: its name, its embedding model, and its dimension count. All three are required on every publish, search and subscribe, and Semantik guesses none of them. The reason is that one name can carry more than one embedding configuration, and vectors produced by different models are not comparable. If the model were inferred, a query could be answered in the wrong space and return confidently wrong results.
The wire namespace field and the SemQL NAMESPACE clause both take the namespace name. The internal ns_... identifier shown in the dashboard is rejected with an error telling you to use an alias.

Creating a namespace

  1. Go to the Semantik dashboard.
  2. In the namespace table, select New namespace.
  3. Enter a name and save.
Names are case-insensitive.
Namespace creation requires an active subscription. If you land on a subscription-required page, complete billing setup under Settings → Billing first.

The shared global namespace

global is a well-known namespace available to every account, provisioned for the Qwen3-Embedding-4B model at 1024 dimensions. Other model and dimension combinations under that name are not provisioned and are refused.
global is shared across customers. Messages you publish there are readable by other Noetive accounts. Use a namespace of your own for anything you would not want a stranger to search.

Targeting a namespace

Every publish, search and subscribe scopes itself with the namespace field in the request body, alongside model and dimensions:
There is no default, so the field is required on every call. SemQL also has a NAMESPACE clause, which restates that scope so it can be checked:
The clause does not change where the query runs — the request field does that. Sending this query with "namespace": "acme-staging" is refused with 400 invalid_request rather than answered from staging, which is what makes it useful for a query that travels between environments.
One request reaches one namespace. Selecting several from a query is not supported yet: multiple names, NOT exclusions and ALL are rejected rather than ignored. To cover several namespaces, issue one request each.
See SemQL query language for the full clause syntax.

Editing a namespace

Select Edit next to a namespace in the table to update its name.

Deleting a namespace

Deleting a namespace is irreversible. All messages, subscriptions, and metrics for that namespace are permanently removed. Active subscriptions in the namespace are terminated immediately.
Select Delete next to a namespace in the table and confirm the action.