v 10.0 v 11.0 v 12.0 Third Party 3370
Download for 11.0 series Deploy on Odoo.sh
Technical Name restful
Also available in version v 12.0 v 11.0 v 10.0
You bought this module and need support? Click here!
Technical Name restful
Also available in version v 12.0 v 11.0 v 10.0


With use of this module user can enable REST API in any Odoo applications/modules

This is an HTTP framework that only cares about generating an HTTP response for each HTTP request. For detailed example of REST API refer https://ajepe.github.io/posts/restful-api-for-odoo/

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author, please use the developer contact information. They can usually be found in the description.
Please choose a rating from 1 to 5 for this module.
error on get request with odoo11 please help
s b infotech
on 3/24/20, 2:49 PM

{"jsonrpc": "2.0", "id": null, "error": {"code": 200, "message": "Odoo Server Error", "data": {"name": "werkzeug.exceptions.BadRequest", "debug": "Traceback (most recent call last):\n File \"/opt/odoo11/odoo11-server/odoo/http.py\", line 651, in _handle_exception\n return super(JsonRequest, self)._handle_exception(exception)\n File \"/opt/odoo11/odoo11-server/odoo/http.py\", line 310, in _handle_exception\n raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])\n File \"/opt/odoo11/odoo11-server/odoo/tools/pycompat.py\", line 87, in reraise\n raise value\n File \"/opt/odoo11/odoo11-server/odoo/http.py\", line 693, in dispatch\n result = self._call_function(**self.params)\n File \"/opt/odoo11/odoo11-server/odoo/http.py\", line 318, in _call_function\n raise werkzeug.exceptions.BadRequest(msg % params)\nwerkzeug.exceptions.BadRequest: 400: Bad Request\n", "message": "400: Bad Request", "arguments": [], "exception_type": "internal_error"}}}

Too many errors((
Raul Montes
on 8/13/19, 5:59 AM

Is this addon really works? Here is error just on your GET read example 2019-08-12 15:18:34,743 7538 INFO testro2 werkzeug: - - [12/Aug/2019 15:18:34] "GET /api/auth/token HTTP/1.1" 200 - 2019-08-12 15:18:34,759 7538 INFO testro2 werkzeug: - - [12/Aug/2019 15:18:34] "GET /api/sale.order/ HTTP/1.1" 500 - 2019-08-12 15:18:34,765 7538 ERROR testro2 werkzeug: Error on request: Traceback (most recent call last): File "/opt/odoo11/env/lib/python3.6/site-packages/werkzeug/serving.py", line 205, in run_wsgi execute(self.server.app) File "/opt/odoo11/env/lib/python3.6/site-packages/werkzeug/serving.py", line 193, in execute application_iter = app(environ, start_response) File "/opt/odoo11/platform/odoo/service/server.py", line 260, in app return self.app(e, s) File "/opt/odoo11/platform/odoo/service/wsgi_server.py", line 166, in application return application_unproxied(environ, start_response) File "/opt/odoo11/platform/odoo/service/wsgi_server.py", line 154, in application_unproxied result = handler(environ, start_response) File "/opt/odoo11/platform/odoo/http.py", line 1319, in __call__ return self.dispatch(environ, start_response) File "/opt/odoo11/platform/odoo/http.py", line 1293, in __call__ return self.app(environ, start_wrapped) File "/opt/odoo11/env/lib/python3.6/site-packages/werkzeug/wsgi.py", line 599, in __call__ return self.app(environ, start_response) File "/opt/odoo11/platform/odoo/http.py", line 1491, in dispatch result = ir_http._dispatch() File "/opt/odoo11/platform/addons/auth_signup/models/ir_http.py", line 19, in _dispatch return super(Http, cls)._dispatch() File "/opt/odoo11/platform/addons/web_editor/models/ir_http.py", line 22, in _dispatch return super(IrHttp, cls)._dispatch() File "/opt/odoo11/platform/addons/http_routing/models/ir_http.py", line 393, in _dispatch result = super(IrHttp, cls)._dispatch() File "/opt/odoo11/platform/addons/utm/models/ir_http.py", line 26, in _dispatch response = super(IrHttp, cls)._dispatch() File "/opt/odoo11/platform/odoo/addons/base/ir/ir_http.py", line 212, in _dispatch return cls._handle_exception(e) File "/opt/odoo11/platform/addons/utm/models/ir_http.py", line 31, in _handle_exception response = super(IrHttp, cls)._handle_exception(exc) File "/opt/odoo11/platform/odoo/addons/base/ir/ir_http.py", line 182, in _handle_exception return request._handle_exception(exception) File "/opt/odoo11/platform/odoo/http.py", line 771, in _handle_exception return super(HttpRequest, self)._handle_exception(exception) File "/opt/odoo11/platform/odoo/http.py", line 310, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "/opt/odoo11/platform/odoo/tools/pycompat.py", line 87, in reraise raise value File "/opt/odoo11/platform/odoo/addons/base/ir/ir_http.py", line 208, in _dispatch result = request.dispatch() File "/opt/odoo11/platform/odoo/http.py", line 830, in dispatch r = self._call_function(**self.params) File "/opt/odoo11/platform/odoo/http.py", line 342, in _call_function return checked_call(self.db, *args, **kwargs) File "/opt/odoo11/platform/odoo/service/model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "/opt/odoo11/platform/odoo/http.py", line 335, in checked_call result = self.endpoint(*a, **kw) File "/opt/odoo11/platform/odoo/http.py", line 937, in __call__ return self.method(*args, **kw) File "/opt/odoo11/addons_ext/restful/controllers/main.py", line 46, in wrap return func(self, *args, **kwargs) File "/opt/odoo11/platform/odoo/http.py", line 515, in response_wrap response = f(*args, **kw) File "/opt/odoo11/addons_ext/restful/controllers/main.py", line 66, in get domain, fields, offset, limit, order = extract_arguments(payload) File "/opt/odoo11/addons_ext/restful/common.py", line 54, in extract_arguments payload = json.loads(data) File "/opt/odoo11/env/lib/python3.6/site-packages/simplejson/__init__.py", line 518, in loads return _default_decoder.decode(s) File "/opt/odoo11/env/lib/python3.6/site-packages/simplejson/decoder.py", line 370, in decode obj, end = self.raw_decode(s) File "/opt/odoo11/env/lib/python3.6/site-packages/simplejson/decoder.py", line 390, in raw_decode raise JSONDecodeError('Expecting value', s, idx) simplejson.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Thanks it works
on 7/15/19, 3:22 AM

This is work for me

How to work with HTTPS?
on 3/5/20, 3:46 AM

It works well before adding ssl certificate. After I have added ssl certificate in my server, I got this message "access_token_not_found", "missing access token in request header, 401". Do I need to change any configuration? Thanks.

500 Internal Server Erro
Juan Carlos
on 9/17/19, 6:45 AM

Hi, I'm trying to use the API. I get the token well but when I want to make a query I always get the same error:

Internal Server Error

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.