AI-Powered Property Management APIs

Leaseora Developer API Documentation

Build intelligent property management solutions with our comprehensive REST APIs. Access properties, leases, tenants, AI insights, payments, and more through our developer-friendly endpoints.

50+
API Endpoints
99.9%
Uptime SLA
10k+
API Calls/Day
24/7
Support

Getting Started with Leaseora APIs

Build powerful property management applications with our comprehensive REST APIs. From properties and leases to AI-powered insights, everything you need is at your fingertips.

Prerequisites

Active Leaseora Account

Professional or Enterprise plan with API access enabled

API Credentials

API key and secret from your dashboard settings

Development Knowledge

REST APIs, JSON, and HTTP request handling

New to Leaseora? Sign up for a free trial and explore our platform. API access is included in Professional plans starting at $49/month.

Quick Setup

1. Get Your API Key

Navigate to Settings → API Access in your Leaseora dashboard

2. Test Connection

Make your first API call to verify everything works

3. Start Building

Explore our endpoints and build amazing property management features

API Essentials

Base URL

All API requests should be made to our secure endpoint:

Base URL
https://leaseora.com/api

Required Headers

Include these headers with every request:

HTTP Headers
Content-Type: application/json Authorization: Bearer YOUR_API_KEY Accept: application/json

Success Response

Successful API responses follow this structure:

