---
title: "Get account briefing"
method: GET
path: "/api/businesses/{business_id}/briefing"
tags: ["businesses"]
---

# Get account briefing

`GET /api/businesses/{business_id}/briefing`

## Request

- Base URL: `https://api.mymarky.ai`
- URL: `https://api.mymarky.ai/api/businesses/{business_id}/briefing`
- Auth: HTTP bearer

List what needs doing on this workspace now, most urgent first, each with an action.

Call this when the user has not given a concrete task ("hi", "what should I
do?"). Lead with item 1 and offer the items' `action.label`s as the choices;
tapping one sends its `action.prompt`. Items, in fixed priority order:
unanswered reviews rated 3 stars or less, a posting queue about to run dry,
posts waiting for approval, a post format that clearly out-clicks another
(both with 8+ posts), and a window of posts with zero link clicks. Every
count is computed from real data; restate it, never estimate it. `items` is
empty when there is nothing to act on.

Errors:
    400 invalid_value: The business_id is not a valid UUID.
    401 authentication_required: API key or token is missing, invalid, or revoked.
    403 permission_denied: This business is not in your org.
    404 resource_not_found: No business with that ID exists.
    429 rate_limit_exceeded: You sent too many requests this minute.

## Path parameters

- `business_id` string, required: A UUID identifier.

## Headers

- `Marky-Version` '2026-04-08' | '2026-07-17' | '2026-08-02' | '2026-08-04' | '2026-08-06'

## Response `200`

Successful Response

- AccountBriefing: The briefing, most urgent item first. Empty when there is nothing to do.
  - `items` BriefingItem[]
    - `kind` 'review_needs_reply' | 'queue_running_low' | 'pending_approvals' | 'format_winner' | 'zero_clicks', required
    - `headline` string, required: One plain sentence stating the finding
    - `evidence` BriefingEvidence, required: The numbers behind an item. Only the fields for its kind are filled in.
      - `n` integer, required: The count the headline is about
      - `reviews` ReviewPointer[]: review_needs_reply: the reviews, newest first
        - `review_id` string, required
        - `reviewer_name` string, required
        - `rating` integer, required
        - `updated_at` string, required
      - `formats` FormatClicks[]: format_winner: [winner, loser]
        - `format` string, required: Post format, e.g. carousel, image, video
        - `clicks` integer, required: Total link clicks across these posts
        - `n` integer, required: How many posts of this format were published
      - `window_days` integer, nullable: Stats items: how many days of posts were read
      - `runs_dry_at` string, date-time, nullable: queue_running_low: estimated last queued publish
      - `runs_dry_at_local` string, nullable: runs_dry_at in the workspace's timezone, ready to show a person, e.g. "Wed Sep 23, 6:00 PM MSK". Quote it as-is instead of converting.
    - `action` BriefingAction, required: What tapping the item does.
      - `label` string, required: Short button text, e.g. 'Make a carousel post'
      - `prompt` string, required: The request the tap sends to Max, in the owner's voice

## Other responses

- `400`: Bad request — the input was malformed or otherwise invalid.
- `401`: Authentication failed — the API key is missing or invalid.
- `403`: Forbidden — the key is valid but may not access this resource.
- `404`: Not found — no resource matches the id in the path.
- `422`: Validation error — one or more fields failed validation.
- `429`: Rate limited — retry after the window resets (see Retry-After).
- `500`: Server error — something failed on our side; retry or quote X-Request-Id.

---

[API](https://skmtc.dev/mymarky/apis/marky-public-api.md) · [All operations](https://skmtc.dev/mymarky/apis/marky-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mymarky/apis/marky-public-api/revisions/25aeacae455c?raw)
