# Download reports

Another nice feature is the reports generation with the `report` property. The `list` method allows you to list all reports available on your Odoo server (classified by models), while the `download` method will retrieve a report as a file (in PDF, HTML... depending of the report).

To list available reports:

    >>> odoo.report.list()
    {u'account.invoice': [{u'name': u'Duplicates', u'report_type': u'qweb-pdf', u'report_name': u'account.account_invoice_report_duplicate_main'}, {u'name': u'Invoices', u'report_type': u'qweb-pdf', u'report_name': u'account.report_invoice'}], u'res.partner': [{u'name': u'Aged Partner Balance', u'report_type': u'qweb-pdf', u'report_name': u'account.report_agedpartnerbalance'}, {u'name': u'Due Payments', u'report_type': u'qweb-pdf', u'report_name': u'account.report_overdue'}], ...}

To download a report:

    >>> report = odoo.report.download('account.report_invoice', [1])

The method will return a file-like object, you will have to read its content in order to save it on your file-system:

    >>> with open('invoice.pdf', 'w') as report_file:
    ...     report_file.write(report.read())
    ...

Next step: Save your credentials (session)