Guide

Chatting Zapier API reference

Use this reference while reviewing or building the Chatting Zapier app.

Chatting Zapier API reference cover with endpoint, request, and response panels.
9 Apr 20266 min read

Base URL and response format

  • Production base URL: https://usechatting.com/api/zapier
  • Authentication header: X-API-Key: <your-api-key>
  • Success shape: { "ok": true, ... }
  • Error shape: { "ok": false, "error": "<code>" }
HTTP
GET /api/zapier/me
X-API-Key: <your-api-key>

200 OK
{
  "ok": true,
  "workspace_id": "owner_123",
  "team_name": "Acme Team",
  "owner_email": "owner@example.com"
}

401 Unauthorized
{
  "ok": false,
  "error": "api-key-missing"
}

Authentication and idempotency

  • Required auth header: X-API-Key: <your-api-key>
  • Auth check endpoint: GET /api/zapier/me
  • Missing key error: api-key-missing
  • Invalid or revoked key error: api-key-invalid

Create-style actions also accept Idempotency-Key or X-Idempotency-Key. Reusing the same key with a different payload returns idempotency-key-conflict.

HTTP
X-API-Key: chatting_live_...
Idempotency-Key: 0b0e6a45-92b4-4da0-b0a9-6e612a8d02fa

Ready to talk to your visitors?

Stop losing customers to slow responses. Start with Chatting today, free.

Try Chatting free

Trigger subscriptions and sample endpoints

  • Supported events: conversation.created, conversation.resolved, contact.created, tag.added
  • Subscription endpoint: POST /api/zapier/webhooks/subscribe
  • Unsubscribe endpoint: DELETE /api/zapier/webhooks/{id}
  • Sample endpoints return recent records for Zapier editor mapping
Endpoints
Subscribe:           POST /api/zapier/webhooks/subscribe
Unsubscribe:         DELETE /api/zapier/webhooks/{id}
Conversation sample: GET /api/zapier/conversations?limit=1
Resolved sample:     GET /api/zapier/conversations?limit=1&event=conversation.resolved
Tag-added sample:    GET /api/zapier/conversations?limit=1&event=tag.added
Contact sample:      GET /api/zapier/contacts?limit=1
HTTP
POST /api/zapier/webhooks/subscribe
Content-Type: application/json
X-API-Key: <your-api-key>

{
  "event": "conversation.created",
  "target_url": "https://hooks.zapier.com/hooks/catch/123/abc"
}

201 Created
{
  "ok": true,
  "id": "wh_123",
  "event": "conversation.created",
  "active": true
}
HTTP
DELETE /api/zapier/webhooks/wh_123
X-API-Key: <your-api-key>

200 OK
{
  "ok": true,
  "id": "wh_123",
  "active": false
}

Action endpoints

  • Create contact: POST /api/zapier/contacts
  • Add tag to contact: POST /api/zapier/contacts/{id}/tags
  • Send message: POST /api/zapier/conversations/{id}/messages
HTTP
POST /api/zapier/contacts
Content-Type: application/json
X-API-Key: <your-api-key>

{
  "email": "lead@example.com",
  "name": "Ava Brooks",
  "phone": "+1 555 111 2222",
  "company": "Acme",
  "status": "lead",
  "tags": ["vip", "demo"],
  "customFields": {
    "crm_owner": "tina"
  }
}

201 Created
{
  "ok": true,
  "id": "contact_123",
  "email": "lead@example.com",
  "name": "Ava Brooks",
  "created_at": "2026-04-09T00:00:00.000Z"
}
HTTP
POST /api/zapier/contacts/contact_123/tags
Content-Type: application/json
X-API-Key: <your-api-key>

{
  "tag": "vip"
}

200 OK
{
  "ok": true,
  "id": "contact_123",
  "tag": "vip"
}
HTTP
POST /api/zapier/conversations/conv_123/messages
Content-Type: application/json
X-API-Key: <your-api-key>

{
  "message": "Thanks, we got your message.",
  "sender": "system"
}

201 Created
{
  "ok": true,
  "id": "msg_123",
  "conversation_id": "conv_123",
  "sender": "system",
  "created_at": "2026-04-09T00:00:00.000Z"
}

Common error codes

The Zapier API keeps errors intentionally short and machine-readable so the Zapier editor can surface clear setup issues. These are the main codes to expect while building and reviewing the integration.

  • api-key-missing — the X-API-Key header is missing
  • api-key-invalid — the API key prefix exists but the key does not verify
  • invalid-subscription — the trigger event or target_url is invalid
  • missing-emailPOST /contacts was called without an email
  • workspace-site-missing — the workspace has no primary site to attach contacts to
  • contact-not-found — a newly created contact could not be loaded back
  • contact-site-forbidden — the contact write target is outside the workspace
  • contact-save-failed — contact creation failed for a non-validation reason
  • missing-tagPOST /contacts/{id}/tags was called without a tag
  • missing-messagePOST /conversations/{id}/messages was called without a message
  • not-found — the requested contact, conversation, or webhook id does not exist
  • idempotency-key-conflict — the same idempotency key was reused with a different payload

Sample trigger payloads

Chatting sends flattened data__... fields for easy Zapier mapping, plus the nested data object for integrations that want the original grouped structure.

JSON
{
  "event": "conversation.created",
  "timestamp": "2026-04-08T00:50:00.000Z",
  "data__conversation_id": "conv_abc123",
  "data__visitor_email": "visitor@example.com",
  "data__visitor_name": "Ava Brooks",
  "data__page_url": "https://www.usechatting.com/pricing",
  "data__first_message": "Do you have a free plan?",
  "data__assigned_to": null,
  "data": {
    "conversation_id": "conv_abc123",
    "visitor_email": "visitor@example.com",
    "visitor_name": "Ava Brooks",
    "page_url": "https://www.usechatting.com/pricing",
    "first_message": "Do you have a free plan?",
    "tags": [],
    "assigned_to": null
  }
}
JSON
{
  "event": "conversation.resolved",
  "timestamp": "2026-04-08T00:50:00.000Z",
  "data__conversation_id": "conv_abc123",
  "data__visitor_email": "visitor@example.com",
  "data__resolved_by": "owner@usechatting.com",
  "data__message_count": 8,
  "data__duration_seconds": 420,
  "data": {
    "conversation_id": "conv_abc123",
    "visitor_email": "visitor@example.com",
    "resolved_by": "owner@usechatting.com",
    "message_count": 8,
    "duration_seconds": 420
  }
}
JSON
{
  "event": "contact.created",
  "timestamp": "2026-04-08T01:30:00.000Z",
  "data__contact_id": "cnt_abc123",
  "data__email": "visitor@example.com",
  "data__name": "Ava Brooks",
  "data__company": "Acme Corp",
  "data__source": "chat_form",
  "data": {
    "contact_id": "cnt_abc123",
    "email": "visitor@example.com",
    "name": "Ava Brooks",
    "company": "Acme Corp",
    "source": "chat_form"
  }
}
JSON
{
  "event": "tag.added",
  "timestamp": "2026-04-08T02:00:00.000Z",
  "data__conversation_id": "conv_abc123",
  "data__tag": "vip",
  "data__added_by": "owner@usechatting.com",
  "data": {
    "conversation_id": "conv_abc123",
    "tag": "vip",
    "added_by": "owner@usechatting.com"
  }
}

Live chat for small teams.
No enterprise bloat.

Start free — live in 3 minutes →

No credit card. No sales call.