---
title: "Get intake"
method: GET
path: "/v1/intakes/{id}"
tags: ["Intakes"]
---

# Get intake

`GET /v1/intakes/{id}`

## Request

- Base URL: `https://api.briefgate.dev`
- URL: `https://api.briefgate.dev/v1/intakes/{id}`
- Auth: HTTP bearer

Retrieve a single intake by ID, including its items and their current statuses.

## Path parameters

- `id` string, required

## Response `200`

Intake, its items, progress and owner-task summary

- object
  - `intake` object, required
    - `intake_id` string, required
    - `project_name` string, required
    - `status` 'draft' | 'sent' | 'in_progress' | 'completed' | 'archived', required
    - `mode` 'live' | 'test', required
    - `portal_url` string, uri
    - `client` object, required
      - `email` string, email
      - `name` string, nullable
      - `phone` string, nullable: E.164, e.g. +420601123456.
      - `language` 'cs' | 'sk' | 'pl' | 'de' | 'es' | 'en'
      - `timezone` string
      - `also_notify` object[]: Other people who receive the same invitation and reminders through the same link. Present on GET /v1/intakes/{id} only; omitted from the list endpoint, where absent means "not loaded" rather than "none".
        - `email` string, email, required
        - `name` string, nullable, required
        - `bounced_at` string, date-time, nullable, required
      - `client_bounced_at` string, date-time, nullable: When the primary address stopped accepting mail, if it has.
    - `branding` object, nullable
      - `logo_url` string, uri
      - `accent_color` string
      - `sender_name` string: Part of custom branding (Solo plan or higher). On a plan without it the value is stored but not used: mail and the portal show the built-in sender name with the account owner's address. Links and web or e-mail addresses are refused.
      - `reply_to` string, email
    - `folder_id` string, nullable: The folder this intake is filed under, or null for Unfiled. See Folders.
    - `chase_schedule` 'default' | 'gentle' | 'aggressive' | 'custom' | 'off'
    - `chase_interval_minutes` integer, nullable: Only set for chase_schedule="custom".
    - `respect_quiet_hours` boolean
    - `max_reminders` integer, nullable: Null means no cap ("unlimited").
    - `chase_at_time` string, nullable: "HH:MM" in the client's timezone.
    - `due_date` string, date-time, nullable
    - `retention` object
      - `mode` 'days' | 'on_delivery'
      - `days` integer, nullable
      - `anonymize` boolean
    - `created_at` string, date-time, required
    - `sent_at` string, date-time, nullable
    - `completed_at` string, date-time, nullable
    - `delivered_at` string, date-time, nullable: First time an agent collected every delivered item via GET /v1/intakes/{id}/results.
    - `anonymized_at` string, date-time, nullable
    - `client_last_seen` string, date-time, nullable
    - `stalled_at` string, date-time, nullable
    - `purge_at` string, date-time, nullable
    - `client_note` string, nullable: Written by the client. Visible to both sides.
    - `owner_note` string, nullable: The owner's own note on the whole intake. Never shown to the client.
    - `client_brief` string, nullable: The owner's own text handed to the client — shown at the top of the portal as "Information from <sender name>", before the requested items. Attachments are `brief_files`, present on GET /v1/intakes/{id} only — see the Intakes description above.
    - `export` object, nullable: Null if this intake has never been exported. See POST /v1/intakes/{id}/export.
      - `status` 'queued' | 'running' | 'done' | 'failed'
      - `provider` 'google_drive' | 'dropbox', nullable
      - `url` string, uri, nullable: Link to the destination folder, once done.
      - `exported_at` string, date-time, nullable
      - `error` string, nullable
    - `brief_files` object[]
      - `id` string, required
      - `filename` string, required
      - `mime` string, required
      - `size` integer, required
      - `av_status` 'pending' | 'clean' | 'infected' | 'error' | 'skipped', required
      - `created_at` string, date-time, required
  - `items` object[], required
    - `key` string
    - `type` string
    - `assignee` 'client' | 'owner'
    - `label` string
    - `required` boolean
    - `status` 'pending' | 'submitted' | 'needs_revision' | 'approved' | 'waived'
    - `waiver` object
      - `state` 'none' | 'proposed' | 'waived'
      - `reason` string, nullable
      - `requested_by` 'client' | 'owner', nullable
      - `requested_at` string, date-time, nullable
      - `decided_at` string, date-time, nullable
    - `received_outside` boolean: True once the owner settled this item through POST .../received-outside instead of the client submitting it through the portal. `value` was never actually supplied by the client when this is true — check it before trusting `value` as a genuine answer.
    - `received_outside_note` string, nullable: The owner's own note on how/when this was received, from POST .../received-outside.
    - `client_note` string, nullable: Written by the client. Visible to both sides.
    - `owner_note` string, nullable: The owner's own note on this item. Never shown to the client.
    - `files` object[]
      - `id` string
      - `filename` string
      - `mime` string
      - `size` integer
      - `width` integer, nullable
      - `height` integer, nullable
      - `av_status` 'pending' | 'clean' | 'infected' | 'error' | 'skipped'
      - `checksum_sha256` string, nullable: SHA-256 of the stored bytes, for verifying a download.
  - `progress` object, required: The client's items only — an item the owner has waived, and an optional item the client has not touched, both leave the denominator, so `percent` reaches 100 exactly when `status` turns `completed`.
    - `submitted` integer, required: Items submitted or approved.
    - `total` integer, required
    - `outstanding` integer, required: Items still pending or needing revision.
    - `percent` integer, required: round(submitted / total * 100); 0 when total is 0.
  - `owner_tasks` object, required: assignee=owner items only — a private to-do count, separate from the client-facing progress above.
    - `done` integer
    - `total` integer

## Other responses

- `401`: Missing or invalid API key
- `403`: Authenticated but not allowed to perform this action
- `404`: Resource not found

---

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