The PropAgent AI public REST API lets you read and write core records — properties, tenants, maintenance tickets, and leads — from your own scripts or from tools like Zapier and Make. This is the same API our official Zapier integration is built on.
This is an Enterprise-plan feature. Get your API key from your dashboard at Settings → API Key — generate one if you don't have one yet, and reveal or copy it from there any time. If you're not on Enterprise, see Pricing.
https://propagent-api.onrender.com/api/v1Every endpoint below is relative to this base URL. All requests and responses use JSON.
Send your organization's API key on every request in an X-API-Key header. There is no OAuth flow and no separate bearer token — the key itself is the credential, scoped to your organization the same way a logged-in dashboard user is.
X-API-Key: pa_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx401 Unauthorized with {"detail": "Missing X-API-Key header"}.401 Unauthorized with {"detail": "Invalid API key"}.402 Payment Required.GET list endpoints (/tenants, /maintenance, /leads) support since (ISO 8601 timestamp) and limit (default 25, max 100) query params for polling-style integrations.category, priority, or source) return 422 Unprocessable Entity listing the valid options./meVerify an API key and return the organization it belongs to. Useful as a connection test.
curl https://propagent-api.onrender.com/api/v1/me \
-H "X-API-Key: pa_live_..."{
"id": "b3f1e2a0-6c1a-4e9d-9a3f-2d6e7c1a9b44",
"name": "Sunrise Property Group"
}/propertiesList all properties in your organization, ordered by name. Read-only.
curl https://propagent-api.onrender.com/api/v1/properties \
-H "X-API-Key: pa_live_..."[
{
"id": "d4a2f6e1-...",
"name": "Maple Court Apartments",
"address": "120 Maple St",
"city": "Austin",
"state": "TX",
"total_units": 24
}
]/tenantsList tenants in your organization, newest first.
curl "https://propagent-api.onrender.com/api/v1/tenants?since=2026-08-01T00:00:00Z&limit=25" \
-H "X-API-Key: pa_live_..."[
{
"id": "8a1c...",
"first_name": "Maria",
"last_name": "Gomez",
"email": "maria@example.com",
"phone": "+15125550100",
"is_active": true,
"created_at": "2026-08-05T14:22:01Z"
}
]/tenantsCreate a tenant in your organization.
curl -X POST https://propagent-api.onrender.com/api/v1/tenants \
-H "X-API-Key: pa_live_..." \
-H "Content-Type: application/json" \
-d '{
"first_name": "Maria",
"last_name": "Gomez",
"email": "maria@example.com",
"phone": "+15125550100"
}'{
"id": "8a1c...",
"first_name": "Maria",
"last_name": "Gomez",
"email": "maria@example.com",
"phone": "+15125550100",
"is_active": true,
"created_at": "2026-08-07T18:04:12Z"
}/maintenanceList maintenance tickets across all your properties, newest first.
curl "https://propagent-api.onrender.com/api/v1/maintenance?limit=10" \
-H "X-API-Key: pa_live_..."[
{
"id": "f0e9...",
"property_id": "d4a2f6e1-...",
"title": "Leaking kitchen faucet",
"description": "Tenant reports steady drip under the sink.",
"category": "plumbing",
"priority": "medium",
"status": "open",
"created_at": "2026-08-06T09:11:40Z"
}
]/maintenanceCreate a maintenance ticket for one of your properties. Status is always set to open on creation.
curl -X POST https://propagent-api.onrender.com/api/v1/maintenance \
-H "X-API-Key: pa_live_..." \
-H "Content-Type: application/json" \
-d '{
"property_id": "d4a2f6e1-...",
"title": "Leaking kitchen faucet",
"description": "Tenant reports steady drip under the sink.",
"category": "plumbing",
"priority": "medium"
}'{
"id": "f0e9...",
"property_id": "d4a2f6e1-...",
"title": "Leaking kitchen faucet",
"description": "Tenant reports steady drip under the sink.",
"category": "plumbing",
"priority": "medium",
"status": "open",
"created_at": "2026-08-07T18:07:55Z"
}/leadsList leads in your organization, newest first.
curl "https://propagent-api.onrender.com/api/v1/leads?limit=25" \
-H "X-API-Key: pa_live_..."[
{
"id": "3c7b...",
"first_name": "Alex",
"last_name": "Chen",
"company": "Chen Holdings",
"email": "alex@chenholdings.com",
"phone": "+15125550101",
"source": "website",
"status": "new",
"score": 62,
"created_at": "2026-08-07T11:30:00Z"
}
]/leadsCreate a lead in your organization. Status is always set to new on creation — useful for piping in leads from a landing page, ad platform, or Zapier/Make.
curl -X POST https://propagent-api.onrender.com/api/v1/leads \
-H "X-API-Key: pa_live_..." \
-H "Content-Type: application/json" \
-d '{
"first_name": "Alex",
"last_name": "Chen",
"email": "alex@chenholdings.com",
"source": "website"
}'{
"id": "3c7b...",
"first_name": "Alex",
"last_name": "Chen",
"company": null,
"email": "alex@chenholdings.com",
"phone": null,
"source": "website",
"status": "new",
"score": 0,
"created_at": "2026-08-07T18:12:03Z"
}Questions or need a higher-volume integration? Reach us via Contact, or see our Security & Data Handling page for how organization data is isolated.