Developer Resources

Build powerful integrations with the Acre API

RESTful API SDK Available Webhooks

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
https://api.tryacre.io/v1

API Status

Operational Last checked: 2 minutes ago

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:

HTTP Header
Authorization: Bearer YOUR_API_KEY

OAuth 2.0 Flow

For applications that need to access user data:

OAuth Endpoints
# 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

GET

/properties

List all properties with pagination and filtering

POST

/properties

Create a new property

GET

/properties/{id}

Get detailed property information

PUT

/properties/{id}

Update property details

Tenants

GET

/tenants

List all tenants across properties

POST

/tenants

Add a new tenant

GET

/tenants/{id}/payments

Get tenant payment history

POST

/tenants/{id}/documents

Upload tenant documents

Example Request

cURL
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
npm install @acre/sdk

Example Usage

JavaScript
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

tenant.created

New tenant added to a property

payment.received

Rent payment successfully processed

maintenance.requested

New maintenance request submitted

lease.expired

Lease agreement has expired

Webhook Payload Example

JSON
{
  "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

JavaScript
// 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

Python
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.

Need Help?

Our developer relations team is here to assist with API questions and integration support.