Introduction
The deployERP API is a RESTful interface that allows you to programmatically manage your Odoo infrastructure. Build custom integrations, automate deployments, and manage resources at scale.Base URL
Quick Start
1
Get API Key
Generate an API key from your dashboard settings
2
Make First Request
Test your connection with a simple GET request
3
Explore Endpoints
Browse available endpoints and operations
Example Request
Core Concepts
Resources
The API provides access to these primary resources:| Resource | Description | Base Path |
|---|---|---|
| Servers | Virtual machines hosting Odoo | /servers |
| Instances | Odoo installations | /instances |
| Backups | Backup snapshots | /backups |
| Providers | Cloud provider connections | /providers |
| Teams | Team and user management | /teams |
| Invoices | Billing and invoices | /invoices |
Request Format
All requests must include:- Authorization header with Bearer token
- Content-Type header set to
application/json - JSON body for POST/PUT/PATCH requests
Response Format
Authentication
API Keys
Generate and manage API keys from your dashboard:- Navigate to Settings → API Keys
- Click “Generate New Key”
- Set key permissions and expiry
- Store the key securely
Using API Keys
Include your API key in the Authorization header:Key Permissions
API keys can have different permission levels:| Level | Permissions |
|---|---|
| Read | View resources only |
| Write | Create and update resources |
| Delete | Remove resources |
| Admin | Full access including billing |
Rate Limiting
API requests are subject to rate limits:| Plan | Requests/Hour | Burst Limit |
|---|---|---|
| Starter | 1,000 | 100/minute |
| Professional | 5,000 | 500/minute |
| Enterprise | Unlimited | Custom |
Rate Limit Headers
Handling Rate Limits
When rate limited, you’ll receive:Pagination
List endpoints support pagination:Query Parameters
| Parameter | Description | Default | Max |
|---|---|---|---|
page | Page number | 1 | - |
per_page | Items per page | 20 | 100 |
sort | Sort field | created_at | - |
order | Sort order (asc/desc) | desc | - |
Paginated Response
Filtering
Filter results using query parameters:Webhooks
Configure webhooks to receive real-time notifications:Webhook Events
| Event | Description |
|---|---|
server.created | Server provisioned |
server.deleted | Server removed |
instance.deployed | Instance ready |
instance.stopped | Instance stopped |
backup.completed | Backup finished |
backup.failed | Backup error |
Webhook Payload
Error Handling
Error Response Format
Common Error Codes
| Code | HTTP Status | Description |
|---|---|---|
unauthorized | 401 | Invalid or missing API key |
forbidden | 403 | Insufficient permissions |
not_found | 404 | Resource not found |
validation_error | 422 | Invalid request data |
rate_limit_exceeded | 429 | Too many requests |
internal_error | 500 | Server error |
Idempotency
Ensure safe retries with idempotency keys:API Versioning
The API uses URL versioning:- Current version:
v1 - Version in URL:
https://api.deployerp.com/v1/... - Deprecation notice: 6 months minimum
SDKs & Libraries
Official SDKs available:API Playground
Test API endpoints directly in your browser:API Playground
Interactive API testing environment with live responses
Best Practices
Use pagination for large datasets
Use pagination for large datasets
Always paginate when fetching lists to avoid timeouts and reduce load.
Implement exponential backoff
Implement exponential backoff
When rate limited, wait progressively longer between retries.
Store API keys securely
Store API keys securely
Use environment variables or secret management systems.
Handle errors gracefully
Handle errors gracefully
Check response status and implement proper error handling.
Use webhooks for real-time updates
Use webhooks for real-time updates
Instead of polling, use webhooks for event-driven updates.
Support
Need help with the API?- Documentation: You’re here!
- API Status: status.deployerp.com
- Support: [email protected]
- Community: Discord

