res.users: fields, relations and API
The res.users model ("User") is a persistent model declared by the Base module, then extended by 52 other modules. It exposes 145 fields, 140 of them declared directly on the model; 195 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.
Model identity
- Technical name
res.users- Label
- User
- Type
- Persistent (models.Model)
- SQL table
res_users- Origin module
- Base (
base) - Extended by
- web, base_setup, bus, web_tour, mail, auth_signup, resource, digest, auth_ldap, auth_oauth, auth_passkey, auth_password_policy, auth_totp, auth_totp_mail, auth_timeout, auth_totp_portal, contacts, phone_validation, base_import, calendar, sales_team, crm, im_livechat, crm_livechat, stock, sale_stock, gamification, google_calendar, google_gmail, hr, hr_attendance, hr_gamification, hr_holidays, hr_homeworking, hr_recruitment, website, website_profile, website_slides, project, point_of_sale, lunch, mail_bot, mass_mailing, mass_mailing_sms, microsoft_account, microsoft_calendar, microsoft_outlook, project_hr_skills, project_todo, web_unsplash, website_forum, website_sale_wishlist
- Default order (_order)
name, login- Inherits from (mixins)
- bus.listener.mixinpos.load.mixin
- Delegation (_inherits)
- res.partner: fields of this model are also available, through
partner_id
Model fields
140 own fields, 0 inherited from mixins and 5 automatic ORM fields. Click a name to get a direct link to that field.
145 of 145 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| accesses_count | # Access Rights Number of access rights that apply to the current user | integer | computed |
| action_id | Home Action If specified, this action will be opened at log on for this user, in addition to the standard menu. | many2one | |
| active | Active | boolean | |
| active_partner | Partner is Active | boolean | read-only related: |
| additional_note | Additional Note | text | related: added by Employees ( |
| all_group_ids | Groups and implied groups | many2many | computed |
| api_key_ids | API Keys | one2many | inverse: |
| auth_passkey_key_ids | Auth Passkey Key | one2many | inverse: added by Passkeys ( |
| badge_ids | Badges | one2many | inverse: added by Gamification ( |
| bank_account_ids | Bank Account | many2many | related: added by Employees ( |
| barcode | Barcode | char | related: added by Employees ( |
| bronze_badge | Bronze badges count | integer | computed added by Gamification ( |
| calendar_default_privacy | Calendar Default Privacy | selection | computed Values: added by Calendar ( |
| can_edit_role | Can Edit Role | boolean | computed added by Discuss ( |
| category_ids | Employee Tags | many2many | related: added by Employees ( |
| companies_count | Number of Companies | integer | computed |
| company_id | Company The default company for this user. | many2one | required |
| company_ids | Companies | many2many | |
| create_date | Create Date | datetime | read-only added by Forum ( |
| create_employee | Technical field, whether to create an employee | boolean | added by Employees ( |
| create_employee_id | Technical field, bind user to this employee on create | many2one | added by Employees ( |
| crm_team_ids | Sales Teams | many2many→ crm.team | read-onlycomputed added by Sales Teams ( |
| crm_team_member_ids | Sales Team Members | one2many | inverse: added by Sales Teams ( |
| device_ids | User devices | one2many | inverse: |
char | related: | ||
| email_domain_placeholder | Email Domain Placeholder | char | computed |
| emergency_contact | Emergency Contact | char | related: added by Employees ( |
| emergency_phone | Emergency Phone | char | related: added by Employees ( |
| employee_bank_account_ids | Employee's Bank Accounts | many2many | related: added by Employees ( |
| employee_count | Employee Count | integer | computed added by Employees ( |
| employee_id | Company employee | many2one | computed added by Employees ( |
| employee_ids | Related employee | one2many | inverse: added by Employees ( |
| employee_resource_calendar_id | Employee's Working Hours | many2one | read-only related: added by Employees ( |
| employee_skill_ids | Employee Skill | one2many | related: added by Project - Skills ( |
| favorite_lunch_product_ids | Favorite Lunch Product | many2many | added by Lunch ( |
| favorite_project_ids | Favorite Projects | many2many | added by Project ( |
| friday_location_id | Fridays | many2one | related: added by Remote Work ( |
| goal_ids | Goal | one2many | inverse: added by HR Gamification ( |
| gold_badge | Gold badges count | integer | computed added by Gamification ( |
| google_calendar_cal_id | Google Calendar Cal | char | related: added by Google Calendar ( |
| google_calendar_rtoken | Google Calendar Rtoken | char | related: added by Google Calendar ( |
| google_calendar_sync_token | Google Calendar Sync Token | char | related: added by Google Calendar ( |
| google_calendar_token | Google Calendar Token | char | related: added by Google Calendar ( |
| google_calendar_token_validity | Google Calendar Token Validity | datetime | related: added by Google Calendar ( |
| google_synchronization_stopped | Google Synchronization Stopped | boolean | related: added by Google Calendar ( |
| group_ids | Groups Groups explicitly assigned to the user | many2many | |
| groups_count | # Groups Number of groups that apply to the current user | integer | computed |
| has_access_livechat | Has access to Livechat | boolean | read-onlycomputed added by Live Chat ( |
| has_external_mail_server | Has External Mail Server | boolean | computed added by Discuss ( |
| has_oauth_access_token | Has OAuth Access Token | boolean | computed added by OAuth2 Authentication ( |
| im_status | IM Status | char | computed added by Discuss ( |
| is_hr_user | Is Hr User | boolean | computed added by Employees ( |
| is_in_call | Is in call | boolean | related: added by Discuss ( |
| is_out_of_office | Out of Office | boolean | computed added by Discuss ( |
| is_system | Is System | boolean | computed added by Employees ( |
| job_title | Job Title | char | related: added by Employees ( |
| karma | Karma | integer | computed, stored added by Gamification ( |
| karma_tracking_ids | Karma Changes | one2many | inverse: added by Gamification ( |
| km_home_work | Km Home Work | integer | related: added by Employees ( |
| last_lunch_location_id | Last Lunch Location | many2one | added by Lunch ( |
| leave_date_to | Leave Date To | date | related: added by Time Off ( |
| livechat_channel_ids | Livechat Channel | many2many | added by Live Chat ( |
| livechat_expertise_ids | Live Chat Expertise When forwarding live chat conversations, the chatbot will prioritize users with matching expertise. | many2many | computed added by Live Chat ( |
| livechat_is_in_call | Livechat Is In Call Whether the user is in a call, only available if the user is in a live chat agent | boolean | computed added by Live Chat ( |
| livechat_lang_ids | Livechat Languages | many2many→ res.lang | computed added by Live Chat ( |
| livechat_ongoing_session_count | Number of Ongoing sessions | integer | computed added by Live Chat ( |
| livechat_username | Livechat Username | char | computed added by Live Chat ( |
| log_ids | User log entries | one2many | inverse: |
| login | Login Used to log into the system | char | required |
| login_date | Latest Login | datetime | related: |
| manual_im_status | IM status manually set by the user | selection | Values: added by Discuss ( |
| microsoft_calendar_rtoken | Microsoft Refresh Token | char | added by Microsoft Users ( |
| microsoft_calendar_sync_token | Microsoft Calendar Sync Token | char | related: added by Outlook Calendar ( |
| microsoft_calendar_token | Microsoft User token | char | added by Microsoft Users ( |
| microsoft_calendar_token_validity | Microsoft Token Validity | datetime | added by Microsoft Users ( |
| microsoft_last_sync_date | Microsoft Last Sync Date | datetime | related: added by Outlook Calendar ( |
| microsoft_synchronization_stopped | Microsoft Synchronization Stopped | boolean | related: added by Outlook Calendar ( |
| mobile_phone | Mobile Phone | char | related: added by Employees ( |
| monday_location_id | Mondays | many2one | related: added by Remote Work ( |
| name | Name | char | related: |
| new_password | Set Password Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again. | char | computed |
| next_rank_id | Next Rank | many2one | added by Gamification ( |
| notification_type | Notification Policy on how to handle Chatter notifications: - By Emails: notifications are sent to your email address - In Odoo: notifications appear in your Odoo Inbox | selection | requiredcomputed, stored Values: added by Discuss ( |
| oauth_access_token | OAuth Access Token Store | char | read-only added by OAuth2 Authentication ( |
| oauth_provider_id | OAuth Provider | many2one | added by OAuth2 Authentication ( |
| oauth_uid | OAuth User ID Oauth Provider user_id | char | added by OAuth2 Authentication ( |
| odoobot_failed | Odoobot Failed | boolean | read-only added by OdooBot ( |
| odoobot_state | OdooBot Status | selection | read-only Values: added by OdooBot ( |
| out_of_office_from | Out Of Office From | datetime | added by Discuss ( |
| out_of_office_message | Vacation Responder | html | added by Discuss ( |
| out_of_office_to | Out Of Office To | datetime | added by Discuss ( |
| outgoing_mail_server_id | Outgoing Mail Server | many2one | computed added by Discuss ( |
| outgoing_mail_server_type | Outgoing Mail Server Type | selection | requiredcomputed Values: added by Discuss ( |
| partner_id | Related Partner Partner-related data of the user | many2one | required |
| password | Password Keep empty if you don't want the user to be able to connect on the system. | char | computed |
| phone | Phone | char | related: |
| pin | Pin | char | related: added by Employees ( |
| presence_ids | Presence | one2many | inverse: added by Discuss ( |
| private_city | Private City | char | related: added by Employees ( |
| private_country_id | Private Country | many2one | related: added by Employees ( |
| private_email | Private Email | char | related: added by Employees ( |
| private_phone | Private Phone | char | related: added by Employees ( |
| private_state_id | Private State | many2one | related: added by Employees ( |
| private_street | Private Street | char | related: added by Employees ( |
| private_street2 | Private Street2 | char | related: added by Employees ( |
| private_zip | Private Zip | char | related: added by Employees ( |
| property_warehouse_id | Default Warehouse | many2one | company-dependent added by Sales and Warehouse Management ( |
| rank_id | Rank | many2one | added by Gamification ( |
| res_users_settings_id | Settings | many2one | computed |
| res_users_settings_ids | Res Users Settings | one2many | inverse: |
| resource_calendar_id | Default Working Hours | many2one | related: added by Resource ( |
| resource_ids | Resources | one2many | inverse: added by Resource ( |
| role | Role | selection | computed Values: |
| role_ids | User Roles Users are notified whenever one of their roles is @-mentioned in a conversation. | many2many→ res.role | added by Discuss ( |
| rules_count | # Record Rules Number of record rules that apply to the current user | integer | computed |
| sale_team_id | User Sales Team Main user sales team. Used notably for pipeline, or to set sales team in invoicing or subscription. | many2one→ crm.team | read-onlycomputed, stored added by Sales Teams ( |
| saturday_location_id | Saturdays | many2one | related: added by Remote Work ( |
| share | Share User External user with limited access, created only for the purpose of sharing data. | boolean | computed, stored |
| signature | Email Signature | html | computed, stored |
| silver_badge | Silver badges count | integer | computed added by Gamification ( |
| state | Status | selection | computed Values: added by Signup ( |
| sunday_location_id | Sundays | many2one | related: added by Remote Work ( |
| thursday_location_id | Thursdays | many2one | related: added by Remote Work ( |
| totp_enabled | Two-factor authentication | boolean | computed added by Two-Factor Authentication (TOTP) ( |
| totp_last_counter | Totp Last Counter | integer | added by Two-Factor Authentication (TOTP) ( |
| totp_secret | Totp Secret | char | computed added by Two-Factor Authentication (TOTP) ( |
| totp_trusted_device_ids | Trusted Devices | one2many | inverse: added by Two-Factor Authentication (TOTP) ( |
| tour_enabled | Onboarding | boolean | computed, stored added by Tours ( |
| tuesday_location_id | Tuesdays | many2one | related: added by Remote Work ( |
| tz_offset | Timezone offset | char | computed |
| view_group_hierarchy | Technical field for user group setting | json | |
| visa_expire | Visa Expire | date | related: added by Employees ( |
| website_id | Website | many2one→ website | related: added by Website ( |
| wednesday_location_id | Wednesdays | many2one | related: added by Remote Work ( |
| work_contact_id | Work Contact | many2one | related: added by Employees ( |
| work_email | Work Email | char | related: added by Employees ( |
| work_location_id | Work Location | many2one | related: added by Employees ( |
| work_location_name | Work Location Name | char | related: added by Employees ( |
| work_location_type | Work Location Type | selection | related: added by Employees ( |
| work_phone | Work Phone | char | related: added by Employees ( |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- auth_totp.device: totp_trusted_device_ids
- auth.oauth.provider: oauth_provider_id
- auth.passkey.key: auth_passkey_key_ids
- crm.team: crm_team_ids, sale_team_id
- crm.team.member: crm_team_member_ids
- gamification.badge.user: badge_ids
- gamification.goal: goal_ids
- gamification.karma.rank: next_rank_id, rank_id
- gamification.karma.tracking: karma_tracking_ids
- hr.employee: create_employee_id, employee_id, employee_ids
- hr.employee.category: category_ids
- hr.employee.skill: employee_skill_ids
- hr.work.location: friday_location_id, monday_location_id, saturday_location_id, sunday_location_id, thursday_location_id, tuesday_location_id, wednesday_location_id, work_location_id
- im_livechat.channel: livechat_channel_ids
- im_livechat.expertise: livechat_expertise_ids
- ir.actions.actions: action_id
- ir.mail_server: outgoing_mail_server_id
- lunch.location: last_lunch_location_id
- lunch.product: favorite_lunch_product_ids
- mail.presence: presence_ids
- project.project: favorite_project_ids
- res.company: company_id, company_ids
- res.country: private_country_id
- res.country.state: private_state_id
- res.device: device_ids
- res.groups: all_group_ids, group_ids
- res.lang: livechat_lang_ids
- res.partner: partner_id, work_contact_id
- res.partner.bank: bank_account_ids, employee_bank_account_ids
- res.role: role_ids
- res.users.apikeys: api_key_ids
- res.users.log: log_ids
- res.users.settings: res_users_settings_id, res_users_settings_ids
- resource.calendar: resource_calendar_id
- resource.resource: resource_ids
- stock.warehouse: property_warehouse_id
- website: website_id
Fields of other models pointing here
- account.analytic.line: user_id
- account.analytic.line.calendar.employee: user_id
- account.invoice.report: invoice_user_id
- account.lock_exception: user_id
- account.move: invoice_user_id, user_id
- auth_totp.wizard: user_id
- auth.passkey.key: create_uid
- auth.totp.rate.limit.log: user_id
- base.module.install.request: user_id, user_ids
- blog.post: create_uid, write_uid
- calendar.event: user_id
- calendar.filters: user_id
- card.campaign: user_id
- change.password.user: user_id
- crm.activity.report: user_id
- crm.iap.lead.mining.request: user_id
- crm.lead: user_id
- crm.lead2opportunity.partner: user_id
- crm.lead2opportunity.partner.mass: user_ids
- crm.merge.opportunity: user_id
- crm.partner.report.assign: user_id
- crm.reveal.rule: user_id
- crm.team: favorite_user_ids, member_ids, user_id
- crm.team.member: user_id, user_in_teams_ids
- data_recycle.model: notify_user_ids
- digest.digest: user_ids
- digest.tip: user_ids
- event.event: user_id
- event.lead.rule: lead_user_id
- event.registration: event_user_id
- event.sale.report: sale_order_user_id
- event.track: user_id
- fleet.vehicle: manager_id
- fleet.vehicle.log.contract: user_id
- fleet.vehicle.log.services: manager_id
- forum.post: closed_uid, create_uid, favourite_ids, flag_user_id, moderator_id, write_uid
- forum.post.vote: recipient_id, user_id
- gamification.badge: rule_auth_user_ids, unique_owner_ids
- gamification.badge.user: sender_id, user_id
- gamification.badge.user.wizard: user_id
- and 111 more
Reading this model through the API
Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.
curl -X POST "https://your-instance.odoo.com/json/2/res.users/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","company_id","login","notification_type","partner_id"],"limit":5}'import requests
BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}
res = requests.post(
f"{BASE_URL}/res.users/search_read",
headers=headers,
json={"domain": [], "fields": ["name","company_id","login","notification_type","partner_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- External API access requires Odoo's Custom plan.
- XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
- The access rights and record rules of the key's user apply.
Cite this tool
Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.
<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/res-users">res.users (Odoo 19.0)</a>Sources
Data verified on September 23, 2026 · Odoo 19.0 Community
Have an Odoo project, or want to put your ERP to work with AI? Let's talk
Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.