---
title: "Put Addon Enabled"
method: PUT
path: "/v1/projects/{project_id}/in-context-addon/enabled"
tags: ["in-context"]
---

# Put Addon Enabled

`PUT /v1/projects/{project_id}/in-context-addon/enabled`

## Request

- Base URL: `https://api.sonenta.dev`
- URL: `https://api.sonenta.dev/v1/projects/{project_id}/in-context-addon/enabled`
- Auth: none declared

Flip the project's in-context add-on opt-in toggle.

Validation: enabling requires the parent org's `in_context_addon.active`
to be True — else 403 (buy the add-on first). Disabling is always allowed
(so a project can opt out even after the org's subscription lapsed).

RBAC: ProjectAdmin gate (org-admin/owner auto-promote via rbac inheritance).

Idempotent: a request whose value equals the stored flag returns 200 with
the current state and writes no audit row.

## Path parameters

- `project_id` string, required

## Request body

- InContextEnabledIn
  - `enabled` boolean, required

## Response `200`

Successful Response

- InContextAddonStateOut: Resolved in-context add-on state for ONE project. Composed of (a) the parent org's entitlement (`isActive`, `sku`), (b) the project's per-project opt-in (`enabled`), and (c) the current ToS version (`tosVersion`) the SDK should present. camelCase contract throughout (avoids the snake_case `is_active` gotcha from the feedback add-on).
  - `isActive` boolean, required
  - `sku` 'in_context', nullable, required
  - `enabled` boolean, required
  - `tosVersion` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/sonenta/apis/sonenta-api.md) · [All operations](https://skmtc.dev/sonenta/apis/sonenta-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sonenta/apis/sonenta-api/revisions/f853ea49fb05?raw)
