Skip to content
Docs
Reference

BackstageClient.reports

BackstageClient.reports in @ticketlayer/backstage.

@ticketlayer/backstage


@ticketlayer/backstage / BackstageClient / reports

reports: {
  dashboardCreate: (request: {
     accountId?: string;
     description?: string;
     globalFilters?: {
        control: "dateRange" | "select" | "multiselect";
        default?: any;
        key: string;
        label: string;
        member?: string;
        members?: Record<string, any>;
     }[];
     layout?: {
        h: number;
        query?: {
           dimensions?: string[];
           filters?: {
              member: ...;
              operator: ...;
              values?: ...;
           }[];
           limit?: number;
           measures?: string[];
           offset?: number;
           order?: any;
           segments?: string[];
           timeDimensions?: {
              dateRange?: ...;
              dimension: ...;
              granularity?: ...;
           }[];
           timezone?: string;
        };
        reportId?: string;
        tileId: string;
        title?: string;
        viz?: {
           series?: string;
           type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
           x?: string;
           y?: any;
        };
        w: number;
        x: number;
        y: number;
     }[];
     name: string;
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        dashboard: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           globalFilters: {
            [key: string]: unknown;
           }[];
           id: string;
           isSystem: boolean;
           layout: {
            [key: string]: unknown;
           }[];
           name: string;
           organisationId: string;
           updatedAt: string;
        };
     };
     status: "success";
  }>;
  dashboardDelete: (id: string, requestOptions?: RequestOptions) => Promise<{
     data: {
        deleted: boolean;
     };
     status: "success";
  }>;
  dashboardGet: (id: string, requestOptions?: RequestOptions) => Promise<{
     data: {
        dashboard: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           globalFilters: {
            [key: string]: unknown;
           }[];
           id: string;
           isSystem: boolean;
           layout: {
            [key: string]: unknown;
           }[];
           name: string;
           organisationId: string;
           updatedAt: string;
        };
     };
     status: "success";
  }>;
  dashboardList: (options?: {
     accountId?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        dashboards: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           globalFilters: {
            [key: string]: unknown;
           }[];
           id: string;
           isSystem: boolean;
           layout: {
            [key: string]: unknown;
           }[];
           name: string;
           organisationId: string;
           updatedAt: string;
        }[];
     };
     status: "success";
  }>;
  dashboardUpdate: (id: string, request: {
     accountId?: string;
     description?: string;
     globalFilters?: {
        control: "dateRange" | "select" | "multiselect";
        default?: any;
        key: string;
        label: string;
        member?: string;
        members?: Record<string, any>;
     }[];
     layout?: {
        h: number;
        query?: {
           dimensions?: string[];
           filters?: {
              member: ...;
              operator: ...;
              values?: ...;
           }[];
           limit?: number;
           measures?: string[];
           offset?: number;
           order?: any;
           segments?: string[];
           timeDimensions?: {
              dateRange?: ...;
              dimension: ...;
              granularity?: ...;
           }[];
           timezone?: string;
        };
        reportId?: string;
        tileId: string;
        title?: string;
        viz?: {
           series?: string;
           type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
           x?: string;
           y?: any;
        };
        w: number;
        x: number;
        y: number;
     }[];
     name?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        dashboard: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           globalFilters: {
            [key: string]: unknown;
           }[];
           id: string;
           isSystem: boolean;
           layout: {
            [key: string]: unknown;
           }[];
           name: string;
           organisationId: string;
           updatedAt: string;
        };
     };
     status: "success";
  }>;
  inventory: (options?: {
     eventId?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        filters: {
         [key: string]: unknown;
        };
        occurrences: {
           available: number;
           confirmed: number;
           eventId: string | null;
           held: number;
           occurrenceId: string | null;
           reserved: number;
           sellThroughPct: number;
           totalCapacity: number;
           utilisationPct: number;
        }[];
     };
     status: "success";
  }>;
  meta: (requestOptions?: RequestOptions) => Promise<{
     data: {
        models: {
         [key: string]: unknown;
        }[];
     };
     status: "success";
  }>;
  query: (request: {
     query: {
        dimensions?: string[];
        filters?: {
           member: string;
           operator: string;
           values?: string[];
        }[];
        limit?: number;
        measures?: string[];
        offset?: number;
        order?: any;
        segments?: string[];
        timeDimensions?: {
           dateRange?: any;
           dimension: string;
           granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
        }[];
        timezone?: string;
     };
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        query: {
         [key: string]: unknown;
        };
        rows: {
         [key: string]: unknown;
        }[];
     };
     status: "success";
  }>;
  savedCreate: (request: {
     accountId?: string;
     description?: string;
     name: string;
     params?: {
        allowed?: string[];
        kind: "timeRange" | "groupBy" | "filter" | "compare";
        label?: string;
        member?: string;
     }[];
     query: {
        dimensions?: string[];
        filters?: {
           member: string;
           operator: string;
           values?: string[];
        }[];
        limit?: number;
        measures?: string[];
        offset?: number;
        order?: any;
        segments?: string[];
        timeDimensions?: {
           dateRange?: any;
           dimension: string;
           granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
        }[];
        timezone?: string;
     };
     viz?: {
        series?: string;
        type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
        x?: string;
        y?: any;
     };
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        report: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           id: string;
           name: string;
           organisationId: string;
           params: {
            [key: string]: unknown;
           }[];
           query: {
            [key: string]: unknown;
           };
           updatedAt: string;
           viz: {
            [key: string]: unknown;
           };
        };
     };
     status: "success";
  }>;
  savedDelete: (id: string, requestOptions?: RequestOptions) => Promise<{
     data: {
        deleted: boolean;
     };
     status: "success";
  }>;
  savedGet: (id: string, requestOptions?: RequestOptions) => Promise<{
     data: {
        report: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           id: string;
           name: string;
           organisationId: string;
           params: {
            [key: string]: unknown;
           }[];
           query: {
            [key: string]: unknown;
           };
           updatedAt: string;
           viz: {
            [key: string]: unknown;
           };
        };
     };
     status: "success";
  }>;
  savedList: (options?: {
     accountId?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        reports: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           id: string;
           name: string;
           organisationId: string;
           params: {
            [key: string]: unknown;
           }[];
           query: {
            [key: string]: unknown;
           };
           updatedAt: string;
           viz: {
            [key: string]: unknown;
           };
        }[];
     };
     status: "success";
  }>;
  savedRun: (id: string, request: {
     overrides?: {
        dimensions?: string[];
        filters?: {
           member: string;
           operator: string;
           values?: string[];
        }[];
        limit?: number;
        measures?: string[];
        offset?: number;
        order?: any;
        segments?: string[];
        timeDimensions?: {
           dateRange?: any;
           dimension: string;
           granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
        }[];
        timezone?: string;
     };
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        query: {
         [key: string]: unknown;
        };
        rows: {
         [key: string]: unknown;
        }[];
     };
     status: "success";
  }>;
  savedUpdate: (id: string, request: {
     accountId?: string;
     description?: string;
     name?: string;
     params?: {
        allowed?: string[];
        kind: "timeRange" | "groupBy" | "filter" | "compare";
        label?: string;
        member?: string;
     }[];
     query?: {
        dimensions?: string[];
        filters?: {
           member: string;
           operator: string;
           values?: string[];
        }[];
        limit?: number;
        measures?: string[];
        offset?: number;
        order?: any;
        segments?: string[];
        timeDimensions?: {
           dateRange?: any;
           dimension: string;
           granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
        }[];
        timezone?: string;
     };
     viz?: {
        series?: string;
        type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
        x?: string;
        y?: any;
     };
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        report: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           id: string;
           name: string;
           organisationId: string;
           params: {
            [key: string]: unknown;
           }[];
           query: {
            [key: string]: unknown;
           };
           updatedAt: string;
           viz: {
            [key: string]: unknown;
           };
        };
     };
     status: "success";
  }>;
  summary: (options?: {
     eventId?: string;
     from?: string;
     to?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        currencies: {
           aov: number;
           currency: string | null;
           discounts: number;
           grossRevenue: number;
           netToOrganiser: number;
           orderCount: number;
           platformFees: number;
           taxCollected: number;
           ticketsSold: number;
        }[];
        filters: {
           eventId?: string;
           from?: string;
           to?: string;
        };
     };
     status: "success";
  }>;
  templateInstall: (key: string, requestOptions?: RequestOptions) => Promise<{
     data: {
        dashboard: {
           accountId: string | null;
           createdAt: string;
           createdBy: string | null;
           description: string | null;
           globalFilters: {
            [key: string]: unknown;
           }[];
           id: string;
           isSystem: boolean;
           layout: {
            [key: string]: unknown;
           }[];
           name: string;
           organisationId: string;
           updatedAt: string;
        };
     };
     status: "success";
  }>;
  templateList: (requestOptions?: RequestOptions) => Promise<{
     data: {
        templates: {
           description: string;
           key: string;
           name: string;
           tileCount: number;
        }[];
     };
     status: "success";
  }>;
  timeseries: (options?: {
     eventId?: string;
     from?: string;
     granularity?: "month" | "day" | "week";
     to?: string;
   }, requestOptions?: RequestOptions) => Promise<{
     data: {
        filters: {
         [key: string]: unknown;
        };
        granularity: string;
        series: {
           currency: string | null;
           date: string | null;
           grossRevenue: number;
           ticketsSold: number;
        }[];
     };
     status: "success";
  }>;
};

