BillyDocumentation

Retrieve a form

Retrieves a single form definition by its identifier. Returns 404 when the form does not exist or does not belong to your organization.

Preview release

This operation is only available on the preview release target — send Billy-API-Version: preview to reach it. Preview has no stability promise: its routes and payloads can change without notice, so pin a dated release before you depend on one.
GET
/v1/forms/{form_id}

Retrieves a single form definition by its identifier. Returns 404 when the form does not exist or does not belong to your organization.

Authorization

HTTPBearer
AuthorizationBearer <token>

API key authentication. Format: Bearer billy:o:<organization_id>:<api_key>

Example: Bearer billy:o:yyyyyyyyyyyyyyyy:xxxxxxxxxxxxxxxxx

In: header

Path Parameters

form_id*Form Id

Header Parameters

Billy-API-Version*string

Requested API version. Current context: preview.

Default"preview"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/forms/string" \  -H "Billy-API-Version: preview"
{  "formId": "frm_01ABC:org_01ABC:2",  "title": "Attendee details",  "version": 2,  "createdAt": "2025-02-01T09:15:00+00:00",  "fields": [    {      "name": "first-name",      "label": "First name",      "type": "TEXT",      "required": true,      "semanticKey": "FIRST_NAME",      "defaultValue": null,      "config": {        "maxLength": 80,        "placeholder": "Jane",        "multiline": false      }    },    {      "name": "dietary-restrictions",      "label": "Dietary restrictions",      "type": "MULTI_SELECT",      "required": false,      "semanticKey": null,      "defaultValue": null,      "config": {        "options": [          {            "label": "Vegetarian",            "value": "vegetarian"          },          {            "label": "Gluten free",            "value": "gluten-free"          }        ],        "minSelections": 0,        "maxSelections": 2      }    },    {      "name": "arrival-time",      "label": "When will you arrive?",      "type": "DATE",      "required": false,      "semanticKey": null,      "defaultValue": null,      "config": {        "minDate": "2025-06-01",        "maxDate": "2025-06-03"      }    }  ]}