openapi: 3.2.0 info: contact: email: support@lytics.com name: Lytics Support url: https://support.lytics.com/hc/en-us description: Version 2 of the Lytics API termsOfService: https://www.lytics.com/terms-of-service/ title: Lytics Reports API version: '2.0' servers: - url: https://api.lytics.io/v2 tags: - description: Create and manage reports. name: Reports paths: /report: get: description: Get a list of all Reports for the account parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: items: $ref: '#/components/schemas/models.Report' type: array type: object description: Report List Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Get Reports tags: - Reports post: description: Create a new Report parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/models.Report' description: Report Request required: true x-originalParamName: report responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Create a Report tags: - Reports /report/{id}: delete: description: Delete a Report by ID parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The report ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Delete a Report tags: - Reports get: description: Get a Report by ID parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The report ID in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Get a Report tags: - Reports put: description: Update a Report's label or description parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The report ID in: path name: id required: true schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/models.Report' description: Report Request required: true x-originalParamName: report responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Update Report tags: - Reports /report/{id}/component: post: description: 'Add a new Report Component to the Report. If the component already exists, it will be updated. To create a new Component, you will need to specify the `type`, `name`, and `config` fields. Depending on the Component type, you may need to specify additional fields in the `config` object. For `size` components, you will need to specify the `segment_ids` field (`[]string`) in the `config` object. For `composition` components, you will need to specify the `segment_ids` (`[]string`) field and a `field` (`string`) from the user schema in the `config` object. For `overflow` components, you will need to specify the `segment_ids` (`[]string`) field in the `config` object. For `dataflow` components, you will need to specify the `segment_ids` (`[]string`) field in the `config` object, as well as `show_providers`, `show_streams`, and `show_destinations` (`boolean`) options.' parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The report ID in: path name: id required: true schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/models.Component' description: Component Request required: true x-originalParamName: report responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '201': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Create a new Report Component tags: - Reports /report/{id}/component/{componentid}: delete: description: Delete a Report Component by ID parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The report ID in: path name: id required: true schema: type: string - description: The component ID in: path name: componentid required: true schema: type: string responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Delete a Report Component tags: - Reports put: description: Update a Report Component by ID parameters: - description: The account ID. Defaults to the user's default account. in: query name: account_id schema: type: string - description: The report ID in: path name: id required: true schema: type: string - description: The component ID in: path name: componentid required: true schema: type: string requestBody: content: '*/*': schema: $ref: '#/components/schemas/models.Component' description: Component Request required: true x-originalParamName: report responses: '200': content: application/json: schema: allOf: - $ref: '#/components/schemas/models.ApiResponse' - properties: data: $ref: '#/components/schemas/models.Report' type: object description: Report Response '400': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Bad Request '404': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Not Found '500': content: application/json: schema: $ref: '#/components/schemas/models.ApiErrorResponse' description: Internal Server Error security: - ApiKeyAuth: [] summary: Update a Report component tags: - Reports components: schemas: models.Component: properties: config: description: The configuration for the component. The structure of this object is dependent on the type of component. See the top of the page for more information. description: description: An optional description of the component type: string id: type: string name: description: The name of the component to be used in the Report. type: string type: description: The type of component to be used in the Report. enum: - size - composition - overlap - dataflow type: string required: - name - type type: object models.ApiErrorResponse: properties: errors: description: Lytics API Errors items: $ref: '#/components/schemas/lioerrors.ApiV2ErrorOut' type: array request_id: type: string status: description: HTTP Status Code type: integer type: object lioerrors.ApiV2ErrorOut: properties: code: description: Lytics Error Code enum: - UNKNOWN-000 - BADREQ-001 - JOB-BADREQ-002 - NOTFOUND-003 - JOB-NOTFOUND-004 - WF-NOTFOUND-005 - AUTH-NOTFOUND-006 - AUTHTYPE-NOTFOUND-007 - AUTH-BADREQ-008 - TABLE-NOTFOUND-009 - SCHEMA-NOTFOUND-010 - SCHEMAVERSION-NOTFOUND-011 - ENTITY-NOTFOUND-012 - QUERY-NOTFOUND-013 - STREAM-NOTFOUND-014 - PROVIDER-BADREQ-015 - PROVIDER-NOTFOUND-016 - UNAUTHORIZED-017 - SCHEMA-INVALID-018 - INTERNAL-019 - ROUTERULE-NOTFOUND-020 - ACCOUNT-NOTFOUND-021 - JOB-FAULT-022 - USER-NOTFOUND-023 - USER-BADREQ-024 - JSON-BADREQ-025 - FORBIDDEN-026 type: string level: description: When the error was generated type: string message: description: A description of the error that occurred type: string timestamp: description: The time the error occurred format: date-time type: string type: object models.Report: properties: components: description: List of components that make up the report items: $ref: '#/components/schemas/models.Component' type: array description: description: An optional description of the Report type: string label: description: A label for the Report. This is how the report will be identified in the UI. type: string user_id: description: The user ID that created or updated the report type: string required: - label type: object models.ApiResponse: properties: _meta: additionalProperties: true description: Response Metadata type: object data: description: Response Payload type: object request_id: type: string status: description: HTTP Status Code type: integer type: object securitySchemes: ApiKeyAuth: in: header name: Authorization type: apiKey