Defined in: client.ts:10146

Reports methods

dashboardCreate()#

dashboardCreate: (request: {
  accountId?: string;
  description?: string;
  globalFilters?: {
     control: "dateRange" | "select" | "multiselect";
     default?: any;
     key: string;
     label: string;
     member?: string;
     members?: Record<string, any>;
  }[];
  layout?: {
     h: number;
     query?: {
        dimensions?: string[];
        filters?: {
           member: ...;
           operator: ...;
           values?: ...;
        }[];
        limit?: number;
        measures?: string[];
        offset?: number;
        order?: any;
        segments?: string[];
        timeDimensions?: {
           dateRange?: ...;
           dimension: ...;
           granularity?: ...;
        }[];
        timezone?: string;
     };
     reportId?: string;
     tileId: string;
     title?: string;
     viz?: {
        series?: string;
        type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
        x?: string;
        y?: any;
     };
     w: number;
     x: number;
     y: number;
  }[];
  name: string;
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     dashboard: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        globalFilters: {
         [key: string]: unknown;
        }[];
        id: string;
        isSystem: boolean;
        layout: {
         [key: string]: unknown;
        }[];
        name: string;
        organisationId: string;
        updatedAt: string;
     };
  };
  status: "success";
}>;

Create a dashboard

Parameters#

