---
title: "Create subscription version"
method: POST
path: "/v0/subscriptions/{subscription_id}/versions"
tags: ["Subscriptions"]
---

# Create subscription version

`POST /v0/subscriptions/{subscription_id}/versions`

## Request

- Base URL: `https://docs.quivr.thevibecompany.co` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.quivr.thevibecompany.co/v0/subscriptions/{subscription_id}/versions`
- Auth: HTTP bearer

Edit a Subscription by committing a new immutable Version that becomes current. It pins the current Version of the Subscription's own Saved Query (422 unknown_saved_query otherwise), an evaluator and a destination. It takes effect from its commit, recorded as its activation position with subscription.updated in every Corpus of the previous and new scope. Each later change is judged by the new Version, each earlier one by the Version effective before it. Nothing is backfilled and Matches keep the Version that produced them. Enabled state is unchanged. The evaluator, expression and configuration are checked as on creation (422 unsupported_evaluator, invalid_expression or invalid_subscription_configuration). Replay of the same key and request returns the same Version; a changed request is 409 idempotency_conflict. A deleted Subscription is 409 subscription_deleted.

## Path parameters

- `subscription_id` string, required

## Request body

- SubscriptionVersionCreate: New immutable configuration of an existing Subscription. The Saved Query and name are unchanged (rename changes the name); saved_query_version_id is the current Version of that Saved Query. Omit destination_id for no delivery, including when replacing a Version that had a destination; omission does not inherit the previous destination.
  - `idempotency_key` string, required
  - `saved_query_version_id` string, required
  - `evaluator` EvaluatorConfig, required: Pins an installed evaluator by plugin id and version, and its configuration. Evaluators are the subscription Contributions of the plugins pinned at startup (Plugin Protocol v0). The configuration must satisfy the evaluator's declared configuration schema.
    - `plugin_id` string, required
    - `version` string, required
    - `configuration` object, required
  - `destination_id` string

## Response `201`

Successful response

- SubscriptionVersion: Immutable Subscription configuration. Every Version keeps the Subscription's owner, absent for a global Subscription. destination_id is absent when this Version records Matches and change-feed notices without webhook delivery.
  - `subscription_id` string, required
  - `version_id` string, required
  - `saved_query_id` string, required
  - `saved_query_version_id` string, required
  - `evaluator` EvaluatorConfig, required: Pins an installed evaluator by plugin id and version, and its configuration. Evaluators are the subscription Contributions of the plugins pinned at startup (Plugin Protocol v0). The configuration must satisfy the evaluator's declared configuration schema.
    - `plugin_id` string, required
    - `version` string, required
    - `configuration` object, required
  - `destination_id` string
  - `owner` string: Subscription Owner, an opaque end-user reference defined by the client application (for example user-123). Quivr stores, filters and echoes it without interpreting it. At most 128 characters without control characters; none is reserved for the listing filter. A refused owner is 422 invalid_owner, in a creation body as in the listing filter.

## Other responses

- `default`: Structured error. Existing /v0 authentication, scope, pagination and idempotency semantics apply.

---

[API](https://skmtc.dev/thevibecompany/apis/quivr-http-api.md) - [All operations](https://skmtc.dev/thevibecompany/apis/quivr-http-api/llms.txt) - [OpenAPI document](https://skmtc.dev/thevibecompany/apis/quivr-http-api/revisions/4f4e30ba8f4e?raw)
