> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qobra.co/llms.txt
> Use this file to discover all available pages before exploring further.

# list_reports

List your company's reports, with filters and pagination.

Each row summarizes one report: its name, type, description, the reporting data
table it is built on, and the section it is filed under. Callers with write
access on reports also get who can view each report (`access` — the roles,
including roles with default access such as admins, and the users it is shared
with); read-only callers get `access: null`. A report's internals — fields,
filters, pivot-table and chart configuration — are intentionally not returned.

You only see the reports you have access to; the rest are omitted. Rows are
ordered alphabetically by report name (A→Z).

## Parameters

<Accordion title="Body" defaultOpen>
  <ParamField body="search" type="string">
    Filter matched against the report name (case- and accent-insensitive
    substring) or, when it is a valid ObjectId, against the report id.
  </ParamField>

  <ParamField body="report_type" type="string">
    Filter restricting results to statement or record reports. Omit to return
    both kinds. One of: `statement`, `record`.
  </ParamField>

  <ParamField body="limit" type="integer">
    Page size, between 1 and 250. Defaults to 50.
  </ParamField>

  <ParamField body="offset" type="integer">
    Row offset into the result set — the number of rows to skip before this
    page. Pass the next\_offset returned by the previous call, or None for the
    first page.
  </ParamField>
</Accordion>

## Response

<Accordion title="Body" defaultOpen>
  <ResponseField name="reports" type="object[]">
    <Expandable title="object properties">
      <ResponseField name="report_id" type="string" />

      <ResponseField name="resource_url" type="string">
        Deep link to open this report in the Qobra web app.
      </ResponseField>

      <ResponseField name="report_name" type="string" />

      <ResponseField name="report_type" type="string">
        What the report is built on: statement (payout statements) or record
        (the rows of a data table — the specific table is named in
        reporting\_table). One of: `statement`, `record`.
      </ResponseField>

      <ResponseField name="description" type="string" />

      <ResponseField name="reporting_table" type="string">
        Name of the reporting data table the report is built on.
      </ResponseField>

      <ResponseField name="section" type="object">
        The section the report is filed under (id and name), or null when
        unfiled.

        <Expandable title="object properties">
          <ResponseField name="section_id" type="string" />

          <ResponseField name="section_name" type="string" />
        </Expandable>
      </ResponseField>

      <ResponseField name="access" type="object">
        Who can view the report, split into roles and users. Each entry carries
        its id, name, and access level. Only returned to callers with write
        access on reports; null for read-only callers.

        <Expandable title="object properties">
          <ResponseField name="roles" type="object[]">
            <Expandable title="object properties">
              <ResponseField name="role_id" type="string" />

              <ResponseField name="role_name" type="string" />

              <ResponseField name="role_access" type="string">
                One of: `read`, `write`, `delete`.
              </ResponseField>

              <ResponseField name="sharing_access" type="string">
                One of: `read`, `write`, `delete`.
              </ResponseField>
            </Expandable>
          </ResponseField>

          <ResponseField name="users" type="object[]">
            <Expandable title="object properties">
              <ResponseField name="user_id" type="string" />

              <ResponseField name="user_name" type="string" />

              <ResponseField name="sharing_access" type="string">
                One of: `read`, `write`, `delete`.
              </ResponseField>
            </Expandable>
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="next_offset" type="integer" />
</Accordion>
