Briefs

Update one section of a brief's outline

Partial update of a single section. Omitted fields keep their value; null clears owned_keywords only. expected_updated_at is required and is the whole BRIEF's updated_at from GET /briefs/{id} — pass literal null if that read returned null. Send expected_heading to assert which section you believe number N is; the write is refused if the outline was reordered under you.

A brief that was imported carries its structure as an outline and no content plan. Editing one of its sections materialises the plan on first write and persists both projections, so no plan needs to exist first. A brief with neither a plan nor an outline is refused.

patch/briefs/{id}/sections/{sectionNumber}

Request

  • Base URL: https://next.frase.io/api/v1
  • URL: https://next.frase.io/api/v1/briefs/{id}/sections/{sectionNumber}
  • Auth: API key in header X-API-KEY

Path parameters

idstring uuid required
sectionNumberinteger required

1-based position in the outline.

Query parameters

dry_run'true'

Pass true to return the patch that WOULD be applied and write nothing — the confirmation step a caller with no UI cannot otherwise see. The body is still validated, so a dry run cannot accept what the real call would reject. Echoes the request rather than simulating the merge: the merge lives in the writer, and a second implementation of it here would be free to drift.

Request body

expected_updated_atstring date-time nullable required
expected_headingstring
headingstring
key_pointsstring[]
suggested_word_countinteger
descriptionstring
format_instructionsstring
owned_keywordsstring[] nullable
assigned_to'ai' | 'user'

Response

The updated section and the brief's new updated_at

Changes

No recorded changes to this operation across all 1 revision of this API.