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

# Publish Template

> Publish draft version of a template

## Header

<ParamField header="Authorization" type="string" required>
  Bearer token for API authentication. Format: `Bearer {{apiToken}}`
</ParamField>

## Query Parameters

<ParamField query="template_id" type="UUID" required>
  The ID of the template to publish.
</ParamField>

## Response

<ResponseField name="data" type="object">
  <ResponseField name="id" type="UUID">
    Template ID.
  </ResponseField>

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

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

  <ResponseField name="variables" type="array">
    List of template variables.

    <ResponseField type="object">
      <ResponseField name="name" type="string">
        Variable name.
      </ResponseField>

      <ResponseField name="defaultValue" type="string">
        Default value for the variable.
      </ResponseField>
    </ResponseField>
  </ResponseField>

  <ResponseField name="tags" type="array">
    List of template tags.
  </ResponseField>

  <ResponseField name="draftVersion" type="object">
    Draft version details.

    <ResponseField name="id" type="UUID">
      Version ID.
    </ResponseField>

    <ResponseField name="version" type="integer">
      Version number.
    </ResponseField>

    <ResponseField name="status" type="string">
      Version status (e.g., "PUBLISHED\_LATEST").
    </ResponseField>

    <ResponseField name="publishedAt" type="datetime">
      Timestamp of when the version was published.
    </ResponseField>
  </ResponseField>

  <ResponseField name="publishedVersion" type="object">
    Published version details.

    <ResponseField name="id" type="UUID">
      Version ID.
    </ResponseField>

    <ResponseField name="version" type="integer">
      Version number.
    </ResponseField>

    <ResponseField name="status" type="string">
      Version status (e.g., "PUBLISHED\_LATEST").
    </ResponseField>

    <ResponseField name="publishedAt" type="datetime">
      Timestamp of when the version was published.
    </ResponseField>
  </ResponseField>

  <ResponseField name="templateVersions" type="array">
    List of all template versions.

    <ResponseField type="object">
      <ResponseField name="id" type="UUID">
        Version ID.
      </ResponseField>

      <ResponseField name="version" type="integer">
        Version number.
      </ResponseField>

      <ResponseField name="status" type="string">
        Version status (e.g., "PUBLISHED\_LATEST").
      </ResponseField>

      <ResponseField name="publishedAt" type="datetime">
        Timestamp of when the version was published.
      </ResponseField>
    </ResponseField>
  </ResponseField>
</ResponseField>

<ResponseField name="error" type="object">
  <ResponseField name="errorCode" type="string">
    The error code (e.g., `BAD_REQUEST`).
  </ResponseField>

  <ResponseField name="message" type="string">
    A human-readable error message.
  </ResponseField>
</ResponseField>

<ResponseExample>
  ```json success (200) theme={null}
  {
    "data": {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "name": "string",
        "description": "string",
        "variables": [
          {
            "name": "string",
            "defaultValue": "string"
          }
        ],
        "tags": [
          "string"
        ],
        "draftVersion": {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "version": 0,
          "status": "PUBLISHED_LATEST",
          "publishedAt": "2024-08-30T07:39:49.292Z"
        },
        "publishedVersion": {
          "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "version": 0,
          "status": "PUBLISHED_LATEST",
          "publishedAt": "2024-08-30T07:39:49.292Z"
        },
        "templateVersions": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "version": 0,
            "status": "PUBLISHED_LATEST",
            "publishedAt": "2024-08-30T07:39:49.292Z"
          }
        ]
    },
    "error": null,
    "errors": null,
    "meta": null
  }
  ```

  ```json bad request (400) theme={null}
  {
    "data": null,
    "error": {
      "errorCode": "BAD_REQUEST",
      "message": "Bad request"
    },
    "errors": [
      {
        "errorCode": "BAD_REQUEST",
        "message": "Bad request"
      }
    ],
    "meta": null
  }
  ```
</ResponseExample>

## Status Codes

* `200` - OK
* `400` - BAD REQUEST
* `401` - UNAUTHORISED
* `404` - NOT FOUND
