API reference
GET /v1/contacts (search, exact email, lifecycle stage, changed since), GET /v1/contacts/{id}, POST /v1/contacts (with an optional Idempotency-Key; a duplicate email is 409 contact_exists with the existing id) and PATCH /v1/contacts/{id} (only the fields sent change). The API never deletes a contact or lifts a do-not-contact or email opt-out.GET /v1/projects, GET /v1/projects/{id}, GET /v1/projects/{id}/items, GET /v1/items/{id} and POST /v1/projects/{id}/items to create a page from Markdown or HTML (with an optional Idempotency-Key). Files are listed and described but not uploaded or downloaded.GET /v1/workflows/{id}, POST /v1/workflows/{id}/runs (with a required Idempotency-Key), GET /v1/workflows/{id}/runs, GET /v1/runs/{id} and GET /v1/usage. Keys can carry a monthly spend cap.GET /v1/workflows.