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

# Get Clickwrap

> Retrieve the active clickwrap content for a slug

## Endpoint

```
GET /server/clickwrap/{slug}
```

## Authentication

This endpoint requires authentication via API key. Include your API key in the `X-API-Key` header:

```bash theme={null}
X-API-Key: ca_your_api_key_here
```

## Path Parameters

| Parameter | Type   | Required | Description                         |
| --------- | ------ | -------- | ----------------------------------- |
| `slug`    | string | Yes      | Unique identifier for the clickwrap |

## Request Example

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET "https://platform.chamelio.ai/server/clickwrap/privacy-policy" \
    -H "X-API-Key: ca_your_api_key_here"
  ```

  ```python Python theme={null}
  import requests

  slug = "privacy-policy"

  url = f"https://platform.chamelio.ai/server/clickwrap/{slug}"
  headers = {
      "X-API-Key": "ca_your_api_key_here"
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const slug = "privacy-policy";

  const response = await fetch(
    `https://platform.chamelio.ai/server/clickwrap/${slug}`,
    {
      method: 'GET',
      headers: {
        'X-API-Key': 'ca_your_api_key_here'
      }
    }
  );

  const data = await response.json();
  console.log(data);
  ```
</CodeGroup>

## Response

### Success Response

**Status Code:** `200 OK`

```json theme={null}
{
  "slug": "privacy-policy",
  "title": "Privacy Policy",
  "clickwrap_type": "click_to_accept",
  "content": "By clicking Accept, you agree to our Privacy Policy...",
  "content_html": "<p>By clicking Accept, you agree to our Privacy Policy...</p>",
  "clickwrap_version_id": 42,
  "version_number": 3
}
```

### Response Fields

| Field                  | Type           | Description                                                 |
| ---------------------- | -------------- | ----------------------------------------------------------- |
| `slug`                 | string         | Unique clickwrap identifier                                 |
| `title`                | string         | Human-readable title of the clickwrap                       |
| `clickwrap_type`       | string         | Presentation type: `click_to_accept` or `scroll_and_accept` |
| `content`              | string         | Plain-text content of the active version                    |
| `content_html`         | string or null | Sanitized HTML content of the active version                |
| `clickwrap_version_id` | integer        | Internal identifier for the active version                  |
| `version_number`       | integer        | Sequential version number of the active version             |

## Error Responses

### 401 Unauthorized

Returned when authentication fails. See the [authentication errors](/api-reference/introduction#authentication-errors) section for details.

```json theme={null}
{
  "detail": "Invalid API key"
}
```

### 404 Not Found

Returned when no active clickwrap exists for the given slug.

```json theme={null}
{
  "detail": "Clickwrap 'privacy-policy' not found"
}
```

### 500 Internal Server Error

Returned when the request fails due to a server error.

```json theme={null}
{
  "detail": "Internal server error"
}
```

## Notes

<Info>
  This endpoint only returns the **active** (published) version. Draft versions are never exposed on API-key-authenticated endpoints.
</Info>

<Tip>
  Use the `clickwrap_version_id` returned here when calling [Check Clickwrap Status](/api-reference/endpoint/clickwrap/status) or [Capture Clickwrap Event](/api-reference/endpoint/clickwrap/capture) to correlate acceptances with specific versions.
</Tip>

## Use Cases

This endpoint is useful for:

* **Headless consent flows** - Fetch clickwrap content server-side and render it in your own UI before capturing acceptance
* **Version awareness** - Read the current `version_number` to decide whether a returning user needs to re-accept
* **Content display** - Render `content_html` in embedded forms or modal dialogs
