---
title: "Get Smartadvocate Intake Draft Fields"
method: GET
path: "/smartadvocate/intake-draft/{smartadvocate_intake_draft_id}/fields"
tags: ["SmartAdvocate"]
---

# Get Smartadvocate Intake Draft Fields

`GET /smartadvocate/intake-draft/{smartadvocate_intake_draft_id}/fields`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/smartadvocate/intake-draft/{smartadvocate_intake_draft_id}/fields`
- Auth: none declared

The firm's own intake screen for this call, answers dropped in.

Shows every user-defined field the firm has — its exact names, sections and
types — so the fields we could not answer are as visible as the ones we
did. A promoted draft reports what its case actually holds (including
fields left alone because staff had typed in them); a pending one reports
what a promote would write.

Writes nothing to SmartAdvocate: the field list comes from the snapshot
captured during an earlier promote, since SmartAdvocate has no endpoint
that lists field definitions on their own.

## Path parameters

- `smartadvocate_intake_draft_id` string, uuid, required

## Response `200`

Successful Response

- SmartAdvocateUdfMirrorResponse: The firm's own intake screen, with the call's answers dropped into it. Field definitions can only be read off an existing SmartAdvocate case, so they are captured during a promote and cached; a firm that has never promoted a case has nothing to show yet (available=false).
  - `available` boolean, required: False when the firm's field definitions have never been captured
  - `promoted` boolean: True when the values shown are what the case actually holds rather than a plan
  - `sa_case_type_id` integer, nullable: Case type the cached field list was read from
  - `fetched_at` string, date-time, nullable
  - `filled` integer
  - `total` integer
  - `sections` SmartAdvocateUdfSection[]
    - `screen` string, required
    - `case_type_specific` boolean: These are SmartAdvocate's per-case-type template fields rather than the questionnaire the firm authored
    - `filled` integer, required
    - `total` integer, required
    - `fields` SmartAdvocateUdfField[]
      - `udfid` integer, required
      - `name` string, required: The field's name exactly as the firm wrote it in SmartAdvocate
      - `type` string, required: SmartAdvocate field type, e.g. Text, YesNoRadioButton, Multiselect
      - `status` string, required: filled (we wrote it), kept (staff had already typed a value, left alone), not_stored (SmartAdvocate dropped our value), planned (would be written on promote), empty (the call didn't answer it)
      - `value` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-24** `e6cfdf8a3062`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/smartadvocate/intake-draft/:smartadvocate_intake_draft_id/fields/get.md)

---

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