# List form templates Retrieve a paginated list of active form templates for the account. Templates define the structure of forms that can be assigned to patients. Supports filtering by appointment type and staff-only visibility. Endpoint: GET /partner/v2/account/{accountId}/location/{locationId}/form/template Version: 2.0 Security: PartnerOAuth ## Query parameters: - `appointmentTypeId` (integer) Filter by appointment type ID - `isStaffOnly` (boolean) Filter for staff-only templates - `includeInactive` (boolean) Include inactive templates - `search` (string) Search by template name - `cursor` (string) Pagination cursor from previous response - `limit` (integer) Number of results per page (max 100) Example: 20 ## Path parameters: - `accountId` (integer, required) Account identifier - `locationId` (integer, required) Location identifier ## Response 200 fields (application/json): - `formTemplates` (array) List of form templates in this page - `formTemplates.appointmentTypeIds` (array) Associated appointment type IDs - `formTemplates.createdAt` (string) Creation timestamp Example: "2024-06-15T10:00:00Z" - `formTemplates.description` (string) Template description Example: "Collects basic patient information and medical history" - `formTemplates.elementCount` (integer) Number of form elements Example: 15 - `formTemplates.elements` (array) Form elements/fields (if requested) - `formTemplates.elements.attributeName` (string) Mapped attribute name for data mapping Example: "patient_first_name" - `formTemplates.elements.colClass` (integer) Column width class (1-12) Example: 6 - `formTemplates.elements.helpText` (string) Help text displayed below the field - `formTemplates.elements.id` (integer) Unique element identifier Example: 11111 - `formTemplates.elements.isPatientViewable` (boolean) Whether this field is visible to patients Example: true - `formTemplates.elements.isRequired` (boolean) Whether this field is required Example: true - `formTemplates.elements.label` (string) Field label displayed to users Example: "First Name" - `formTemplates.elements.options` (array) Available options for select/radio/checkbox fields - `formTemplates.elements.options.id` (integer) Option ID Example: 22222 - `formTemplates.elements.options.sortOrder` (integer) Display order Example: 1 - `formTemplates.elements.options.text` (string) Option display text Example: "Male" - `formTemplates.elements.placeholder` (string) Placeholder text Example: "Enter your first name" - `formTemplates.elements.sortOrder` (integer) Display order within the form Example: 1 - `formTemplates.elements.type` (string) Element type Enum: "TEXT", "TEXTAREA", "SELECT", "MULTI_SELECT", "CHECKBOX", "RADIO", "DATE", "TIME", "DATETIME", "SIGNATURE", "FILE", "IMAGE", "HEADER", "PARAGRAPH" - `formTemplates.id` (integer) Unique form template identifier Example: 12345 - `formTemplates.isActive` (boolean) Whether this template is active Example: true - `formTemplates.isDirectlyLinkable` (boolean) Whether this template can be directly linked (public form) Example: true - `formTemplates.isFillablePdf` (boolean) Whether this template is a fillable PDF - `formTemplates.isStaffOnly` (boolean) Whether this template is staff-only (not visible to patients) - `formTemplates.name` (string) Template name Example: "Patient Intake Form" - `formTemplates.publicLink` (string) Public link for directly linkable templates Example: "https://forms.lobbie.com/t/abc123" - `formTemplates.updatedAt` (string) Last update timestamp Example: "2025-01-10T14:30:00Z" - `nextCursor` (string) Opaque cursor for fetching the next page. Null if no more results. ## Response 400 fields ## Response 401 fields ## Response 403 fields