Document Templates

List document templates

GET/document-templates

Lists the tenant's document (subscription) templates, oldest first, and returns one page. Each says what kind of file it holds, whether its processing has finished and how many field placements it has. filter[q] matches the name or the original filename. Add include=mapped_field_refs to embed the form fields that have a placement. Needs only the scope; the token's user is not checked. Use GET /document-templates/{id} for one template and GET /document-templates/{id}/positions for its placements. It changes nothing.

Query parameters

  • limitinteger#

    Page size (1–100). Defaults to 25; values are clamped to the range.

    Default: 25
  • cursorstring#

    Opaque pagination cursor taken from a prior response's meta.next_cursor.

  • fieldsstring#

    Comma-separated top-level fields to return. id is always returned.

  • includestring#

    Set to mapped_field_refs to embed the distinct form field references that have a placement on each template.

  • sortstring#

    Comma-separated fields to sort by: created_at, updated_at or name. Prefix a field with - for descending. Defaults to created_at. The template's internal id is always the final tiebreak.

  • filter[q]string#

    Templates whose name or original filename contains this text, ignoring case.

  • filter[kind]string#

    Only templates of this kind: pdf or docx. Takes [in] and [not_in] with a comma-separated list.

    One of: pdf, docx
  • filter[validated]boolean#

    Only templates whose processing has finished when true, only those still being processed when false.

  • filter[created_at]string#

    Only templates uploaded in a range, written filter[created_at][gte]=2026-10-01. Takes gt, gte, lt and lte.

Responses

200

The templates.

DocumentTemplate[]
{
  "data": [
    {
      "id": "9a9d1c5e-4f2b-4c8e-9a7d-2f1e6b3c4d5a",
      "name": "string",
      "type": "subscription_document",
      "kind": "docx",
      "original_filename": "string",
      "validated": true,
      "variable_count": 1,
      "variables": [
        "string"
      ],
      "page_metadata": [
        {}
      ],
      "positions_count": 1,
      "mapped_field_refs": [
        "string"
      ],
      "validated_at": "2026-06-12T10:00:00+00:00",
      "created_at": "2026-06-12T10:00:00+00:00",
      "updated_at": "2026-06-12T10:00:00+00:00"
    }
  ],
  "meta": {
    "limit": 1,
    "next_cursor": "string",
    "prev_cursor": "string"
  }
}
401

Authentication failed. error.code is one of invalid_token, expired, revoked.

Error
403

Authorization failed. error.code is one of org_disabled, ip_blocked, missing_scope, scope_disabled, user_disabled.

Error
422

The request can't be processed (HTTP 422): validation_failed with one ErrorDetail per problem, or a code documented on the operation.

Error
429

Rate limit exceeded (error.code = rate_limited).

Error

Examples

curl https://your-org-domain/kong/core/api/v2/document-templates\
  -H "Authorization: Bearer $HELM_API_KEY"\
  -H "Content-Type: application/json"