Build custom integrations, connect Zapier/Make.com, or automate your workflow.
All API requests require an API key. Include it in the request header:
X-API-Key: your_api_key_here
Get your API key from Dashboard → Settings → API.
Rate limit: 100 requests per minute per API key.
/api/v1/leadsCreate a new lead
Body (JSON):
{
"name": "John Smith",
"email": "john@example.com",
"phone": "(555) 123-4567",
"source": "zillow",
"propertyAddress": "123 Main St, Miami, FL",
"notes": "Interested in 3BR homes"
}Required: name
Response:
{
"success": true,
"leadId": "abc123"
}/api/v1/leadsList leads
Query params: ?status=new&limit=50&offset=0
Response:
{
"leads": [
{
"id": "abc123",
"name": "John Smith",
"email": "john@example.com",
"status": "new"
}
],
"total": 1
}curl -X POST https://organicagent.io/api/v1/leads \
-H "Content-Type: application/json" \
-H "X-API-Key: your_api_key_here" \
-d '{"name": "Jane Doe", "email": "jane@example.com", "phone": "555-0100"}'/api/v1/listingsList active listings
Response:
{
"listings": [
{
"id": "lst1",
"address": "456 Oak Ave, Miami, FL",
"price": 750000,
"bedrooms": 4,
"bathrooms": 3,
"sqft": 2400
}
]
}/api/v1/clientsCreate a new client
Body (JSON):
{
"name": "Jane Doe",
"email": "jane@example.com",
"phone": "(555) 987-6543"
}Required: name, email
Response:
{
"success": true,
"clientId": "cli456"
}/api/v1/clientsList clients
Response:
{
"clients": [
{
"id": "cli456",
"name": "Jane Doe",
"email": "jane@example.com",
"buyingStage": "Searching"
}
]
}Register webhooks in Dashboard → Settings → API to receive real-time notifications when events occur.
| Event | Description |
|---|---|
| lead.created | A new lead is created (website form, email import, API, guide download) |
| client.created | A new client signs up or is created via API |
| listing.created | A new listing is added |
| showing.requested | A client requests a property showing |
| client.stage_changed | A client's pipeline stage is updated |
{
"event": "lead.created",
"timestamp": "1711234567890",
"agentId": "sarah-johnson",
"data": {
"name": "John Smith",
"email": "john@example.com",
"phone": "555-0100",
"source": "zillow"
}
}Each webhook includes an HMAC-SHA256 signature in the X-OrganicAgent-Signature header. Verify it using your webhook secret:
const crypto = require("crypto");
const signature = crypto
.createHmac("sha256", webhookSecret)
.update(JSON.stringify(payload.data) + payload.timestamp)
.digest("hex");
const isValid = signature === request.headers["x-organicagent-signature"];Headers included: X-OrganicAgent-Signature, X-OrganicAgent-Timestamp, X-OrganicAgent-Event
| Status | Meaning |
|---|---|
| 400 | Bad request — missing or invalid parameters |
| 401 | Unauthorized — invalid or missing API key |
| 404 | Not found |
| 429 | Rate limited — too many requests |
| 500 | Server error |
OrganicAgent API v1 · Questions? support@organicagent.io