Developer Resources
Build powerful integrations with the Acre API
Get Started in Minutes
Access comprehensive documentation, code samples, and SDKs to integrate Acre into your applications
API Overview
The Acre API provides programmatic access to all features of our property management platform. Build custom integrations, automate workflows, and extend Acre's capabilities to meet your unique needs.
Lightning Fast
Average response time under 100ms
Enterprise Security
OAuth 2.0 and API key authentication
Comprehensive Data
Access all your property data via API
Real-time Updates
Webhooks for instant notifications
Base URL
https://api.tryacre.io/v1
API Status
Authentication
Acre API supports two authentication methods: API Keys for server-to-server communication and OAuth 2.0 for user-authorized applications.
API Key Authentication
Include your API key in the request header:
Authorization: Bearer YOUR_API_KEY
OAuth 2.0 Flow
For applications that need to access user data:
# Authorization endpoint https://auth.tryacre.io/oauth/authorize # Token endpoint https://auth.tryacre.io/oauth/token # Example authorization URL https://auth.tryacre.io/oauth/authorize? client_id=YOUR_CLIENT_ID& redirect_uri=YOUR_REDIRECT_URI& response_type=code& scope=properties:read tenants:read
Rate Limiting
| Plan | Requests/Hour | Requests/Day | Burst Rate |
|---|---|---|---|
| Free | 1,000 | 10,000 | 10/second |
| Professional | 10,000 | 100,000 | 50/second |
| Enterprise | Unlimited | Unlimited | Custom |
API Endpoints
Core endpoints for managing your property data and operations.
Properties
/properties
List all properties with pagination and filtering
/properties
Create a new property
/properties/{id}
Get detailed property information
/properties/{id}
Update property details
Tenants
/tenants
List all tenants across properties
/tenants
Add a new tenant
/tenants/{id}/payments
Get tenant payment history
/tenants/{id}/documents
Upload tenant documents
Example Request
curl -X GET https://api.tryacre.io/v1/properties \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "page": 1, "limit": 20, "status": "active" }'
SDKs & Libraries
Official SDKs make it easy to integrate Acre into your applications.
Quick Installation
npm install @acre/sdk
Example Usage
import { AcreClient } from '@acre/sdk'; const acre = new AcreClient({ apiKey: 'YOUR_API_KEY' }); // Get all properties const properties = await acre.properties.list({ status: 'active', limit: 20 }); // Create a new tenant const tenant = await acre.tenants.create({ firstName: 'John', lastName: 'Doe', email: 'john@example.com', propertyId: 'prop_123' });
Webhooks
Receive real-time notifications when events occur in your Acre account.
Available Events
New tenant added to a property
Rent payment successfully processed
New maintenance request submitted
Lease agreement has expired
Webhook Payload Example
{
"id": "evt_1234567890",
"type": "payment.received",
"created": "2025-01-15T10:30:00Z",
"data": {
"payment_id": "pay_abc123",
"amount": 1500.00,
"currency": "USD",
"tenant_id": "ten_xyz789",
"property_id": "prop_123",
"payment_method": "bank_transfer"
}
}
Code Examples
Common integration patterns and use cases.
Automated Rent Collection
// Schedule monthly rent collection async function collectMonthlyRent() { const tenants = await acre.tenants.list({ status: 'active', has_autopay: true }); for (const tenant of tenants) { try { const payment = await acre.payments.create({ tenant_id: tenant.id, amount: tenant.monthly_rent, type: 'rent', method: 'autopay' }); console.log(`Collected rent from ${tenant.name}`); } catch (error) { console.error(`Failed to collect from ${tenant.name}:`, error); } } }
Maintenance Request Automation
import acre from datetime import datetime # Initialize client client = acre.Client(api_key='YOUR_API_KEY') # Create maintenance request with auto-assignment def create_maintenance_request(property_id, issue_type, description): # Find available technician technician = client.technicians.find_available( skill=issue_type, location=property_id ) # Create request request = client.maintenance.create( property_id=property_id, issue_type=issue_type, description=description, priority='high' if 'emergency' in description else 'normal', assigned_to=technician.id if technician else None ) return request
Developer Support
Resources and support channels to help you build with Acre.
API Reference
Complete documentation for all endpoints, parameters, and responses
Developer Forum
Connect with other developers and get answers from the community
Stack Overflow
Find answers to common questions tagged with #acre-api
Status Page
Real-time API status and historical uptime information
Need Help?
Our developer relations team is here to assist with API questions and integration support.