ParameterType
request{ accountId?: string; description?: string; globalFilters?: { control: "dateRange" | "select" | "multiselect"; default?: any; key: string; label: string; member?: string; members?: Record<string, any>; }[]; layout?: { h: number; query?: { dimensions?: string[]; filters?: { member: ...; operator: ...; values?: ...; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: ...; dimension: ...; granularity?: ...; }[]; timezone?: string; }; reportId?: string; tileId: string; title?: string; viz?: { series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }; w: number; x: number; y: number; }[]; name: string; }
request.accountId?string
request.description?string
request.globalFilters?{ control: "dateRange" | "select" | "multiselect"; default?: any; key: string; label: string; member?: string; members?: Record<string, any>; }[]
request.layout?{ h: number; query?: { dimensions?: string[]; filters?: { member: ...; operator: ...; values?: ...; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: ...; dimension: ...; granularity?: ...; }[]; timezone?: string; }; reportId?: string; tileId: string; title?: string; viz?: { series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }; w: number; x: number; y: number; }[]
request.name?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { dashboard: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; globalFilters: { [key: string]: unknown; }[]; id: string; isSystem: boolean; layout: { [key: string]: unknown; }[]; name: string; organisationId: string; updatedAt: string; }; }; status: "success"; }>

Operation Id#

