Update a starter question
Edits the text per language and the targeting, and switches the question on or off. The first edit of the text or the targeting of a generated question marks it `ai_generated_edited`, as in the dashboard; switching it on or off does not. A language the site does not serve is refused with `language_not_enabled`. When one request changes the content and the switch, each records its own audit entry.
Authorization
ApiKeyAuth A WorkOS org-scoped API key, created from the dashboard's organization settings page. Identifies the tenant every read and write is scoped to. Missing, malformed, unknown, revoked, expired, or non-organization-owned keys all return 401 (no distinction, so the response can't be used to probe which keys or org ids exist).
In: header
Path Parameters
The site id (prefixed site_). A site id that isn't yours is a 404, same as any other cross-tenant id.
The starter question id (prefixed stq_).
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Send at least one field. The text per language is merged: a language you send replaces that language, a language you send as null is removed, and a language you do not mention is kept. The first edit of the text or the targeting of a generated question marks it ai_generated_edited. source and sourcePageId cannot be set and are ignored.
Response Body
application/json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
application/problem+json
curl -X PATCH "https://example.com/api/v1/sites/string/starter-questions/string" \ -H "Content-Type: application/json" \ -d '{ "texts": { "en": { "label": "Is it fully waterproof?" } }, "enabled": true }'{ "data": { "id": "stq_01kvnwmagvf27rc9cze5rm9e1r", "position": -3, "enabled": true, "targeting": { "mode": "url_patterns", "pageTypes": [], "urlPatterns": [ "products/trail-shoe" ] }, "texts": { "en": { "label": "Is it fully waterproof?", "message": null } }, "source": "ai_generated_edited", "sourcePageId": "spg_01kvnwmagvf27rc9cze5rm9e1r", "generatedAt": "2026-10-03T09:00:12.000Z", "createdAt": "2026-10-03T09:00:12.000Z", "updatedAt": "2026-10-03T09:00:12.000Z", "state": { "value": "live", "reason": null, "missingLanguages": [] }, "performance": { "windowDays": 14, "impressions": 0, "clicks": 0, "clickRate": null, "verdict": "never_shown", "reason": "too_recent" }, "surfaces": [ { "surface": "welcome_screen", "impressions": 0, "clicks": 0, "clickRate": null }, { "surface": "composer", "impressions": 0, "clicks": 0, "clickRate": null }, { "surface": "launcher", "impressions": 0, "clicks": 0, "clickRate": null }, { "surface": "starters", "impressions": 0, "clicks": 0, "clickRate": null } ], "daily": [] }}Get a starter question
Returns one question with its state and 14-day performance, plus the same impressions and clicks per surface and per UTC day. A question of another organization or another site answers `404`.
Duplicate a starter question
Copies the question to the head of the library. The copy is a hand-written question, whatever the original was.