Public API
Unauthenticated endpoints for public pages (forms, events, business cards, workspace resolution).
No Authorization header required unless noted.
Public events
GET /api/public/events/{event_id}/
Returns public event details for share/embed pages.
Public forms
GET /api/public/forms/{form_id}/
POST /api/public/forms/{form_id}/submit/
Submit example
POST /api/public/forms/{form_id}/submit/
Content-Type: application/json
{
"data": {
"email": "visitor@example.com",
"name": "Visitor Name"
}
}
Public business cards
GET /api/public/business-cards/{identifier}/
POST /api/public/business-cards/{identifier}/scan/
POST /api/public/business-cards/{identifier}/view/
POST /api/public/business-cards/{identifier}/contact-download/
POST /api/public/business-cards/{identifier}/link-tap/
GET /api/public/business-cards/{identifier}/lead-capture/
POST /api/public/business-cards/{identifier}/leads/
GET /api/public/business-cards/{identifier}/media/{asset}/
{identifier} is the public slug or card ID.
Lead capture from card
POST /api/public/business-cards/{identifier}/leads/
Content-Type: application/json
{
"email": "prospect@example.com",
"name": "Prospect Name",
"company": "Acme"
}
Public workspace resolution
Used by the share app and custom domains:
GET /api/public/workspaces/resolve/{slug}/
GET /api/public/workspaces/resolve-host/
GET /api/public/workspaces/embed-origins/
| Endpoint | Purpose |
|---|---|
resolve/{slug}/ | Resolve workspace by public slug |
resolve-host/ | Resolve workspace from Host header (custom domain) |
embed-origins/ | Allowed iframe embed origins |
CORS
Public endpoints allow configured origins for browser form submits and embeds. See CORS_ALLOWED_ORIGINS in backend settings.
Rate limiting
Public submit endpoints may be rate-limited per IP when Redis is available.