createDashboard

dashboardDelete()#

dashboardDelete: (id: string, requestOptions?: RequestOptions) => Promise<{
  data: {
     deleted: boolean;
  };
  status: "success";
}>;

Delete a dashboard

Parameters#

ParameterType
idstring
requestOptions?RequestOptions

Returns#

Promise<{ data: { deleted: boolean; }; status: "success"; }>

Operation Id#

deleteDashboard

dashboardGet()#

dashboardGet: (id: string, requestOptions?: RequestOptions) => Promise<{
  data: {
     dashboard: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        globalFilters: {
         [key: string]: unknown;
        }[];
        id: string;
        isSystem: boolean;
        layout: {
         [key: string]: unknown;
        }[];
        name: string;
        organisationId: string;
        updatedAt: string;
     };
  };
  status: "success";
}>;

Get a dashboard

Parameters#

ParameterType
idstring
requestOptions?RequestOptions

Returns#

Promise<{ data: { dashboard: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; globalFilters: { [key: string]: unknown; }[]; id: string; isSystem: boolean; layout: { [key: string]: unknown; }[]; name: string; organisationId: string; updatedAt: string; }; }; status: "success"; }>

Operation Id#

getDashboard

dashboardList()#

dashboardList: (options?: {
  accountId?: string;
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     dashboards: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        globalFilters: {
         [key: string]: unknown;
        }[];
        id: string;
        isSystem: boolean;
        layout: {
         [key: string]: unknown;
        }[];
        name: string;
        organisationId: string;
        updatedAt: string;
     }[];
  };
  status: "success";
}>;

List dashboards

Parameters#

ParameterType
options?{ accountId?: string; }
options.accountId?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { dashboards: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; globalFilters: { [key: string]: unknown; }[]; id: string; isSystem: boolean; layout: { [key: string]: unknown; }[]; name: string; organisationId: string; updatedAt: string; }[]; }; status: "success"; }>

Operation Id#

listDashboards

dashboardUpdate()#

dashboardUpdate: (id: string, request: {
  accountId?: string;
  description?: string;
  globalFilters?: {
     control: "dateRange" | "select" | "multiselect";
     default?: any;
     key: string;
     label: string;
     member?: string;
     members?: Record<string, any>;
  }[];
  layout?: {
     h: number;
     query?: {
        dimensions?: string[];
        filters?: {
           member: ...;
           operator: ...;
           values?: ...;
        }[];
        limit?: number;
        measures?: string[];
        offset?: number;
        order?: any;
        segments?: string[];
        timeDimensions?: {
           dateRange?: ...;
           dimension: ...;
           granularity?: ...;
        }[];
        timezone?: string;
     };
     reportId?: string;
     tileId: string;
     title?: string;
     viz?: {
        series?: string;
        type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
        x?: string;
        y?: any;
     };
     w: number;
     x: number;
     y: number;
  }[];
  name?: string;
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     dashboard: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        globalFilters: {
         [key: string]: unknown;
        }[];
        id: string;
        isSystem: boolean;
        layout: {
         [key: string]: unknown;
        }[];
        name: string;
        organisationId: string;
        updatedAt: string;
     };
  };
  status: "success";
}>;

Update a dashboard

Parameters#