Success Response (200 OK)
{ "id": 1, "name": "Sunset Apartments", "address": "123 Main Street, Berlin", "property_type": "apartment", "units_count": 24, "total_area": 1500.5, "monthly_rent": 2500.00, "currency": "EUR", "status": "active", "user_id": 123, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z", "ai_predictions": { "rental_value_prediction": 2650.00, "occupancy_prediction": 95.5 } }

Error Response

Error responses provide detailed information:

Error Response (4xx/5xx)
{ "success": false, "error": { "code": "VALIDATION_ERROR", "message": "The given data was invalid", "details": { "name": ["The name field is required"] } } }

Make Your First API Call

Test your setup with a simple request to fetch your properties

cURL

Terminal
curl -X GET "https://leaseora.com/api/properties" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"

JavaScript

JavaScript
const response = await fetch('https://leaseora.com/api/properties', { headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' } }); const data = await response.json();

Authentication

Leaseora API uses token-based authentication. You need to include your API key in the Authorization header of each request.

Obtaining API Keys

You can generate API keys from your Leaseora dashboard under Settings > API Access. Each key has specific permissions that you can configure.

Authentication Example

curl -X GET "https://api.leaseora.com/v1/properties" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Never share your API keys or include them in client-side code. Always make API requests from your server.

Token Expiration

API keys do not expire automatically but can be revoked at any time from your dashboard. We recommend rotating your keys periodically for security.

API Reference

Explore our comprehensive API endpoints organized by resource type.

Properties API

Manage properties in your Leaseora account.

GET /api/properties

Retrieve a list of properties owned by the authenticated user. Properties include comprehensive data with AI-powered insights, performance metrics, and real-time status updates.

Response Fields

Field Type Description
id integer Unique property identifier
name string Property name or title
address string Complete property address
property_type string Type of property (apartment, house, commercial, etc.)
units_count integer Number of rental units
monthly_rent decimal Base monthly rent amount
ai_predictions object AI-generated predictions for rental value and occupancy

Example Response

{
  "success": true,
  "data": [
    {
      "id": "prop_12345",
      "name": "Sunset Apartments",
      "address": {
        "street": "123 Main St",
        "city": "San Francisco",
        "state": "CA",
        "zip": "94103",
        "country": "US"
      },
      "units": 24,
      "status": "active",
      "created_at": "2023-01-15T08:30:00Z"
    },
    {
      "id": "prop_67890",
      "name": "Mountain View Condos",
      "address": {
        "street": "456 Oak Ave",
        "city": "Mountain View",
        "state": "CA",
        "zip": "94040",
        "country": "US"
      },
      "units": 12,
      "status": "active",
      "created_at": "2023-02-20T14:15:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "total_pages": 5,
    "total_count": 98,
    "limit": 20
  }
}

View more Property API endpoints →

Leases API

Create and manage lease agreements with comprehensive validation and property relationships. Leases are filtered by tenant and include property details.

GET /leases

Retrieve a list of leases with pagination.

Query Parameters

Parameter Type Description
property_id string Filter by property ID
status string Filter by status (active, expired, terminated)
page integer Page number (default: 1)
limit integer Results per page (default: 20, max: 100)

View example response and more details →

View more Lease API endpoints →

Tenants API

Manage tenant information and relationships.

View Tenant API endpoints →

Payments API

Process and manage rent payments and financial transactions.

View Payment API endpoints →

Maintenance API

Handle maintenance requests and property upkeep.

View Maintenance API endpoints →

AI Services API

Access Leaseora's AI-powered features for property management insights, rental predictions, and intelligent recommendations.

POST /api/ai/ask

Submit a query to the AI service for property-related insights and recommendations.

Request Body

Field Type Required Description
query string Yes The question or request to process

Example Request

{
  "query": "What is the optimal rent price for a 2-bedroom apartment in Berlin?"
}

Example Response

{
  "status": "Processing query..."
}
GET /api/ai-insights/global

Retrieve the latest global AI insights and market predictions (public endpoint).

Example Response

[
  {
    "id": 1,
    "insight": "Berlin rental market showing 3.2% growth",
    "confidence_score": 0.87,
    "created_at": "2024-01-15T10:30:00Z"
  }
]

Webhooks

Leaseora provides webhooks to notify your application when events happen in your account.

Available Events

  • lease.created - A new lease has been created
  • lease.updated - A lease has been updated
  • lease.terminated - A lease has been terminated
  • payment.received - A payment has been received
  • payment.failed - A payment has failed
  • maintenance.requested - A maintenance request has been submitted
  • maintenance.updated - A maintenance request has been updated

Setting Up Webhooks

You can configure webhooks in your Leaseora dashboard under Settings > API Access > Webhooks.

Webhook Payload Example

{
  "event": "payment.received",
  "created_at": "2023-06-01T12:00:00Z",
  "data": {
    "payment_id": "pay_12345",
    "lease_id": "lease_67890",
    "amount": 1500.00,
    "currency": "USD",
    "status": "completed",
    "payment_method": "credit_card",
    "payment_date": "2023-06-01T12:00:00Z"
  }
}

Security

All webhook requests are signed with a signature in the X-Leaseora-Signature header. You should verify this signature to ensure the request came from Leaseora.

Rate Limits

To ensure the stability of our API, we enforce rate limits on API requests.

Default Limits

Plan Rate Limit Burst Limit
Standard 100 requests per minute 150 requests
Professional 300 requests per minute 450 requests
Enterprise 1000 requests per minute 1500 requests

Rate Limit Headers

Each API response includes headers that provide information about your current rate limit status:

  • X-RateLimit-Limit: The maximum number of requests you're permitted to make per minute.
  • X-RateLimit-Remaining: The number of requests remaining in the current rate limit window.
  • X-RateLimit-Reset: The time at which the current rate limit window resets in UTC epoch seconds.

Exceeding Rate Limits

If you exceed your rate limit, you'll receive a 429 Too Many Requests response with a Retry-After header indicating how long to wait before making another request.

Error Handling

The Leaseora API uses conventional HTTP response codes to indicate the success or failure of an API request.

HTTP Status Codes

Code Description
200 - OK The request was successful.
201 - Created The resource was successfully created.
400 - Bad Request The request was invalid or cannot be otherwise served.
401 - Unauthorized Authentication credentials were missing or incorrect.
403 - Forbidden The authenticated user doesn't have permission to access the requested resource.
404 - Not Found The requested resource doesn't exist.
422 - Unprocessable Entity The request was well-formed but was unable to be followed due to semantic errors.
429 - Too Many Requests The user has sent too many requests in a given amount of time.
500, 502, 503, 504 - Server Errors Something went wrong on our end.

Error Response Format

{
  "success": false,
  "error": {
    "code": "validation_error",
    "message": "The given data was invalid.",
    "details": {
      "name": [
        "The name field is required."
      ],
      "email": [
        "The email must be a valid email address."
      ]
    }
  }
}

Common Error Codes

Error Code Description
authentication_error There was a problem with your API credentials.
validation_error The request parameters failed validation.
resource_not_found The requested resource does not exist.
rate_limit_exceeded You've exceeded your rate limit.
permission_denied You don't have permission to access this resource.
server_error An error occurred on our servers.

SDKs & Libraries

We provide official client libraries to make integrating with the Leaseora API even easier.

JavaScript

Our JavaScript SDK works in both Node.js and browser environments.

npm install leaseora-js
View Documentation →

PHP

Our PHP SDK is compatible with PHP 7.4 and above.

composer require leaseora/leaseora-php
View Documentation →

Python

Our Python SDK supports Python 3.6 and above.

pip install leaseora
View Documentation →

Community Libraries

Our community has developed libraries for additional languages:

Want to contribute a library for another language? Check out our contribution guidelines.

Frequently Asked Questions

API access is available on all paid Leaseora plans. You can generate API keys from your dashboard under Settings > API Access.

Yes, we have rate limits based on your subscription plan. See the Rate Limits section for details. If you need higher limits, please contact our sales team.

You can report bugs or request features by emailing api-support@leaseora.com or by opening an issue in our GitHub repository.

Yes, we provide a sandbox environment for testing your integration before going live. Use the base URL https://api-sandbox.leaseora.com/v1 for all sandbox requests.

All list endpoints return paginated results. You can control pagination using the page and limit query parameters. The response includes metadata with pagination details.