API Reference¶
The JDX Odoo system provides REST API endpoints for external integrations and the Field PWA.
API Overview¶
| API | Base URL | Authentication |
|---|---|---|
| Odoo REST API | /restapi/1.0/object/ |
API Key / Bearer Token |
| Odoo JSON-RPC | /web/dataset/call_kw/ |
Session Cookie |
Quick Start¶
Authentication¶
Use API Key in header:
curl -X GET "https://your-odoo.com/restapi/1.0/object/res.partner" \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json"
Generate API Key: Settings > Users > [User] > Authentication button > Generate API Key
Available APIs¶
CRM Leads¶
Create and manage leads/opportunities.
| Method | Endpoint | Description |
|---|---|---|
| POST | /restapi/1.0/object/crm.lead |
Create lead |
| GET | /restapi/1.0/object/crm.lead |
List/search leads |
| GET | /restapi/1.0/object/crm.lead/{id} |
Get lead |
| PUT | /restapi/1.0/object/crm.lead/{id} |
Update lead |
| DELETE | /restapi/1.0/object/crm.lead/{id} |
Delete lead |
Sales Orders¶
Manage quotations and sales orders.
| Method | Endpoint | Description |
|---|---|---|
| POST | /restapi/1.0/object/sale.order |
Create order |
| GET | /restapi/1.0/object/sale.order |
List orders |
| GET | /restapi/1.0/object/sale.order/{id} |
Get order |
| PUT | /restapi/1.0/object/sale.order/{id} |
Update order |
Field Service Jobs¶
Manage installation and service jobs.
| Method | Endpoint | Description |
|---|---|---|
| POST | /restapi/1.0/object/fsm.order |
Create job |
| GET | /restapi/1.0/object/fsm.order |
List jobs |
| GET | /restapi/1.0/object/fsm.order/{id} |
Get job |
| PUT | /restapi/1.0/object/fsm.order/{id} |
Update job |
Inventory (Stock Pickings)¶
Manage WH-IN/WH-OUT operations.
| Method | Endpoint | Description |
|---|---|---|
| GET | /restapi/1.0/object/stock.picking |
List pickings |
| GET | /restapi/1.0/object/stock.picking/{id} |
Get picking |
| GET | /restapi/1.0/object/stock.move |
List moves |
| PUT | /restapi/1.0/object/stock.move/{id} |
Update move |
Full Inventory API Documentation
Helpdesk Tickets¶
Manage support tickets.
| Method | Endpoint | Description |
|---|---|---|
| POST | /restapi/1.0/object/helpdesk.ticket |
Create ticket |
| GET | /restapi/1.0/object/helpdesk.ticket |
List tickets |
| GET | /restapi/1.0/object/helpdesk.ticket/{id} |
Get ticket |
| PUT | /restapi/1.0/object/helpdesk.ticket/{id} |
Update ticket |
| DELETE | /restapi/1.0/object/helpdesk.ticket/{id} |
Delete ticket |
Full Helpdesk API Documentation
Partners (Customers/Contacts)¶
| Method | Endpoint | Description |
|---|---|---|
| POST | /restapi/1.0/object/res.partner |
Create partner |
| GET | /restapi/1.0/object/res.partner |
List partners |
| GET | /restapi/1.0/object/res.partner/{id} |
Get partner |
| PUT | /restapi/1.0/object/res.partner/{id} |
Update partner |
Query Parameters¶
All GET endpoints support:
| Parameter | Description | Example |
|---|---|---|
domain |
Odoo domain filter | [('state','=','sale')] |
fields |
Fields to return | ['name','email'] |
limit |
Max records | 100 |
offset |
Skip records | 0 |
order |
Sort order | create_date desc |
Example with Filters¶
curl -X GET "https://your-odoo.com/restapi/1.0/object/crm.lead" \
-H "X-API-Key: your_api_key" \
-G \
--data-urlencode "domain=[('stage_id','=',1),('active','=',True)]" \
--data-urlencode "fields=['name','contact_name','phone','email_from']" \
--data-urlencode "limit=50" \
--data-urlencode "order=create_date desc"
Error Codes¶
| Code | Description |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource doesn't exist |
| 500 | Internal Server Error |
Documentation¶
| Topic | Description |
|---|---|
| Authentication | API key setup, OAuth2, JWT |
| CRM Leads API | Lead/opportunity management |
| Sales Orders API | Quotations and orders |
| FSM Jobs API | Field service jobs |
| Inventory API | Stock pickings (WH-IN/OUT) |
| Helpdesk API | Support tickets |
| Python Examples | Integration code samples |