openapi: 3.1.0 info: title: Odoo External Common JSON-RPC API description: 'Odoo''s external API exposes business data and methods via XML-RPC (and JSON-RPC) endpoints. The common endpoint accepts unauthenticated calls used for version information and authentication; the object endpoint accepts authenticated `execute_kw` calls that operate on Odoo models (search, search_count, read, search_read, fields_get, create, write, unlink). Authentication is performed by calling `authenticate` on the common endpoint with database, username, and password or API key (Odoo 14+). This OpenAPI describes the HTTP transport surface; the XML-RPC request bodies follow the standard XML-RPC envelope. ' version: '17.0' contact: name: Odoo url: https://www.odoo.com/documentation/17.0/developer/reference/external_api.html servers: - url: https://{instance}.odoo.com description: Odoo Online or self-hosted instance variables: instance: default: mycompany description: Odoo instance / database hostname prefix security: [] tags: - name: JSON-RPC description: JSON-RPC transport for the same operations paths: /jsonrpc: post: tags: - JSON-RPC summary: JSON-RPC transport for the same operations description: 'Equivalent JSON-RPC 2.0 transport, accepting calls to the common and object services. Use `service: common, method: authenticate` or `service: object, method: execute_kw` with the same argument signatures as the XML-RPC endpoints. ' requestBody: required: true content: application/json: schema: type: object required: - jsonrpc - method - params properties: jsonrpc: type: string enum: - '2.0' method: type: string enum: - call params: type: object properties: service: type: string enum: - common - object - db method: type: string args: type: array items: {} id: type: integer responses: '200': description: JSON-RPC response envelope content: application/json: schema: type: object properties: jsonrpc: type: string id: type: integer result: {} error: type: object components: securitySchemes: OdooApiKey: type: apiKey in: header name: X-API-Key description: 'Odoo 14+ supports per-user API keys generated under user preferences Account Security. These can be substituted for the password parameter in `authenticate` and `execute_kw` calls. '