---
title: "A brief finished and its result is ready"
method: POST
path: "brief.completed"
---

# A brief finished and its result is ready

`POST brief.completed` (webhook)

Sent to the key's webhook URL in the Standard Webhooks format. Verify
`webhook-signature` before trusting the payload: it is `v1,` followed by the
base64 HMAC-SHA256, keyed with the base64-decoded part of your `whsec_` secret,
of `{webhook-id}.{webhook-timestamp}.{raw body}`. `webhook-id` is stable across
retries; use it to ignore duplicates. Failed deliveries are retried three times
with backoff and then again on later passes. The payload carries ids only:
fetch the brief with your key.

## Headers

- `webhook-id` string, required
- `webhook-timestamp` string, required
- `webhook-signature` string, required

## Payload

- WebhookEvent
  - `type` 'brief.completed' | 'brief.failed' | 'extract.completed' | 'extract.failed' | 'report.completed' | 'report.failed', required
  - `timestamp` string, date-time, required
  - `data` object, required
    - `id` string, required
    - `object` 'brief' | 'job', required
    - `kind` 'extract' | 'report': Present on extract and report events.
    - `status` 'succeeded' | 'failed', required
    - `matter_id` string, nullable
    - `expert_class` string, nullable: Present on brief events.
    - `livemode` boolean
    - `error` object
      - `type` string
      - `code` string

## Acknowledgement `2XX`

Any 2xx acknowledges the event.

---

[API](https://skmtc.dev/suprememind/apis/supreme-mind-api.md) · [All operations](https://skmtc.dev/suprememind/apis/supreme-mind-api/llms.txt) · [OpenAPI document](https://skmtc.dev/suprememind/apis/supreme-mind-api/revisions/a7fdd32883bc?raw)
