Private preview of the new site. Not live.

forms.get

One form with its fields, answers, the required fields still missing, its stored PDF id and hash once submitted, and its sign-off.

WhoAgents can call this
RESTGET /v1/forms/get
MCP toolforms_get
Writesno
AreaField work (checklists, forms, time, notes, change orders, subcontractors)

When to use it

Keep form templates (forms.saveTemplate: ordered fields of type heading, text, long_text, number, yes_no, choice, multi_choice, date or photos, each optionally required). Start a form on a job or one visit (forms.start) from a template, from an earlier form (copy_from_form_id, which also carries its answers), or with fields given on the spot; the form keeps its own copy of the fields.

What to tell the owner

Tell them what you found in plain words. Don't read back raw fields.

Input

FieldTypeRequired
form_idstring (uuid)yes

Example

GET https://doingwork.work/v1/forms/get?form_id=00000000-0000-4000-8000-000000000000

Output

FieldTypeAlways there
form_idstring (uuid)yes
shop_idstring (uuid)yes
job_idstring (uuid)yes
visit_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
form_template_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
copied_from_form_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
namestringyes
statusstringyes
signoff_requiredbooleanyes
missingarrayyes
created_bystring (uuid)yes
created_atstring (date-time)yes
updated_atstring (date-time)yes
submitted_by['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
submitted_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
document_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
document_sha256['string', 'null']yes
cancelled_at['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')']yes
signature_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
signoff_request_id['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')']yes
fieldsarrayyes
fields[].keystringyes
fields[].labelstringyes
fields[].typestringyes
fields[].requiredbooleanyes
fields[].helpstringno
fields[].optionsarrayno
answersobjectyes
{
  "form_id": "00000000-0000-4000-8000-000000000000",
  "shop_id": "00000000-0000-4000-8000-000000000000",
  "job_id": "00000000-0000-4000-8000-000000000000",
  "visit_id": "00000000-0000-4000-8000-000000000000",
  "form_template_id": "00000000-0000-4000-8000-000000000000",
  "copied_from_form_id": "00000000-0000-4000-8000-000000000000",
  "name": "Ruiz Plumbing",
  "status": "...",
  "signoff_required": true,
  "missing": [
    "..."
  ],
  "created_by": "00000000-0000-4000-8000-000000000000",
  "created_at": "...",
  "updated_at": "...",
  "submitted_by": "00000000-0000-4000-8000-000000000000",
  "submitted_at": "...",
  "document_id": "00000000-0000-4000-8000-000000000000",
  "document_sha256": "...",
  "cancelled_at": "...",
  "signature_id": "00000000-0000-4000-8000-000000000000",
  "signoff_request_id": "00000000-0000-4000-8000-000000000000",
  "fields": [
    {
      "key": "...",
      "label": "...",
      "type": "...",
      "required": true
    }
  ],
  "answers": {}
}

Errors

CodeStatusWhat to do
invalid_input, invalid_token, rate_limitedCan happen on any call. See errors.