Get leads in and contacts out with a small, plain API.

One webhook for incoming leads and a REST API for your contacts and deals. API keys come from your workspace settings.

Jamar and your team included
Cancel any time
INBOUND WEBHOOK AND REST API

Endpoints

REST calls send your API key as Authorization: Bearer. Keys carry read, write and delete scopes, and API access depends on your plan. Responses use { "ok": true, "data": ... } on success and { "ok": false, "error": { "code", "message" } } on failure.

POST /api/webhooks/leads

Send a lead into your CRM from a form, Zapier, Make or your own code. Set X-Jara-Workspace-Id to your workspace id, then authenticate one of two ways: an X-Jara-Signature header (t=<unix seconds>,v1=<hex HMAC-SHA256 of "<t>.<raw body>" with your secret>, valid for five minutes either side), or Authorization: Bearer <secret> for tools that cannot compute an HMAC. Find your secret in Settings under the lead capture webhook. Required fields: email, firstName, lastName. Optional: phone, leadSource (social, gmb, seo, website, referral, event or direct), sourceDetail. An existing email is updated, not duplicated. Returns { "success": true, "contactId": "..." }. Errors: 400 for missing or invalid fields, 401 for bad credentials, 403 if your plan does not include Automations, 413 over 64 KB, 429 when rate limited.

curl -X POST https://YOUR-WORKSPACE-DOMAIN/api/webhooks/leads \
  -H "Content-Type: application/json" \
  -H "X-Jara-Workspace-Id: YOUR_WORKSPACE_ID" \
  -H "Authorization: Bearer YOUR_WEBHOOK_SECRET" \
  -d '{
    "email": "jane@example.com",
    "firstName": "Jane",
    "lastName": "Smith",
    "phone": "+1-555-0192",
    "leadSource": "website"
  }'

GET, POST /api/v1/contacts

List contacts (page, pageSize up to 100, email, status, tags, sort, order) or create one (firstName and email required; lastName, phone, status, tags, leadSource optional). Create returns 201 with the contact. A duplicate email returns 409.

curl https://YOUR-WORKSPACE-DOMAIN/api/v1/contacts?pageSize=25 \
  -H "Authorization: Bearer YOUR_API_KEY"

# 200
{ "ok": true, "data": [ { "id": "...", "firstName": "Jane", "email": "jane@example.com" } ],
  "meta": { "page": 1, "pageSize": 25, "total": 1 } }

GET, PUT, DELETE /api/v1/contacts/{id}

Read, update (firstName, lastName, email, phone, status, tags, leadSource, lifecycleStage, leadStatus) or delete one contact.

curl -X PUT https://YOUR-WORKSPACE-DOMAIN/api/v1/contacts/CONTACT_ID \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "tags": ["vip"] }'

GET, POST /api/v1/deals

List deals (page, pageSize, stage, pipelineId, assigneeId, sort, order) or create one. Only name is required. Optional: amount or amountCents, stage, pipelineId, expectedCloseDate, assigneeId, notes, contactIds.

curl -X POST https://YOUR-WORKSPACE-DOMAIN/api/v1/deals \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Kitchen remodel", "amount": 4500, "stage": "discovery" }'

GET, PUT, DELETE /api/v1/deals/{id}

Read, update (name, amount, amountCents, stage, pipelineId, expectedCloseDate, assigneeId, notes, lossReason) or delete one deal.

curl https://YOUR-WORKSPACE-DOMAIN/api/v1/deals/DEAL_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

Point your form at your CRM.

Start your 7-day trial, grab your workspace id and send your first lead.

7 days free
Jamar and your team included
Cancel from Billing any time