---
title: "Create brief"
method: POST
path: "/briefs"
tags: ["Briefs"]
---

# Create brief

`POST /briefs`

## Request

- Base URL: `https://next.frase.io/api/v1`
- URL: `https://next.frase.io/api/v1/briefs`
- Auth: one of:
  - API key in header `X-API-KEY`
  - HTTP bearer

Create a content brief from a completed research session. The brief is generated from the full research context (keywords, SERP headings, content gaps, evidence, AI visibility, search intent) using the same pipeline as the Frase app. The brief is created immediately with `status: "pending"` and populated asynchronously. Poll `status_url` to check when the outline is ready.

## Request body

- object
  - `research_session_id` string, uuid, required: ID of a completed research session (from POST /research). The brief topic, keywords, and outline are generated from the research data.
  - `content_type` 'blog' | 'guide' | 'landing' | 'product' | 'comparison': Content type for the brief
  - `target_word_count` integer: Target word count for the article

## Response `200`

A brief already exists for this research session — reused, not recreated. `research_updated_since_generation: true` means the research changed after the brief was generated (the brief is STALE); rebuild it via POST /briefs/{id}/regenerate.

- object
  - `data` object
    - `id` string, uuid
    - `status` string
    - `brief_url` string
    - `existing_brief` boolean
    - `research_updated_since_generation` boolean
    - `message` string
  - `request_id` string

## Other responses

- `201`: Brief created. When `research_session_id` is provided, the brief is created with `status: "pending"` and will be populated asynchronously with the research-backed content plan. Poll `status_url` to check progress.
- `409`: Brief generation already in progress for this research session
- `422`: Validation failed
- `429`: Rate limit exceeded

---

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