Skip to content
POST /bundle/{id}/version

Requires edit access. Seals the app as it is now into an immutable version. Send the values from the preview you reviewed: a different `items_revision` is 409 `bundle_items_conflict`; `draft_revision`, when sent, guards the skill, description and slot labels (409 `bundle_draft_conflict`); `content_hash`, when sent, guards the items themselves, such as a dashboard or workflow draft edited after the preview (409 `bundle_content_conflict`). Omitting the two optional fields skips those checks. Collections whose rows would be copied must be named in `accept_rows` (409 `bundle_rows_not_accepted`).

Path Parameters

idstring
required·

Resource id

Request Body

accept_rowsstring[]

Collection keys whose rows may be copied into the version.

content_hashstring

Optional: content_hash from the preview.

draft_revisioninteger

Optional: draft_revision from the preview.

items_revisioninteger
notesstring
curl -X POST 'https://api.elaichi.ai/bundle/<id>/version' \
  -H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"items_revision":0,"draft_revision":0,"content_hash":"your_content_hash","notes":"your_notes","accept_rows":[]}'
const body = {
  "items_revision": 0,
  "draft_revision": 0,
  "content_hash": "your_content_hash",
  "notes": "your_notes",
  "accept_rows": []
};

const response = await fetch('https://api.elaichi.ai/bundle/<id>/version', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(body),
});

const data = await response.json();
console.log(data);
import os
import requests

url = "https://api.elaichi.ai/bundle/<id>/version"
headers = {
    "Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
    "Content-Type": "application/json",
}
payload = {
    "items_revision": 0,
    "draft_revision": 0,
    "content_hash": "your_content_hash",
    "notes": "your_notes",
    "accept_rows": []
}

response = requests.post(url, headers=headers, json=payload)
print(response.json())