Skip to main content

Endpoint

POST /server/clickwrap/{slug}/status

Authentication

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

Path Parameters

ParameterTypeRequiredDescription
slugstringYesUnique identifier for the clickwrap

Request Body

FieldTypeRequiredDescription
user_identifierstringYesThe identifier used when capturing the user’s acceptance (e.g. email, user ID)

Request Example

curl -X POST "https://platform.chamelio.ai/server/clickwrap/privacy-policy/status" \
  -H "X-API-Key: ca_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"user_identifier": "user@example.com"}'
import requests

slug = "privacy-policy"

url = f"https://platform.chamelio.ai/server/clickwrap/{slug}/status"
headers = {
    "X-API-Key": "ca_your_api_key_here",
    "Content-Type": "application/json"
}
body = {
    "user_identifier": "user@example.com"
}

response = requests.post(url, headers=headers, json=body)
print(response.json())
const slug = "privacy-policy";

const response = await fetch(
  `https://platform.chamelio.ai/server/clickwrap/${slug}/status`,
  {
    method: 'POST',
    headers: {
      'X-API-Key': 'ca_your_api_key_here',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      user_identifier: 'user@example.com'
    })
  }
);

const data = await response.json();
console.log(data);

Response

Success Response

Status Code: 200 OK
{
  "accepted": true,
  "clickwrap_version_id": 42,
  "version_number": 3
}

Response Fields

FieldTypeDescription
acceptedbooleanWhether the user has accepted the current active version
clickwrap_version_idintegerInternal identifier of the active version checked against
version_numberintegerSequential version number of the active version

Error Responses

401 Unauthorized

Returned when authentication fails. See the authentication errors section for details.
{
  "detail": "Invalid API key"
}

404 Not Found

Returned when no active clickwrap exists for the given slug.
{
  "detail": "Clickwrap 'privacy-policy' not found"
}

500 Internal Server Error

Returned when the request fails due to a server error.
{
  "detail": "Internal server error"
}

Notes

accepted: true means the user has accepted the currently active version specifically. If the clickwrap was updated since the user last accepted, accepted will be false even though the user accepted a previous version.
Use the version_number in the response to detect when a user accepted an older version and needs to re-accept the latest terms.

Use Cases

This endpoint is useful for:
  • Access gating - Block a user from proceeding until they have accepted the current terms
  • Re-consent checks - Determine on login or feature access whether the user’s acceptance is still current
  • Audit queries - Programmatically verify acceptance status before performing a regulated action