Click API Overview
The Click API enables you to create, deploy, and manage clickwrap agreements programmatically. Capture legally binding consent with a JavaScript SDK and manage the full lifecycle of templates, deployments, and evidence through a set of REST APIs.
Key Features
- Template Management - Create and version rich-text consent templates with DOCX support
- Deployments - Deploy templates to sites with locale and branding configuration
- JavaScript SDK - Drop-in widget renders consent experiences in your application
- Consent Acceptance - Idempotent endpoint records user consent with evidence
- Identity Verification - Optional OTP-based verification before consent
- Evidence Bundles - Tamper-evident proof of consent for compliance
- Analytics - Track acceptance rates, versions, and user consent state
Architecture
Three APIs, One Product
Click is composed of three services, each purpose-built for its role:
Management API
The internal API for managing templates, deployments, sessions, and analytics. Used by your backend and the Propper dashboard.
| Area | Endpoints |
|---|---|
| Templates | CRUD, versioning, statistics |
| Deployments | Create, update, manage deployment targets |
| Sessions | Create and complete consent sessions |
| Evidence | Retrieve tamper-evident evidence bundles |
| Analytics | Acceptance rates and consent metrics |
| Consent State | Per-user consent tracking |
Accept API
A public-facing, high-throughput endpoint for recording consent acceptance. Designed for client-side calls from the JavaScript SDK with idempotent writes and Pub/Sub integration.
| Feature | Description |
|---|---|
| Idempotent writes | Duplicate requests return the same result |
| Identity verification | Optional OTP-based verification |
| Pub/Sub integration | Triggers async evidence processing |
Render API
A public-facing, read-only endpoint that returns Experience JSON for the JavaScript SDK to render. Supports edge caching and locale overrides.
| Feature | Description |
|---|---|
| Deployment rendering | Render by deployment ID |
| Template rendering | Render by template and version |
| Locale override | Dynamic locale selection |
| Edge caching | ETag-based caching for performance |
Core Concepts
Template
A template defines the consent language, layout, and fields. Templates support rich text via DOCX and can be versioned independently.
Template Version
Each template can have multiple versions. Only published versions can be deployed. Version history provides an audit trail of consent language changes.
Deployment
A deployment links a published template version to a site or application. Deployments specify locale, branding, and which template version to serve.
Session
A session tracks a single consent interaction. When a user views and accepts a consent experience, a session records the event with metadata.
Evidence Bundle
An evidence bundle is the tamper-evident proof that consent was given. It includes the template version, user metadata, timestamps, and a content hash.
Consent State
Consent state tracks whether a specific user has given consent for a specific template. It supports querying and updating per-user consent status.
Integration Flow
API Base URLs
| Service | Base URL |
|---|---|
| Management API | https://api.propper.ai/v1/click/management |
| Accept API | https://api.propper.ai/v1/click/accept |
| Render API | https://api.propper.ai/v1/click/render |
Authentication
The Management API uses OAuth 2.0 with Bearer tokens:
POST https://auth.propper.ai/oauth2/token
Content-Type: application/json
{
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"scope": "click:admin click:read"
}
The Render and Accept APIs authenticate via API key or Bearer token depending on the integration method.
OAuth Scopes
| Scope | Description |
|---|---|
click:read | Read templates, deployments, and consent state |
click:admin | Full management access (create, update, delete) |
Next Steps
Quickstart
Deploy your first clickwrap agreement in minutes.
API Reference
Complete endpoint documentation for all three Click APIs.