Odoo Help


This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Can someone tell me how to 'create' and 'write' objects using JSON-RPC calls?

Asier Iriondo
on 5/21/14, 5:27 AM 1,321 views

I'm trying to develop an Android CRM client as a proof of concept. I do know how to make queries but I'm getting stuck when I try to create and modify model objects just like opportunities, leads, phone calls, ....

In order to make "queries" I know that the next json objects and URLS are used in the RPC calls:

  • login URL: '/web/session/authenticate'.
  • search_read URL: '/web/dataset/search_read'.
  • context: JSON object , logged user data.
  • session_id: JSON object, logged user session id.
  • model: JSON object, the model it´s beeing queried, for example 'res.partner'
  • domain: JSON object,  it´s just like a SQL filter query sentence, for example here you can filter partners by it's name, id, ....
  • fields: JSON object, contains a string list with the objects fields you want to retrieve in your queries
  • sort: JSON object, contais sort options just like 'asc', 'desc', 'write_date', ....

 My first question is, does someone know the URLS to point in order to  create and modify model objects? For example if I want to create a new opportuny, do I have to use ' /web/dataset/call_kw' as I can see in the server terminal logs?. And the second question, which are and how do I pass the JSON objects in the RPC calls?. 

I have to mention that I'm using 'android-json-rpc-0.3.4'  library to make my rpc calls:


Thanks in advance.






| 5 4 6
Zagreb | Karlovac, Croatia

there is only 10 kind of people the ones that understand binary ... and others

On 5/28/14, 6:06 AM

Frist try it using python script to get the logic...
try something like: 

import xmlrpclib

server=server_fqdn   #or server_ip
url = 'http://'+server+':8069/xmlrpc'
usr = 'oe_username'
pwd = 'usr_pass'
sock = xmlrpclib.ServerProxy(url + '/common')
uid = sock.login(db, usr,pwd)
if uid:
    sock = xmlrpclib.ServerProxy(url + '/object')
    print 'Cannot connect'

sock = xmlrpclib.ServerProxy(url + '/object')
#now you're connected and you can use standard functions...
partner_vals={'name':'Parner Name',
                                 'city':'Name of City.....}

created_id = sock.execute(db, uid, pwd, 'res.partner','create',partner_vals)

Basicly... use: sock.execute(database, user_id, password, 'model.name','method', args_)

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)


Asked: 5/21/14, 5:27 AM
Seen: 1321 times
Last updated: 3/16/15, 8:10 AM