ParameterType
idstring
request{ accountId?: string; description?: string; globalFilters?: { control: "dateRange" | "select" | "multiselect"; default?: any; key: string; label: string; member?: string; members?: Record<string, any>; }[]; layout?: { h: number; query?: { dimensions?: string[]; filters?: { member: ...; operator: ...; values?: ...; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: ...; dimension: ...; granularity?: ...; }[]; timezone?: string; }; reportId?: string; tileId: string; title?: string; viz?: { series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }; w: number; x: number; y: number; }[]; name?: string; }
request.accountId?string
request.description?string
request.globalFilters?{ control: "dateRange" | "select" | "multiselect"; default?: any; key: string; label: string; member?: string; members?: Record<string, any>; }[]
request.layout?{ h: number; query?: { dimensions?: string[]; filters?: { member: ...; operator: ...; values?: ...; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: ...; dimension: ...; granularity?: ...; }[]; timezone?: string; }; reportId?: string; tileId: string; title?: string; viz?: { series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }; w: number; x: number; y: number; }[]
request.name?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { dashboard: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; globalFilters: { [key: string]: unknown; }[]; id: string; isSystem: boolean; layout: { [key: string]: unknown; }[]; name: string; organisationId: string; updatedAt: string; }; }; status: "success"; }>

Operation Id#

updateDashboard

inventory()#

inventory: (options?: {
  eventId?: string;
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     filters: {
      [key: string]: unknown;
     };
     occurrences: {
        available: number;
        confirmed: number;
        eventId: string | null;
        held: number;
        occurrenceId: string | null;
        reserved: number;
        sellThroughPct: number;
        totalCapacity: number;
        utilisationPct: number;
     }[];
  };
  status: "success";
}>;

Inventory sell-through Current sell-through and utilisation per occurrence.

Parameters#

ParameterType
options?{ eventId?: string; }
options.eventId?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { filters: { [key: string]: unknown; }; occurrences: { available: number; confirmed: number; eventId: string | null; held: number; occurrenceId: string | null; reserved: number; sellThroughPct: number; totalCapacity: number; utilisationPct: number; }[]; }; status: "success"; }>

Operation Id#

getReportsInventory

meta()#

meta: (requestOptions?: RequestOptions) => Promise<{
  data: {
     models: {
      [key: string]: unknown;
     }[];
  };
  status: "success";
}>;

Semantic model The semantic model (data models, measures, dimensions) the caller may explore - drives the explorer pickers and grounds NL queries.

Parameters#

ParameterType
requestOptions?RequestOptions

Returns#

Promise<{ data: { models: { [key: string]: unknown; }[]; }; status: "success"; }>

Operation Id#

getReportsMeta

query()#

query: (request: {
  query: {
     dimensions?: string[];
     filters?: {
        member: string;
        operator: string;
        values?: string[];
     }[];
     limit?: number;
     measures?: string[];
     offset?: number;
     order?: any;
     segments?: string[];
     timeDimensions?: {
        dateRange?: any;
        dimension: string;
        granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
     }[];
     timezone?: string;
  };
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     query: {
      [key: string]: unknown;
     };
     rows: {
      [key: string]: unknown;
     }[];
  };
  status: "success";
}>;

Run an ad-hoc query Execute an arbitrary (validated + guarded) Insights query. Tenant- and account-scoped via the analytics principal; data models/members restricted and cost capped.

Parameters#

ParameterType
request{ query: { dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }; }
request.query{ dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }
request.query.dimensions?string[]
request.query.filters?{ member: string; operator: string; values?: string[]; }[]
request.query.limit?number
request.query.measures?string[]
request.query.offset?number
request.query.order?any
request.query.segments?string[]
request.query.timeDimensions?{ dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]
request.query.timezone?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { query: { [key: string]: unknown; }; rows: { [key: string]: unknown; }[]; }; status: "success"; }>

Operation Id#

runReportsQuery

savedCreate()#

