> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowsign.app/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Flowsign is one word with a lowercase s.
> The REST API base URL is https://my.flowsign.app and every endpoint lives under /api/v1.
> When answering API questions, cite the HTTP method and endpoint path.
> API access needs the Enterprise plan and an API key with the API access permission.

# List templates

> Returns a paginated list of the workspace's templates. Requires USE template access.



## OpenAPI

````yaml /api-reference/openapi.json get /api/v1/templates
openapi: 3.0.3
info:
  title: Flowsign API
  version: 1.0.0
  description: >-
    Public v1 API for Flowsign. Every endpoint is authenticated with a Bearer
    API key (prefix `fsk_`). Errors use `{ error, details? }`; success responses
    wrap payload data as `{ data }`.


    An organisation is divided into workspaces. A key is issued for one
    workspace and acts there on every request (see `GET /api/v1/workspaces`);
    `X-Workspace-Id` is optional and may only name that workspace. Packages,
    templates, contacts and members are scoped to the key's workspace.
servers:
  - url: https://my.flowsign.app
    description: Production
security:
  - ApiKey: []
paths:
  /api/v1/templates:
    get:
      tags:
        - Templates
      summary: List templates
      description: >-
        Returns a paginated list of the workspace's templates. Requires USE
        template access.
      operationId: getTemplates
      parameters:
        - schema:
            anyOf:
              - $ref: '#/components/schemas/TemplateStatus'
              - type: string
                enum:
                  - all
            description: >-
              Only templates in this lifecycle state: DRAFT, ACTIVE or ARCHIVED.
              `all`, or omitting the parameter, returns every state.
            example: ACTIVE
          required: false
          name: status
          in: query
        - schema:
            type: integer
            minimum: 1
            default: 1
            description: One-based page number.
            example: 1
          required: false
          name: page
          in: query
        - schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Templates per page, 1 to 100.
            example: 25
          required: false
          name: pageSize
          in: query
        - schema:
            type: string
            description: >-
              The workspace the key was issued for, as returned by `GET
              /api/v1/workspaces`. Optional: omitting it acts in the key's
              workspace, and any other id is rejected with 401.
          required: false
          name: x-workspace-id
          in: header
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      templates:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              description: The template's id.
                              example: kX9dQ2mB7pLw
                            name:
                              type: string
                              description: The template's name.
                              example: Employment agreement
                            description:
                              type: string
                              nullable: true
                              description: >-
                                Free-text description, or null when none was
                                given.
                              example: >-
                                Standard individual employment agreement for new
                                hires.
                            status:
                              $ref: '#/components/schemas/TemplateStatus'
                            tags:
                              type: array
                              items:
                                type: string
                              description: >-
                                The organisation tags on the template, in
                                alphabetical order.
                              example:
                                - HR
                                - Onboarding
                            roles:
                              type: array
                              items:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    description: >-
                                      The role's id. Fields are assigned to
                                      roles by this id.
                                    example: cmg3k2v8a0001s7p4d9x1qz2h
                                  name:
                                    type: string
                                    description: >-
                                      The role's name, which recipients are
                                      matched onto at launch.
                                    example: Employee
                                  actionType:
                                    $ref: '#/components/schemas/ActionType'
                                  order:
                                    type: integer
                                    description: >-
                                      Zero-based position of the role; the
                                      signing order in SEQUENTIAL mode.
                                    example: 0
                                required:
                                  - id
                                  - name
                                  - actionType
                                  - order
                              description: The template's roles in `order`.
                            documentsCount:
                              type: integer
                              minimum: 0
                              description: How many documents are attached to the template.
                              example: 2
                            fieldsCount:
                              type: integer
                              minimum: 0
                              description: >-
                                How many fields are placed across all of the
                                template's documents.
                              example: 7
                            createdAt:
                              type: string
                              description: >-
                                When the template was created, as an ISO 8601
                                timestamp in UTC.
                              example: '2026-09-14T02:15:30.000Z'
                            updatedAt:
                              type: string
                              description: >-
                                When the template was last changed, as an ISO
                                8601 timestamp in UTC.
                              example: '2026-09-21T23:48:05.000Z'
                          required:
                            - id
                            - name
                            - description
                            - status
                            - tags
                            - roles
                            - documentsCount
                            - fieldsCount
                            - createdAt
                            - updatedAt
                        description: >-
                          The page of templates, most recently updated first. A
                          key sees every template in its workspace; a signed-in
                          session sees the templates its user created or was
                          shared.
                      totalCount:
                        type: integer
                        minimum: 0
                        description: How many templates match the filter across all pages.
                        example: 12
                      page:
                        type: integer
                        minimum: 1
                        description: The page returned.
                        example: 1
                      pageSize:
                        type: integer
                        minimum: 1
                        description: The page size used.
                        example: 25
                    required:
                      - templates
                      - totalCount
                      - page
                      - pageSize
                required:
                  - data
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Caller's plan does not include this feature (publicApi / webhooks)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: API key present but caller lacks the required permission
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Request failed schema validation; details keyed by field
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit exceeded; see `Retry-After`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    TemplateStatus:
      type: string
      enum:
        - DRAFT
        - ACTIVE
        - ARCHIVED
      description: >-
        Lifecycle state. DRAFT is still being built, ACTIVE is published and
        ready to launch packages from, ARCHIVED is retired but kept for
        reference.
      example: ACTIVE
    ActionType:
      type: string
      enum:
        - SIGNER
        - VIEWER
        - CC
      description: >-
        What the recipient does with the package. SIGNER completes fields and
        signs; VIEWER can open and read the package while it is out but has no
        fields; CC only receives the finished copy by email and never gets a
        signing session.
      example: SIGNER
    Error:
      type: object
      properties:
        error:
          type: string
          description: What went wrong, in plain words.
          example: 'Missing permission: canSendPackages'
        details:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: >-
            Validation problems keyed by field path. Present only on 422
            responses.
          example:
            recipients.0.email:
              - Invalid email
      required:
        - error
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      bearerFormat: fsk_*

````