TDCSites
Webhooks & API

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 ?perPage query parameters and return a meta pagination object.


Account & Workspaces

GET/api/v1/meAuth required
GET/api/v1/workspacesAuth required
GET/api/v1/workspaces/:workspaceIdAuth required
GET/api/v1/workspaces/:workspaceId/membersAuth required

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

GET/api/v1/sitesAuth required
GET/api/v1/sites/:siteIdAuth required
GET/api/v1/sites/:siteId/domainAuth required

Pages

GET/api/v1/sites/:siteId/pagesAuth required
GET/api/v1/sites/:siteId/pages/:pageIdAuth required

Forms & Submissions

GET/api/v1/sites/:siteId/formsAuth required
GET/api/v1/sites/:siteId/forms/:formIdAuth required
GET/api/v1/sites/:siteId/forms/:formId/submissionsAuth required
GET/api/v1/sites/:siteId/forms/:formId/submissions/:submissionIdAuth required

Collections (CMS)

GET/api/v1/sites/:siteId/collectionsAuth required
GET/api/v1/sites/:siteId/collections/:collectionIdAuth required
GET/api/v1/sites/:siteId/collections/:collectionId/itemsAuth required
GET/api/v1/sites/:siteId/collections/:collectionId/items/:itemIdAuth required

Blog

GET/api/v1/sites/:siteId/blog/postsAuth required
GET/api/v1/sites/:siteId/blog/posts/:postIdAuth required
GET/api/v1/sites/:siteId/blog/authorsAuth required
GET/api/v1/sites/:siteId/blog/categoriesAuth required

Webhooks

Manage webhook subscriptions programmatically. Webhook endpoints allow full CRUD configuration. See Webhooks for delivery, signing, and retry behavior.

GET/api/v1/webhooksAuth required
POST/api/v1/webhooksAuth required
GET/api/v1/webhooks/:webhookIdAuth required
PATCH/api/v1/webhooks/:webhookIdAuth required
DELETE/api/v1/webhooks/:webhookIdAuth required
GET/api/v1/webhooks/:webhookId/secretAuth required
POST/api/v1/webhooks/:webhookId/secretAuth required
POST/api/v1/webhooks/:webhookId/testAuth required
GET/api/v1/webhooks/:webhookId/deliveriesAuth required
POST/api/v1/webhooks/:webhookId/deliveries/:deliveryId/replayAuth required

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"]
  }'