savedCreate: (request: {
  accountId?: string;
  description?: string;
  name: string;
  params?: {
     allowed?: string[];
     kind: "timeRange" | "groupBy" | "filter" | "compare";
     label?: string;
     member?: string;
  }[];
  query: {
     dimensions?: string[];
     filters?: {
        member: string;
        operator: string;
        values?: string[];
     }[];
     limit?: number;
     measures?: string[];
     offset?: number;
     order?: any;
     segments?: string[];
     timeDimensions?: {
        dateRange?: any;
        dimension: string;
        granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
     }[];
     timezone?: string;
  };
  viz?: {
     series?: string;
     type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
     x?: string;
     y?: any;
  };
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     report: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        id: string;
        name: string;
        organisationId: string;
        params: {
         [key: string]: unknown;
        }[];
        query: {
         [key: string]: unknown;
        };
        updatedAt: string;
        viz: {
         [key: string]: unknown;
        };
     };
  };
  status: "success";
}>;

Create a saved report Persist a cube query + viz + slicer params as a reusable report.

Parameters#

ParameterType
request{ accountId?: string; description?: string; name: string; params?: { allowed?: string[]; kind: "timeRange" | "groupBy" | "filter" | "compare"; label?: string; member?: string; }[]; query: { dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }; viz?: { series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }; }
request.accountId?string
request.description?string
request.name?string
request.params?{ allowed?: string[]; kind: "timeRange" | "groupBy" | "filter" | "compare"; label?: string; member?: string; }[]
request.query?{ dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }
request.query.dimensions?string[]
request.query.filters?{ member: string; operator: string; values?: string[]; }[]
request.query.limit?number
request.query.measures?string[]
request.query.offset?number
request.query.order?any
request.query.segments?string[]
request.query.timeDimensions?{ dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]
request.query.timezone?string
request.viz?{ series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }
request.viz.series?string
request.viz.type?"bar" | "table" | "line" | "area" | "pie" | "kpi"
request.viz.x?string
request.viz.y?any
requestOptions?RequestOptions

Returns#

Promise<{ data: { report: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; id: string; name: string; organisationId: string; params: { [key: string]: unknown; }[]; query: { [key: string]: unknown; }; updatedAt: string; viz: { [key: string]: unknown; }; }; }; status: "success"; }>

Operation Id#

createSavedReport

savedDelete()#

savedDelete: (id: string, requestOptions?: RequestOptions) => Promise<{
  data: {
     deleted: boolean;
  };
  status: "success";
}>;

Delete a saved report

Parameters#

ParameterType
idstring
requestOptions?RequestOptions

Returns#

Promise<{ data: { deleted: boolean; }; status: "success"; }>

Operation Id#

deleteSavedReport

savedGet()#

savedGet: (id: string, requestOptions?: RequestOptions) => Promise<{
  data: {
     report: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        id: string;
        name: string;
        organisationId: string;
        params: {
         [key: string]: unknown;
        }[];
        query: {
         [key: string]: unknown;
        };
        updatedAt: string;
        viz: {
         [key: string]: unknown;
        };
     };
  };
  status: "success";
}>;

Get a saved report

Parameters#

ParameterType
idstring
requestOptions?RequestOptions

Returns#

Promise<{ data: { report: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; id: string; name: string; organisationId: string; params: { [key: string]: unknown; }[]; query: { [key: string]: unknown; }; updatedAt: string; viz: { [key: string]: unknown; }; }; }; status: "success"; }>

Operation Id#

getSavedReport

savedList()#

savedList: (options?: {
  accountId?: string;
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     reports: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        id: string;
        name: string;
        organisationId: string;
        params: {
         [key: string]: unknown;
        }[];
        query: {
         [key: string]: unknown;
        };
        updatedAt: string;
        viz: {
         [key: string]: unknown;
        };
     }[];
  };
  status: "success";
}>;

List saved reports List the saved reports the caller may see in their organisation.

Parameters#

ParameterType
options?{ accountId?: string; }
options.accountId?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { reports: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; id: string; name: string; organisationId: string; params: { [key: string]: unknown; }[]; query: { [key: string]: unknown; }; updatedAt: string; viz: { [key: string]: unknown; }; }[]; }; status: "success"; }>

Operation Id#

