Built for developers who ship fast
Everything you need to build, test, and scale property management integrations.
Unified Data Model
Every PMS speaks a different language. Propexo normalizes residents, leases, units, charges, and payments into a single consistent schema so you never write per-vendor parsing logic again.
- ✓ Consistent field names and types across all PMS platforms
- ✓ Automatic data validation and transformation
- ✓ Versioned schemas with backward compatibility
GET /v1/leases/lease_42{ "id": "lease_42", "resident_id": "res_98765", "unit_id": "unit_204B", "start_date": "2025-01-01", "end_date": "2026-01-01", "monthly_rent": 2150.00, "status": "active" }
POST /v1/connections{ "provider": "entrata", "credentials": { "api_key": "ent_...", "domain": "acme.entrata.com" }, "sync_config": { "models": ["residents", "leases"], "frequency": "realtime" } }
Multi-PMS Authentication
Connect to any supported PMS through a single, unified authentication flow. Propexo handles OAuth, API keys, and token refresh for each provider so you don't have to.
- ✓ One connection endpoint for all providers
- ✓ Automatic credential management and token refresh
- ✓ Encrypted storage with SOC 2 compliance
Webhook Events
Subscribe to granular events and get notified the moment data changes across any connected PMS. No polling required.
- ✓ Real-time push notifications for all data models
- ✓ Automatic retries with exponential backoff
- ✓ HMAC signature verification for security
POST /v1/webhooks{ "url": "https://your-app.com/hooks", "events": [ "resident.created", "lease.updated", "payment.received" ], "secret": "whsec_..." }
GET /v1/units?page=2&per_page=50{ "data": [...], "pagination": { "total": 1250, "page": 2, "per_page": 50, "total_pages": 25 } }# Response headers: # X-RateLimit-Limit: 1000 # X-RateLimit-Remaining: 847 # X-RateLimit-Reset: 1735689600
Rate Limiting & Pagination
Built-in cursor and offset pagination with predictable rate limits. Propexo handles upstream PMS rate limits automatically so your requests never get throttled.
- ✓ Transparent rate limit headers on every response
- ✓ Automatic upstream throttle management
- ✓ Flexible offset and cursor-based pagination
SDKs for Python, Node.js & Ruby
Official client libraries with full TypeScript support, auto-generated from our OpenAPI spec. Install with one command and start making API calls in minutes.
- ✓ Type-safe clients with full IDE autocompletion
- ✓ Built-in retry logic and error handling
- ✓ Auto-generated from OpenAPI specification
# Pythonfrom propexo import Propexo client = Propexo(api_key="px_live_...") residents = client.residents.list( property_id="prop_12345" )# Node.jsimport Propexo from '@propexo/sdk'; const client = new Propexo('px_live_...'); const residents = await client.residents .list({ propertyId: 'prop_12345' });
# Use test API keys — no real PMS neededcurl -X GET https://api.propexo.com/v1/residents \ -H "Authorization: Bearer px_test_..." \ -H "Content-Type: application/json" # Returns realistic mock data # identical to production format
Sandbox & Testing
A full-featured sandbox environment with realistic mock data. Test every endpoint, webhook, and edge case before touching a production PMS.
- ✓ Realistic data seeded for every supported model
- ✓ Simulated webhook delivery for testing
- ✓ Error simulation for edge case testing