ByDomu for developers

Build on your agency’s data.

A REST API to read and write to the CRM, webhooks to hear about what happens and an MCP server so your AI can query it. All with your agency’s key.

REST + JSONOpenAPI 3.0api.bydomu.com/v1
Request
# Tus propiedades publicadas en Laureles, de 2 alcobas o más
curl -G "https://api.bydomu.com/v1/properties" \
  -d neighborhood=Laureles -d bedroomsMin=2 \
  -H "X-API-Key: domu_sk_live_…"
Response · 200
{
  "data": [
    { "code": "P-0042", "title": "Apartamento en Laureles",
      "transactionType": "SALE", "bedrooms": 2, "area": 78, … }
  ],
  "meta": { "total": 1, "page": 1, "pageSize": 12, "totalPages": 1 }
}

What you can do

Read your CRM

Contacts, deals and pipelines, tasks, appointments, conversations, team, tags, commissions, accounting, leases, documents and signature envelopes.

Write to the CRM

With approval

Create and update contacts, deals, tasks, appointments, properties and notes, and move deals between stages. With Idempotency-Key to avoid duplicates.

Webhooks

With approval

Any catalog event, signed with HMAC-SHA256.

MCP server

Nine read-only tools at mcp.bydomu.com/mcp.

Authentication

Every request carries the key in the X-API-Key header. You create them in ByDomu, under Settings › API Keys; the full key is shown only once.

Publishabledomu_pk_live_

For your website and the browser: it can live in the page’s code.

portal:read · leads:write · booking:write · finder:write · events:write

Only public data and receiving clients.

Secretdomu_sk_live_

Server-side only: Zapier, Make, n8n, your backend or an MCP client.

Any permission: *:read and, with approval, *:write

From a browser it returns 403.

Older keys (domu_live_) keep working the same while we review them.

Access levels

What a key can do depends on the plan and on what support approves. There is never API access during the free trial or with an unverified email.

LevelPlansHow to get it
1Publishable keys300 requests and 60 writes per minute · up to 5 keysAny paid planNo request
2Read-only secret keys60 requests per minute · up to 2 keysBusiness · EnterpriseAutomatic
3Writes, messages, webhooks and higher limitsTailored to what’s approvedAny paid planSupport review

Higher limits or more permissions are requested from Settings › API Keys.

MCP server

Read-only

Claude, the OpenAI API or any MCP client queries your agency with a secret key. It inherits the API’s permissions, limits and logs.

POSThttps://mcp.bydomu.com/mcp
search_propertiesget_propertysearch_contactsget_contactlist_appointmentslist_pipelineslist_dealslist_pending_tasksget_summary
Guide: Connect ByDomu to Claude

Webhooks

With approval

We notify you by POST of any catalog event: an exact type, a whole object or all of them. Signed with HMAC-SHA256 in X-Domu-Signature.

contact.createddeal.stage_changeddeal.wonappointment.confirmedproperty.price_changedlease.expiringmessage.receiveddeal.**

Up to 5 attempts (0 s, 5 s, 30 s, 2 min and 10 min) on network errors, 429 or 5xx. Reply 2xx in under 10 s.

Limits and pagination

Every response tells you what’s left of the minute. Lists are paginated with page and pageSize and include meta.total and meta.totalPages.

Response headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 57
X-RateLimit-Reset: 41
Retry-After: 41            # only with 429
Idempotency-Status: replayed  # retry with the same Idempotency-Key

Errors

Always with the same shape: { "error": { "code", "message" } }.

400VALIDATION_ERRORInvalid input
401UNAUTHORIZEDMissing or invalid key
402PAYMENT_REQUIREDAccount is read-only: write rejected
403FORBIDDENThe key lacks that permission
403SECRET_KEY_IN_BROWSERSecret key used from a browser
403API_ACCESS_REQUIREDThe account’s access level doesn’t allow this key
403PLAN_LIMIT_REACHEDA plan limit was reached
404NOT_FOUNDResource not found
409IDEMPOTENCY_CONFLICTIdempotency-Key reused with a different body
429RATE_LIMITEDPer-minute limit exceeded

Changelog

See all
  • MCPRead-only MCP server at mcp.bydomu.com, with nine tools.
  • AccessAccess levels: publishable keys without a request, read-only secret keys in Business and Enterprise, everything else with approval.
  • KeysPublishable (domu_pk_live_) and secret (domu_sk_live_) keys. Legacy keys keep working the same.
  • APIWrites to the CRM, webhooks for Zapier, n8n and Make, and OpenAPI 3.0.

Full reference

Every endpoint with its parameters, the permission it needs, the response and examples in cURL, JavaScript and Python.

There’s no official SDK: it’s REST with JSON, and the OpenAPI spec lets you generate your own client.