listSavedReports

savedRun()#

savedRun: (id: string, request: {
  overrides?: {
     dimensions?: string[];
     filters?: {
        member: string;
        operator: string;
        values?: string[];
     }[];
     limit?: number;
     measures?: string[];
     offset?: number;
     order?: any;
     segments?: string[];
     timeDimensions?: {
        dateRange?: any;
        dimension: string;
        granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
     }[];
     timezone?: string;
  };
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     query: {
      [key: string]: unknown;
     };
     rows: {
      [key: string]: unknown;
     }[];
  };
  status: "success";
}>;

Run a saved report Execute a saved report, optionally merging slicer overrides onto its base query (re-validated + re-scoped).

Parameters#

ParameterType
idstring
request{ overrides?: { dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }; }
request.overrides?{ dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }
request.overrides.dimensions?string[]
request.overrides.filters?{ member: string; operator: string; values?: string[]; }[]
request.overrides.limit?number
request.overrides.measures?string[]
request.overrides.offset?number
request.overrides.order?any
request.overrides.segments?string[]
request.overrides.timeDimensions?{ dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]
request.overrides.timezone?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { query: { [key: string]: unknown; }; rows: { [key: string]: unknown; }[]; }; status: "success"; }>

Operation Id#

runSavedReport

savedUpdate()#

savedUpdate: (id: string, request: {
  accountId?: string;
  description?: string;
  name?: string;
  params?: {
     allowed?: string[];
     kind: "timeRange" | "groupBy" | "filter" | "compare";
     label?: string;
     member?: string;
  }[];
  query?: {
     dimensions?: string[];
     filters?: {
        member: string;
        operator: string;
        values?: string[];
     }[];
     limit?: number;
     measures?: string[];
     offset?: number;
     order?: any;
     segments?: string[];
     timeDimensions?: {
        dateRange?: any;
        dimension: string;
        granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter";
     }[];
     timezone?: string;
  };
  viz?: {
     series?: string;
     type: "bar" | "table" | "line" | "area" | "pie" | "kpi";
     x?: string;
     y?: any;
  };
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     report: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        id: string;
        name: string;
        organisationId: string;
        params: {
         [key: string]: unknown;
        }[];
        query: {
         [key: string]: unknown;
        };
        updatedAt: string;
        viz: {
         [key: string]: unknown;
        };
     };
  };
  status: "success";
}>;

Update a saved report

Parameters#

ParameterType
idstring
request{ accountId?: string; description?: string; name?: string; params?: { allowed?: string[]; kind: "timeRange" | "groupBy" | "filter" | "compare"; label?: string; member?: string; }[]; query?: { dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }; viz?: { series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }; }
request.accountId?string
request.description?string
request.name?string
request.params?{ allowed?: string[]; kind: "timeRange" | "groupBy" | "filter" | "compare"; label?: string; member?: string; }[]
request.query?{ dimensions?: string[]; filters?: { member: string; operator: string; values?: string[]; }[]; limit?: number; measures?: string[]; offset?: number; order?: any; segments?: string[]; timeDimensions?: { dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]; timezone?: string; }
request.query.dimensions?string[]
request.query.filters?{ member: string; operator: string; values?: string[]; }[]
request.query.limit?number
request.query.measures?string[]
request.query.offset?number
request.query.order?any
request.query.segments?string[]
request.query.timeDimensions?{ dateRange?: any; dimension: string; granularity?: "month" | "year" | "day" | "week" | "hour" | "quarter"; }[]
request.query.timezone?string
request.viz?{ series?: string; type: "bar" | "table" | "line" | "area" | "pie" | "kpi"; x?: string; y?: any; }
request.viz.series?string
request.viz.type?"bar" | "table" | "line" | "area" | "pie" | "kpi"
request.viz.x?string
request.viz.y?any
requestOptions?RequestOptions

Returns#

