API Reference
Every REST endpoint, grouped by resource, with request examples.
All endpoints are relative to the base URL https://yourapp.com/api/v1/ and require a Bearer token. See Authentication and the response format.
Path parameters are written with a leading colon, e.g. :siteId. List endpoints accept ?page and ?limit query parameters (page defaults to 1; limit defaults to 20 and maxes out at 100) and return a meta pagination object — except GET /workspaces, GET /sites, and GET /workspaces/:workspaceId/members, which return their full array directly with no pagination.
Every resource below is read-only through the API. The one exception is Webhooks, which supports full create, update, and delete.
Playground
Send real requests to the API without leaving this page. Paste your Secret Key, pick an endpoint, fill in any IDs it needs, and click Send (or press Ctrl + Enter, ⌘ + Enter on Mac). Every endpoint further down this page also has a Try it button that loads it straight into the playground.
The playground uses your real key against your real data. Every request counts toward your rate limit, and the webhook endpoints that create, update, delete, or rotate make real changes. Deleting a webhook or rotating its secret asks you to click a second time to confirm.
API Playground
Send real requests with your own key — right from the docs.
https://yourapp.com/api/v1/me
Get the user who owns the API key.
This endpoint takes no parameters — just hit Send.
Ready when you are
Send the request to see the live response here.
curl "https://yourapp.com/api/v1/me" \ -H "Authorization: Bearer $TDC_API_KEY"Reads your key from the TDC_API_KEY environment variable, so it’s safe to paste into scripts and repos.
Your key never leaves your browser except to call this site's own /api/v1 endpoints. It's kept in memory and forgotten when you leave the page — unless you tick Remember for this tab, and even then it's cleared as soon as the tab closes. The generated code samples read the key from a TDC_API_KEY environment variable instead of embedding it.
Account & Workspaces
Example — list your workspaces
curl -H "Authorization: Bearer tdc_YOUR_API_KEY" \
https://yourapp.com/api/v1/workspaces{
"ok": true,
"data": [
{ "id": "ws_a1", "name": "Acme Inc", "plan": "pro" }
]
}Sites
Pages
Forms & Submissions
Collections (CMS)
Blog
Webhooks
Manage webhook subscriptions programmatically. Webhook endpoints allow full CRUD configuration. See Webhooks for delivery, signing, and retry behavior.
GET /webhooks/:webhookId/secret reveals the current signing secret in full; POST to the same path rotates it and invalidates the old one immediately. A workspace can hold up to 10 webhooks — creating an 11th is rejected.
Example — subscribe to form submissions
curl -X POST https://yourapp.com/api/v1/webhooks \
-H "Authorization: Bearer tdc_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"workspaceId": "ws_abc123",
"name": "CRM Sync",
"url": "https://hooks.example.com/tdc",
"events": ["form.submission.created"]
}'Related
- API Overview — Base URL, request/response formats, error codes, and rate limits.
- Webhooks — Set up endpoints, verify signatures, and handle retries.
- Event Types — Which webhook events actually fire, and their payloads.
