A template picker should help an operator choose a form that can actually support the intended workflow. The list endpoint returns non-archived templates, including templates that have never been published. Presence in the response is therefore not the same as readiness for signing.
Read the list with the right scope
Use templates:read from your backend:
GET /v1/templates
Authorization: Bearer YOUR_API_KEY
The list response includes the template’s identity and published-version state. activeVersion is null when the template has only been a draft. Keep the stable ID as your application value; the display name is for the operator and can change.
Explain unavailable choices
For a signing workflow, distinguish draft-only templates from published choices. You can omit them from a guest-ready selector or show them as unavailable with a useful explanation. Do not convert a null version into zero and present it as a valid published form.
Use descriptive labels when two templates have similar names. Your application can include relevant context it legitimately knows, but should not invent location or activity attributes absent from the contract. Link operators to the appropriate template-management process when a form needs publication.
Revalidate at the point of use
A form can be archived or republished after the picker loads. Before creating a dependent event or starting another workflow, handle the API’s actual result rather than assuming the cached selection remains valid indefinitely.
Retrieving a template returns the active published blocks, not an unpublished draft. If your interface previews the selected form, describe that distinction accurately. Use the template lifecycle guide when the application also supports editing.
Test changes between selection and action
Test an empty list, a draft-only template, similarly named templates and a template archived after the operator selects it. Also publish a new version during a controlled test and verify the interface does not claim that a stale preview is the exact current form without rechecking.
Avoid applying cursor parameters to this endpoint simply because another resource supports pagination. Follow its declared contract. Keep the request on the server and return only the fields the picker needs to the browser, with your own application authorization in place.