ir.actions.report: fields, relations and API
The ir.actions.report model ("Report Action") is a persistent model declared by the Base module, then extended by 9 other modules. It exposes 27 fields, 15 of them declared directly on the model; 7 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
ir.actions.report- Label
- Report Action
- Type
- Persistent (models.Model)
- SQL table
ir_act_report_xml- Origin module
- Base (
base) - Extended by
- account, account_edi, account_edi_ubl_cii, sale, stock, hr_expense, purchase, sale_pdf_quote_builder, snailmail
- Default order (_order)
name, id- Inherits from (mixins)
- ir.actions.actions
Model fields
15 own fields, 6 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
27 of 27 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| attachment | Save as Attachment Prefix This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables. | char | |
| attachment_use | Reload from Attachment If enabled, then the second time the user prints with same attachment name, it returns the previous report. | boolean | |
| binding_type | Binding Type | selection | Values computed at runtime |
| domain | Filter domain If set, the action will only appear on records that matches the domain. | char | |
| group_ids | Groups | many2many | |
| is_invoice_report | Invoice report | boolean | added by Invoicing ( |
| model | Model Name | char | required |
| model_id | Model | many2one→ ir.model | computed |
| multi | On Multiple Doc. If set to true, the action will not be displayed on the right toolbar of a form view. | boolean | |
| paperformat_id | Paper Format | many2one | |
| print_report_name | Printed Report Name This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables. | char | translatable |
| report_file | Report File The path to the main report file (depending on Report Type) or empty if the content is in another field | char | |
| report_name | Template Name | char | required |
| report_type | Report Type The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user. | selection | required Values: |
| type | Type | char | |
| binding_model_id | Binding Model Setting a value makes this action available in the sidebar for the given model. | many2one→ ir.model | inherited from ir.actions.actions |
| binding_view_types | Binding View Types | char | inherited from ir.actions.actions |
| help | Action Description Optional help text for the users with a description of the target view, such as its usage and purpose. | html | translatable inherited from ir.actions.actions |
| name | Action Name | char | requiredtranslatable inherited from ir.actions.actions |
| path | Path to show in the URL | char | inherited from ir.actions.actions |
| xml_id | External ID | char | computed inherited from ir.actions.actions |
| create_date | Created on | datetime | read-onlyautomatic |
| 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
- ir.model: model_id
- report.paperformat: paperformat_id
- res.groups: group_ids
Fields of other models pointing here
- account.journal: invoice_template_pdf_report_id
- account.move.send.wizard: pdf_report_id
- loyalty.mail: pos_report_print_id
- loyalty.program: pos_report_print_id
- mail.template: report_template_ids
- res.partner: invoice_template_pdf_report_id
- snailmail.letter: report_template
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/ir.actions.report/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","model","report_name","report_type","paperformat_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}/ir.actions.report/search_read",
headers=headers,
json={"domain": [], "fields": ["name","model","report_name","report_type","paperformat_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/ir-actions-report">ir.actions.report (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.