Promise<{ data: { report: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; id: string; name: string; organisationId: string; params: { [key: string]: unknown; }[]; query: { [key: string]: unknown; }; updatedAt: string; viz: { [key: string]: unknown; }; }; }; status: "success"; }>

Operation Id#

updateSavedReport

summary()#

summary: (options?: {
  eventId?: string;
  from?: string;
  to?: string;
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     currencies: {
        aov: number;
        currency: string | null;
        discounts: number;
        grossRevenue: number;
        netToOrganiser: number;
        orderCount: number;
        platformFees: number;
        taxCollected: number;
        ticketsSold: number;
     }[];
     filters: {
        eventId?: string;
        from?: string;
        to?: string;
     };
  };
  status: "success";
}>;

Sales summary KPIs Headline realised-sales KPIs (gross, net-to-organiser, fees, tax, tickets, AOV) per currency. Money is integer minor units. Tenant- and account-scoped via the analytics principal.

Parameters#

ParameterType
options?{ eventId?: string; from?: string; to?: string; }
options.eventId?string
options.from?string
options.to?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { currencies: { aov: number; currency: string | null; discounts: number; grossRevenue: number; netToOrganiser: number; orderCount: number; platformFees: number; taxCollected: number; ticketsSold: number; }[]; filters: { eventId?: string; from?: string; to?: string; }; }; status: "success"; }>

Operation Id#

getReportsSummary

templateInstall()#

templateInstall: (key: string, requestOptions?: RequestOptions) => Promise<{
  data: {
     dashboard: {
        accountId: string | null;
        createdAt: string;
        createdBy: string | null;
        description: string | null;
        globalFilters: {
         [key: string]: unknown;
        }[];
        id: string;
        isSystem: boolean;
        layout: {
         [key: string]: unknown;
        }[];
        name: string;
        organisationId: string;
        updatedAt: string;
     };
  };
  status: "success";
}>;

Install a template Clone a standard template into the org: creates its saved reports + a dashboard the org then owns.

Parameters#

ParameterType
keystring
requestOptions?RequestOptions

Returns#

Promise<{ data: { dashboard: { accountId: string | null; createdAt: string; createdBy: string | null; description: string | null; globalFilters: { [key: string]: unknown; }[]; id: string; isSystem: boolean; layout: { [key: string]: unknown; }[]; name: string; organisationId: string; updatedAt: string; }; }; status: "success"; }>

Operation Id#

installReportTemplate

templateList()#

templateList: (requestOptions?: RequestOptions) => Promise<{
  data: {
     templates: {
        description: string;
        key: string;
        name: string;
        tileCount: number;
     }[];
  };
  status: "success";
}>;

List standard templates The standard library of report/dashboard templates that can be installed.

Parameters#

ParameterType
requestOptions?RequestOptions

Returns#

Promise<{ data: { templates: { description: string; key: string; name: string; tileCount: number; }[]; }; status: "success"; }>

Operation Id#

listReportTemplates

timeseries()#

timeseries: (options?: {
  eventId?: string;
  from?: string;
  granularity?: "month" | "day" | "week";
  to?: string;
}, requestOptions?: RequestOptions) => Promise<{
  data: {
     filters: {
      [key: string]: unknown;
     };
     granularity: string;
     series: {
        currency: string | null;
        date: string | null;
        grossRevenue: number;
        ticketsSold: number;
     }[];
  };
  status: "success";
}>;

Sales over time Gross revenue and tickets sold bucketed by day/week/month, per currency.

Parameters#

ParameterType
options?{ eventId?: string; from?: string; granularity?: "month" | "day" | "week"; to?: string; }
options.eventId?string
options.from?string
options.granularity?"month" | "day" | "week"
options.to?string
requestOptions?RequestOptions

Returns#

Promise<{ data: { filters: { [key: string]: unknown; }; granularity: string; series: { currency: string | null; date: string | null; grossRevenue: number; ticketsSold: number; }[]; }; status: "success"; }>

Operation Id#

getReportsTimeseries