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

# analyticsReports

> List the store's analytics reports, newest first.

**Required scopes:** [`analytics_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_read)

## Arguments

**after** `String`

Forward pagination cursor — returns reports after it.

**before** `String`

Backward pagination cursor — returns reports before it.

**first** `Int`

Forward pagination: returns the first N reports (max 100, default 25). Use with `after`; mutually exclusive with `last`/`before`.

**last** `Int`

Backward pagination: returns the last N reports (max 100, default 25). Use with `before`; mutually exclusive with `first`/`after`.

**orderBy**

Which key to sort by (defaults to the first key, newest-first). Combine with `reverse` to flip direction.

**reverse** `Boolean`

Reverses the sort direction selected by `orderBy` (or its default).

**status**

Only return reports with this status.

## Returns

**analyticsReports** *required*

A paginated list of AnalyticsReport items.

**fields**

**edges** *required*

The list of edges (each a node plus its pagination `cursor`).

**fields**

**cursor** `String!` *required*

Opaque cursor for this item; pass to `after`/`before` to page from here.

**node** *required*

The item at this edge.

**fields**

**createdAt** *required*

When the report was created.

**definition**

What the report shows and how each column is calculated. Null while the report has no query.

**Requires:** [`analytics_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_read)

**failureCode**

Why the report FAILED. Null otherwise.

**failureReason** `String`

A merchant-facing explanation of the failure.

**id** `ID!` *required*

The id of this report.

**progressMessage** `String`

What Redo is doing while the report is PREPARING.

**question** `String`

The question or instruction behind the report's latest generation or edit.

**revisions**

Saved versions of the report, newest first.

**Requires:** [`analytics_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_read)

**fields**

**Arguments**

**first** `Int`

How many versions to return, newest first (max 100).

**schedule**

The report's delivery schedule. Null when nothing is delivered by email or SFTP.

**Requires:** [`analytics_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_read)

**status** *required*

Whether the report is ready to read.

**timezone** `String`

The IANA timezone dates are grouped and filtered in. Null uses the store's timezone.

**title** `String`

The report's title. Null while it is first being written.

**updatedAt** *required*

When the report last changed. Pass it as `expectedUpdatedAt` to `analyticsReportUpdate` to avoid overwriting someone else's edit.

**nodes** *required*

The nodes in this page, without the edge/cursor wrapper — a convenience over `edges`.

**fields**

**createdAt** *required*

When the report was created.

**definition**

What the report shows and how each column is calculated. Null while the report has no query.

**Requires:** [`analytics_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_read)

**fields**

**columns** *required*

The report's columns, in display order.

**filters** *required*

Filters on every row of the report, including its date range.

**rowDescription** `String`

What one row represents, such as `One row per return`.

**rowLimit** `Int`

The most rows the report returns. Null for no limit.

**sorts** *required*

How rows are ordered, first key first.

**summary** `String`

A short explanation of the report, written when it was made.

**failureCode**

Why the report FAILED. Null otherwise.

**failureReason** `String`

A merchant-facing explanation of the failure.

**id** `ID!` *required*

The id of this report.

**progressMessage** `String`

What Redo is doing while the report is PREPARING.

**question** `String`

The question or instruction behind the report's latest generation or edit.

**revisions**

Saved versions of the report, newest first.

**Requires:** [`analytics_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_read)

**fields**

**Arguments**

**first** `Int`

How many versions to return, newest first (max 100).

**Fields**

**changes** `[String!]!` *required*

What changed from the version before it, such as `Column added: Refund amount`.

**createdAt** *required*

When this version was saved.

**revisionNumber** `Int!` *required*

The version's number; higher is newer.

**title** `String`

The report's title in this version.

**schedule**

The report's delivery schedule. Null when nothing is delivered by email or SFTP.

**Requires:** [`analytics_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-analytics_read)

**fields**

**cadence**

The schedule as a daily, weekly or monthly cadence. Null when only `cronExpression` can express it.

**cronExpression** `String!` *required*

The six-field cron expression (seconds first) the schedule runs on, in the report's timezone.

**emailDelivery** `Boolean!` *required*

Whether the report is emailed.

**emailRecipients** `[String!]!` *required*

The addresses the report is emailed to.

**nextRunAt** *required*

When the report is next delivered.

**sftpDelivery** `Boolean!` *required*

Whether the report is uploaded to the store's SFTP server.

**updatedAt** *required*

When the schedule last changed.

**status** *required*

Whether the report is ready to read.

**timezone** `String`

The IANA timezone dates are grouped and filtered in. Null uses the store's timezone.

**title** `String`

The report's title. Null while it is first being written.

**updatedAt** *required*

When the report last changed. Pass it as `expectedUpdatedAt` to `analyticsReportUpdate` to avoid overwriting someone else's edit.

**pageInfo** *required*

Pagination metadata for the current page.

**fields**

**endCursor** `String`

Cursor of the last edge in this page; pass to `after` to page forward.

**hasNextPage** `Boolean!` *required*

Whether more items exist after this page (drives forward pagination with `first`/`after`).

**hasPreviousPage** `Boolean!` *required*

Whether more items exist before this page (drives backward pagination with `last`/`before`).

**startCursor** `String`

Cursor of the first edge in this page; pass to `before` to page backward.

## Example

```graphql theme={null}
query {
  analyticsReports(after: "...", before: "...", first: 10, last: 10, orderBy: CREATED_AT, reverse: true, status: FAILED) {
    nodes {
      createdAt
      failureCode
      failureReason
      id
      progressMessage
      question
      status
      timezone
      # ...
    }
    pageInfo { hasNextPage endCursor }
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.