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

# List templates

> Retrieve a list of available templates with their metadata.

## Response

<ResponseField name="id" type="string" required>
  Unique identifier for the template.
</ResponseField>

<ResponseField name="name" type="string" required>
  Template name.
</ResponseField>

<ResponseField name="type" type="string" required>
  Template type category.
</ResponseField>

<ResponseField name="created_at" type="string" required>
  ISO 8601 timestamp when the template was created.
</ResponseField>

<ResponseField name="is_custom" type="boolean" required>
  Whether this is a user-created template (`true`) or a platform-provided template (`false`).
</ResponseField>

<ResponseField name="description" type="string">
  Template description.
</ResponseField>

<ResponseField name="tags" type="array">
  Classification labels for discovery.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url "${UNSTRUCTURED_API_URL}/api/v1/templates/" \
    --header "unstructured-api-key: ${UNSTRUCTURED_API_KEY}"
  ```

  ```python Python SDK theme={null}
  import os
  from unstructured_client import UnstructuredClient
  from unstructured_client.models.operations import ListTemplatesRequest

  client = UnstructuredClient(
      api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
      server_url=os.getenv("UNSTRUCTURED_API_URL"),
  )

  response = client.templates.list_templates(
      request=ListTemplatesRequest()
  )
  print(response)
  ```

  ```python Python SDK (async) theme={null}
  import asyncio
  import os
  from unstructured_client import UnstructuredClient
  from unstructured_client.models.operations import ListTemplatesRequest

  async def list_templates():
      client = UnstructuredClient(
          api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
          server_url=os.getenv("UNSTRUCTURED_API_URL"),
      )
      response = await client.templates.list_templates_async(
          request=ListTemplatesRequest()
      )
      print(response)

  asyncio.run(list_templates())
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  [
    {
      "id": "t1a2b3c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
      "name": "Basic ETL",
      "description": "A simple extract, transform, and load workflow template.",
      "type": "etl",
      "created_at": "2026-01-01T00:00:00Z",
      "tags": ["etl", "basic"],
      "is_custom": false
    }
  ]
  ```
</ResponseExample>
