Lumiqa Docs

approve_content

Editorial write

What it does

Marks a content item as Approvato and copies its latest review-area upload into the final-cut (VF) area. This is what makes deliver_asset work later.

The promotion is the same code path the staff dashboard uses when a reviewer clicks Approve — no parallel R2 pipeline, no duplicate state.

Input schema

NameTypeRequiredDefaultDescription
id string required Content id to approve.

Example call

json{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "approve_content",
    "arguments": {
        "id": "c_abc123def456"
    }
  }
}

Response shape

json{
  "ok": true,
  "id": "c_abc123def456",
  "previous_stato": "Attesa Approvazione",
  "new_stato": "Approvato",
  "promotion": {
    "promoted_upload_id": "u_xyz789abcdef",
    "vf_r2_key": "your-slug/vf/Brand/Title/...mp4",
    "from_review_r2_key": "your-slug/review/Brand/Title/...mp4"
  }
}

Usage from Claude Desktop

prompt"Approve c_abc123 — the team signed off on the third cut this morning."

Usage from Python

pythonimport requests

LUMIQA = "https://lumiqa.io/mcp/your-slug"
HEADERS = {"Authorization": "Bearer lk_live_xxxxxxxxxxxx"}

r = requests.post(LUMIQA, headers=HEADERS, json={
    "jsonrpc": "2.0", "id": 1,
    "method": "tools/call",
    "params": {
        "name": "approve_content",
        "arguments": {"id": "c_abc123"}
    },
})
print(r.json())

Usage from Node

javascriptconst r = await fetch("https://lumiqa.io/mcp/your-slug", {
  method: "POST",
  headers: {
    "Authorization": "Bearer lk_live_xxxxxxxxxxxx",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    jsonrpc: "2.0", id: 1,
    method: "tools/call",
    params: {
      name: "approve_content",
      arguments: { id: "c_abc123" },
    },
  }),
});
const data = await r.json();
console.log(data);

Required env vars / integrations

Known limitations