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

# List group templates

> The group templates available to your organisation — your custom
templates plus the curated pre-built set — so you can discover
the `templateId` to pass to `POST /groups`. The list is a small,
curated shelf and is not paginated.

Requires the `groups:read` scope and the Groups feature enabled
for your organisation (`403 feature_disabled` otherwise).


Returns the group templates available to your organisation — your
custom templates plus the curated pre-built set — so you can discover
the `templateId` to pass to
[Create a group](/api-reference/groups/create).

The list is a small, curated shelf and is not paginated.

## Requirements

* Scope: `groups:read`
* The **Groups feature** must be enabled for your organisation —
  otherwise the request fails with `403 feature_disabled`.

## Choosing a template

Each template lists its `roles` (the party slots a group created from
it will start with) and, for curated templates, a stable `code` such as
`GRP-RE-SALE`. Template **ids differ per organisation** — resolve them
at integration time via this endpoint rather than hardcoding, or match
on `code` for curated templates.


## OpenAPI

````yaml GET /group-templates
openapi: 3.1.0
info:
  title: Instant Compliance API
  version: 1.0.0
  summary: External integration API for Instant Compliance.
  description: |
    The Instant Compliance v1 API lets your systems push customers into
    Instant Compliance and pull their verification / AML status back out.
    Designed for server-to-server use (CRMs, Zapier, internal back-office
    tools).

    **Base URL:** `https://app.instantcompliance.ai/api/v1`

    **Authentication:** Bearer API key — `Authorization: Bearer ic_live_…`
    Issue keys from **Settings → Developers** in your Instant Compliance
    organisation.

    **Scope:** individual customers (`INDIVIDUAL` and `SOLE_TRADER`, KYC)
    live on `/customers`; entity customers (companies, trusts,
    partnerships, SMSFs — KYB) live on `/entities`.
  contact:
    name: Instant Compliance Support
    email: support@instantcompliance.ai
    url: https://instantcompliance.ai
  license:
    name: Proprietary
servers:
  - url: https://app.instantcompliance.ai/api/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Customers
    description: |
      Create, read, and update individual customer records ingested through
      the external API.
  - name: Entities
    description: |
      Create, read, and update entity customer records (companies, trusts,
      partnerships, SMSFs). Entities verify via KYB instead of KYC; the API
      ingests the record and reports status — verification is started by
      your back-office team in-app.
  - name: Designated services
    description: |
      Read-only catalog of the designated-service codes accepted when
      creating customers.
  - name: Groups
    description: |
      Create group workspaces (multi-party deals/matters — e.g. one per
      property for real-estate integrators) and discover the group
      templates available to your organisation. Requires the Groups
      feature to be enabled for your organisation.
paths:
  /group-templates:
    get:
      tags:
        - Groups
      summary: List group templates
      description: |
        The group templates available to your organisation — your custom
        templates plus the curated pre-built set — so you can discover
        the `templateId` to pass to `POST /groups`. The list is a small,
        curated shelf and is not paginated.

        Requires the `groups:read` scope and the Groups feature enabled
        for your organisation (`403 feature_disabled` otherwise).
      operationId: listGroupTemplates
      responses:
        '200':
          description: The organisation's usable group templates.
          content:
            application/json:
              schema:
                type: object
                required:
                  - object
                  - data
                properties:
                  object:
                    type: string
                    const: list
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/GroupTemplate'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/FeatureDisabledOrScope'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
        - bearerAuth: []
      x-codeSamples:
        - lang: curl
          source: |
            curl https://app.instantcompliance.ai/api/v1/group-templates \
              -H "Authorization: Bearer ic_live_..."
components:
  schemas:
    GroupTemplate:
      type: object
      required:
        - id
        - code
        - name
        - description
        - industry
        - source
        - is_verified
        - roles
      properties:
        id:
          type: string
          format: uuid
        code:
          type: string
          nullable: true
          description: Stable code for curated pre-built templates (e.g. `GRP-RE-SALE`).
        name:
          type: string
        description:
          type: string
          nullable: true
        industry:
          type: string
        source:
          type: string
          enum:
            - PRE_BUILT
            - CUSTOM
        is_verified:
          type: boolean
        roles:
          type: array
          items:
            $ref: '#/components/schemas/GroupTemplateRole'
    GroupTemplateRole:
      type: object
      required:
        - role_label
        - party_type
        - required
        - check_trigger
      properties:
        role_label:
          type: string
        party_type:
          $ref: '#/components/schemas/GroupPartyType'
        required:
          type: boolean
        check_trigger:
          type: string
          nullable: true
          description: The deal event that starts this role's checks, when set.
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              enum:
                - unauthorized
                - forbidden_scope
                - not_found
                - validation_failed
                - conflict
                - insufficient_credits
                - rate_limited
                - idempotency_conflict
                - feature_disabled
                - internal
            message:
              type: string
            details:
              type: object
              additionalProperties: true
    GroupPartyType:
      type: string
      enum:
        - INDIVIDUAL
        - ENTITY
        - EITHER
      description: |
        What kind of customer may fill a party slot. `EITHER` accepts an
        individual or an entity.
  responses:
    Unauthorized:
      description: Missing, invalid, expired, or revoked API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: unauthorized
              message: Invalid or revoked API key.
    FeatureDisabledOrScope:
      description: |
        API key lacks the required scope, or the Groups feature is not
        enabled for the organisation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: feature_disabled
              message: >-
                The Groups feature is not enabled for this organisation. Contact
                support to enable it.
              details:
                feature: Groups
    RateLimited:
      description: Burst or daily rate limit exceeded for this API key.
      headers:
        Retry-After:
          schema:
            type: integer
          description: Seconds to wait before retrying.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            error:
              code: rate_limited
              message: Rate limit exceeded. Slow down and retry shortly.
              details:
                limit: 60
                window_seconds: 60
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: |
        Bearer API key issued from **Settings → Developers** in your
        Instant Compliance organisation. Format: `ic_live_…`.

````