# Odoo integrations in Python

Read, create and update Odoo records from Python, and let Odoo call your services.

## Get started

Query Odoo models with search\_read - domains, field lists and pagination for partners, orders and any other records.

[Reading data from Odoo](https://zato.io/docs/dev/odoo/reading-data/index.html)

service.py

```
# Read Odoo records
odoo = self.outgoing.odoo.get('My Odoo')
with odoo.conn.client() as client:
    model = client.get_model('res.partner')
    rows = model.search_read(domain, fields)

rows[0]['name']
'Deco Addict'
model.search_count(domain)
128
```

## Work with records

[Reading data search\_read with domains, field lists and pagination to read partners, orders and other records.](https://zato.io/docs/dev/odoo/reading-data/index.html) [Creating records Create CRM leads and other new records from incoming webhooks with the create method.](https://zato.io/docs/dev/odoo/creating-records/index.html) [Updating records Look up sale orders and other records with search and modify them with write.](https://zato.io/docs/dev/odoo/updating-records/index.html)

## Beyond the basics

[Odoo calls Zato Automation rules and webhooks post record changes from Odoo to your REST channels.](https://zato.io/docs/dev/odoo/odoo-calls-zato/index.html) [Odoo Online and odoo.sh JSON-RPC over TLS on port 443 with an API key instead of a password.](https://zato.io/docs/dev/odoo/odoo-online/index.html)
