Developers
Build on Ayidhu CRM
A REST API, signed webhooks and an MCP server for AI agents — included on every plan, and bound by the same permissions as your team.
API reference: OpenAPI 3.1 description
REST API
Read and write your CRM over HTTPS
- Create keys in Settings → API & Webhooks: read-only or read-write, with optional expiry.
- Each key acts as one member of your team, with that member’s role permissions and record visibility.
- Accounts, contacts, leads, opportunities, tasks, appointments, cases, referrals, quotes, orders, products, invoices and custom objects.
- Run saved reports; look up members, picklists and object definitions.
- Settings, billing, members and key management are never reachable with a key.
curl https://ayidhu.com/api/leads \
-H "Authorization: Bearer ayk_…"
curl -X POST https://ayidhu.com/api/contacts \
-H "Authorization: Bearer ayk_…" \
-H "Content-Type: application/json" \
-d '{"name":"Ada Lovelace","email":"ada@example.com","accountId":"ACC…"}'Webhooks
Get told the moment something changes
- Subscribe an HTTPS endpoint to <object>.created and <object>.updated for any standard or custom object — or all events.
- Every delivery is signed: Ayidhu-Signature: t=<unix>,v1=HMAC-SHA256(secret, "t.body").
- Failed deliveries are retried with backoff for about 15 hours; every attempt is logged.
- Send a test event and pause or resume endpoints from Settings.
POST https://your-app.example.com/ayidhu
Ayidhu-Signature: t=1759050000,v1=5f2c…
{
"id": "WHD…",
"event": "opportunities.updated",
"occurredAt": "2026-09-28T10:00:00.000Z",
"data": { "object": "opportunities", "id": "OPP…", "record": { "stage": "Closed Won", … } }
}MCP server
Let AI agents work in your CRM — safely
- A Model Context Protocol server at https://ayidhu.com/api/mcp, authenticated with an API key.
- Tools: list objects, search, list/get records, create and update records, list and run reports.
- An agent can only do what the key’s member can do; a read-only key can’t change anything.
- Every change an agent makes is in your audit trail, labelled with the key’s name.
{
"mcpServers": {
"ayidhu": {
"url": "https://ayidhu.com/api/mcp",
"headers": { "Authorization": "Bearer ayk_…" }
}
}
}