openapi: 3.1.0 info: title: TD SYNNEX StreamOne Ion Authentication Reports API description: The StreamOne Ion API provides reseller partners with programmatic access to TD SYNNEX's cloud distribution platform. Partners can manage end customers, browse product catalogs, create and manage orders, handle subscriptions, configure cloud provider accounts, manage shopping carts, and access billing reports. The API supports multi-vendor cloud management across Microsoft, Google, and AWS through a unified interface. version: v3 contact: name: TD SYNNEX StreamOne Ion url: https://docs.streamone.cloud/ license: name: TD SYNNEX Terms of Service url: https://eu.tdsynnex.com/CatAdminHtmlContentEditor/uploads/Country/COM/NEW%20Terms-and-Conditions/StreamOne/Partner%20API%20Service%20Specification%20Addendum%20to%20ION%20Platform%20Agreement.pdf servers: - url: https://ion.tdsynnex.com/api description: TD SYNNEX StreamOne Ion Production security: - BearerAuth: [] tags: - name: Reports description: Billing and business intelligence reports paths: /v3/accounts/{accountId}/reports: get: operationId: listReports summary: List Reports description: Retrieve all available reports for the account. tags: - Reports parameters: - $ref: '#/components/parameters/accountId' responses: '200': description: List of reports content: application/json: schema: type: array items: $ref: '#/components/schemas/Report' '401': $ref: '#/components/responses/Unauthorized' /v3/accounts/{accountId}/reports/metadata: get: operationId: getReportsMetadata summary: Get Reports Metadata description: Retrieve metadata about all available reports including schema and filters. tags: - Reports parameters: - $ref: '#/components/parameters/accountId' responses: '200': description: Reports metadata content: application/json: schema: type: array items: $ref: '#/components/schemas/ReportMetadata' '401': $ref: '#/components/responses/Unauthorized' /v3/accounts/{accountId}/reports/{reportId}: get: operationId: getReport summary: Get Report description: Retrieve details for a specific report. tags: - Reports parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/reportId' responses: '200': description: Report details content: application/json: schema: $ref: '#/components/schemas/Report' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /v3/accounts/{accountId}/reports/{reportId}/data: get: operationId: getReportData summary: Get Report Data description: Retrieve data records for a specific report. tags: - Reports parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/reportId' - name: startDate in: query schema: type: string format: date description: Filter data by start date (YYYY-MM-DD). - name: endDate in: query schema: type: string format: date description: Filter data by end date (YYYY-MM-DD). - name: page in: query schema: type: integer default: 1 - name: pageSize in: query schema: type: integer default: 100 responses: '200': description: Report data content: application/json: schema: $ref: '#/components/schemas/ReportData' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /v3/accounts/{accountId}/reports/{reportId}/data/csv: get: operationId: getReportDataCsv summary: Export Report Data as CSV description: Export report data as a CSV file download. tags: - Reports parameters: - $ref: '#/components/parameters/accountId' - $ref: '#/components/parameters/reportId' - name: startDate in: query schema: type: string format: date - name: endDate in: query schema: type: string format: date responses: '200': description: CSV file content: text/csv: schema: type: string format: binary '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: parameters: reportId: name: reportId in: path required: true schema: type: string description: The report identifier. accountId: name: accountId in: path required: true schema: type: string description: The reseller account identifier. schemas: Pagination: type: object properties: page: type: integer pageSize: type: integer totalRecords: type: integer totalPages: type: integer Error: type: object properties: code: type: string message: type: string details: type: array items: type: string Report: type: object properties: id: type: string name: type: string description: type: string category: type: string frequency: type: string ReportMetadata: type: object properties: id: type: string name: type: string columns: type: array items: type: object properties: name: type: string type: type: string description: type: string filters: type: array items: type: object properties: name: type: string type: type: string ReportData: type: object properties: data: type: array items: type: object additionalProperties: true pagination: $ref: '#/components/schemas/Pagination' responses: NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized - invalid or expired token content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: BearerAuth: type: http scheme: bearer description: OAuth 2.0 bearer token obtained via the /oauth/token endpoint.