TL;DR:
- 1,000+ REST API endpoints across 6 functional areas and 80+ resource groups
- OpenAPI 3.0 specification with interactive documentation
- Code examples in curl, JavaScript, Python, Ruby, and Go
- JWT authentication with rate limiting
- Webhook integrations for real-time event processing
Why an Open API Matters for Contractors
Field service businesses don't operate in isolation. Your scheduling software needs to talk to your accounting system. Your dispatch needs GPS data. Your invoicing needs payment processing. Your phone system needs customer records.
An open, well-documented API is the difference between a platform that integrates with your workflow and one that becomes a data silo.
What the Exoserva API Covers
The API spans 80+ resource groups organized into six functional areas. The counts below reflect the live public API surface — internal admin and platform-operations routes are excluded. The developer portal always shows the current figure, generated live from the OpenAPI spec.
| Area | Endpoints | What It Covers |
|---|---|---|
| Core Operations | ~570 | Customers, accounts, jobs, dispatch, scheduling, properties, assets, technicians, work orders, tasks, follow-ups, and inventory |
| Financial & Billing | ~280 | Invoices, estimates, payments, price book, subscription billing, vendor invoices, and QuickBooks sync |
| Team & Access | ~250 | Users, roles, staff, authentication, API keys, time tracking, territories, settings, branding, and audit logs |
| Communications & Voice | ~220 | Voice AI, phone provisioning, conversations, SMS/email, calendar sync, e-signatures, and notifications |
| AI & Automation | ~375 | AI agents, analysis, predictions, cost tracking, steering, autonomous tasks, analytics, and workflows |
| Integrations & Data | ~160 | Stripe & Twilio webhooks, Thumbtack, Yelp, Google Business, weather, vendors, and documents |
Authentication
Every API request requires a JWT Bearer token obtained from the login endpoint:
Authorization: Bearer <access_token>
Access tokens expire in 1 hour. Refresh tokens (7-day TTL) enable seamless rotation without user interruption.
Rate Limiting
| Endpoint Type | Limit |
|---|---|
| Standard API | 500 requests/minute |
| Auth endpoints | 30 requests / 15 minutes |
| Stripe webhooks | 1,000 requests/minute |
| Other webhooks | 100 requests/minute |
Multi-Tenant by Design
Every API request is scoped to a tenant. The JWT token contains the tenant ID, and every database query filters by it. There is no way to accidentally access another tenant's data through the API.
Getting Started
- Create an account at exoserva.com/signup
- Get your API token from Settings → API Keys
- Read the docs at exoserva.com/developers
- Try a request:
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://api.exoserva.com/api/v3/customers
FAQ
How do I get API access?
API access is included with all Exoserva plans. Generate your API key from Settings → API Keys in the dashboard.
Is there a sandbox environment?
Yes. Development API keys point to a sandbox environment where you can test without affecting production data.
What format does the API use?
JSON exclusively. All requests and responses use Content-Type: application/json. The full OpenAPI 3.0 spec is available at exoserva.com/api/docs.json.
Ready to integrate? Explore the API documentation or start your 14-day free trial.
