Odoo 20.0 Community · Persistent

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 13 other modules. It exposes 31 fields, 18 of them declared directly on the model; 8 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 20 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, base_report_paper_muncher, base_report_wkhtmltox, sale, hr_expense, stock, printer, stock_delivery, purchase, sale_pdf_quote_builder, snailmail
Default order (_order)
name, id
Inherits from (mixins)
ir.actions.actions

Model fields

18 own fields, 7 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

31 of 31 fields shown

Technical nameLabelTypeDetails
attachmentAttachment Name

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_useGenerate new file each time the report is printed

If enabled, then the second time the user prints with same attachment name, it returns the previous report.

boolean
binding_typeBinding Typeselection

Values computed at runtime

domainDomain

If set, the action will only appear on records that matches the domain.

char
group_idsGroupsmany2many
is_invoice_reportInvoice reportboolean

added by Invoicing (account)

linked_view_countLinked View Countinteger
computed
linked_view_idsLinked Viewmany2many
computed
modelModel Namechar
required
model_idModelmany2one
computed
multiOn Multiple Doc.

If set to true, the action will not be displayed on the right toolbar of a form view.

boolean
paperformat_idPaper Sizemany2one
print_report_namePrinted 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
printer_idsPrintersmany2many

added by Printer (printer)

report_nameTechnical Namechar
required
report_typeFormat

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 generated and downloaded by the user.

selection
required

Values: qweb-html (HTML), qweb-pdf (PDF), qweb-text (Text)

save_as_attachmentSave As Attachment

Whether the report is saved as attachment when it is printed

boolean
typeTypechar
binding_model_idBinding Model

Setting a value makes this action available in the sidebar for the given model.

many2one

inherited from ir.actions.actions

binding_view_typesBinding View Typeschar

inherited from ir.actions.actions

explanationExplanation

Verbose description of what this action actually does

text

inherited from ir.actions.actions

helpAction 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

nameAction Namechar
requiredtranslatable

inherited from ir.actions.actions

pathPath to show in the URLchar

inherited from ir.actions.actions

xml_idExternal IDchar
computed

inherited from ir.actions.actions

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

Fields of other models pointing here

Reading this model through the API

Odoo 20 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
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}'
Python (requests)
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 20.0)</a>

Sources

Data verified on September 25, 2026 · Odoo 20.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.