API & Webhooks
Integrate EasyCRM into your systems via REST API.
Public REST API v1 with 31 permission scopes, Sanctum bearer token authentication, and a rate limit of 1,000 requests per minute. Outbound webhooks with HMAC-SHA256 signing notify you of every relevant event in the CRM.
REST API v1
31 permission scopes – exactly what the integration needs
The EasyCRM REST API v1 covers all core CRM domains: contacts, leads, opportunities, activities, sales (products, quotations, orders), inbox conversations, call logs, reports, pipelines, custom fields, sales teams, and delta sync. Every API token issued via the token manager carries explicit permission scopes – for example `read:contacts`, `write:opportunities`, `read:reports`, or `write:calls`. This ensures a third-party integration only has access to what it genuinely needs. The rate limit is 1,000 requests per minute with a burst limit of 60 requests per 5 seconds. API access is available on the Standard and Pro plans. Authentication uses a Sanctum bearer token in the `Authorization: Bearer <token>` header.
- 31 named permission scopes (read/write per domain)
- Sanctum bearer token authentication
- Rate limit: 1,000 req/min, burst 60 req/5 s
- Cursor-based and offset pagination for list endpoints
- Delta sync endpoint for offline mobile clients
Outbound webhooks
11 HMAC-signed events with DLQ and manual redelivery
EasyCRM sends HTTP POST notifications to your endpoint URL for every relevant event. Each webhook request is signed with HMAC-SHA256 using your subscription's secret key – verify the signature in the `X-EasyCRM-Signature` header and you can be certain the event came from EasyCRM. Eleven event types are available: `lead_created`, `lead_converted`, `opportunity_stage_changed`, `deal_won`, `deal_lost`, `contact_created`, `contact_updated`, `call_logged`, `message_received`, `quotation_sent`, and `order_created`. If your endpoint is temporarily unavailable, EasyCRM queues the event for redelivery. On the Pro plan you can view failed events in the dead letter queue (DLQ) and trigger manual redelivery from the settings UI. SSRF protection blocks private and local IP ranges.
- 11 webhook event types covering the full CRM lifecycle
- HMAC-SHA256 signature on every event – verifiable on your side
- Delivery log with HTTP status and response body
- Dead letter queue (DLQ) with manual redelivery (Pro)
- SSRF protection – private IP addresses are blocked
Plugin framework
Extend EasyCRM with your own plugins
EasyCRM provides a declarative plugin framework for advanced integrations. A plugin is defined by a JSON manifest that describes permission scopes, webhook event subscriptions, and UI slots where the plugin appears. Installation goes through an OAuth consent flow directly in the organisation's admin panel. In the SaaS environment plugins are isolated (no in-process PHP); in a self-hosted installation in-process loading is available for maximum flexibility. The plugin framework is available on the Pro plan. If you manage multiple client organisations or are building a product integration on top of EasyCRM, the plugin manifest is the right approach – define once, deploy to each organisation independently.
- Declarative JSON manifest plugin framework
- OAuth consent flow for plugin installation in an organisation
- Per-plugin permission scopes and webhook event subscriptions
- UI slots – render custom content inside the CRM interface
- In-process PHP loading in self-hosted mode
What you gain
EasyCRM as a building block for your systems
- Complete API covering contacts, sales, inbox, and reports
- Precise permission scopes – integrations get only what they need
- HMAC-signed webhooks – secure and verifiable
- DLQ and manual redelivery – no event is lost (Pro)
- Plugin framework for repeatable deployment of custom extensions
- Auto-generated OpenAPI spec – typed client for your tech stack
Works with
FAQ
Developer questions
Connect EasyCRM to your tools via REST API
Sign up free and start experimenting with the API on the Standard plan.