---
title: "Get brief"
method: GET
path: "/briefs/{id}"
tags: ["Briefs"]
---

# Get brief

`GET /briefs/{id}`

## Request

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

Retrieve a specific brief by ID. The outline field contains sections in snake_case format.

## Path parameters

- `id` string, uuid, required

## Response `200`

Brief details including outline sections

- object
  - `data` object
    - `id` string, uuid
    - `topic` string
    - `target_keywords` string[]
    - `content_type` string
    - `status` string
    - `search_intent` string, nullable
    - `target_word_count` integer, nullable
    - `evidence_budget` object: What this brief's evidence supports, in words. An article encodes an evidence set: words past what the research carries become repetition, generic filler or invention. Counts the plan's own points together with the fact ledger, deduped — an imported brief keeps its evidence only in the ledger, and ledger rows are minted from plan evidence, so either source read alone is wrong in a different direction. Rejected facts are excluded. Advisory: nothing refuses a target on this basis.
      - `points` number: Distinct checkable propositions behind this brief.
      - `supports_words` integer: Roughly how many words those points carry.
      - `target_words` integer, nullable
      - `supported` boolean, nullable: Whether target_words sits inside what the evidence carries. Null when no target is set — "unsupported" would read as a finding where none was made.
    - `outline` ContentOutlineSection[]
      - `heading` string, required: The section heading text
      - `level` integer, required: Heading level (1=H1, 2=H2, 3=H3, 4=H4)
      - `key_points` string[]: Key points to cover in this section
      - `suggested_word_count` integer: Suggested word count for this section
      - `generation_mode` 'ai' | 'manual': Whether AI generates this section ('ai') or user provides content ('manual')
    - `competitor_urls` string[]
    - `notes` string, nullable
    - `questions_to_answer` string[]
    - `unique_angle` string, nullable
    - `target_language` string, nullable
    - `target_country` string, nullable
    - `authority_source` string, nullable
    - `blog_format` string, nullable
    - `guide_format` string, nullable
    - `is_imported` boolean
    - `imported_content_url` string, nullable
    - `progress_details` object, nullable
    - `linked_content` object, nullable
      - `id` string
      - `status` string
      - `title` string
    - `created_at` string, date-time
    - `updated_at` string, date-time, nullable
  - `request_id` string

## Other responses

- `401`: Authentication failed
- `404`: Resource not found
- `500`: Internal server error

---

[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)
