Tech Data Reports API

Billing and business intelligence reports

OpenAPI Specification

tech-data-reports-api-openapi.yml Raw ↑
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.