openapi: 3.1.0 info: title: Soda Cloud REST Attributes Checks API description: The Soda Cloud REST API enables programmatic access to trigger data quality scans, retrieve check results, update incident status, manage datasets, datasources, contracts, runners, secrets, notification rules, and integrate data quality workflows into CI/CD pipelines. Supports EU and US cloud regions. version: 1.0.0 contact: name: Soda Support url: https://soda.io servers: - url: https://cloud.soda.io description: EU Cloud - url: https://cloud.us.soda.io description: US Cloud security: - basicAuth: [] tags: - name: Checks description: Data quality check results and management paths: /api/v1/checks: get: summary: List checks description: Retrieve paginated check results. Users see only checks for datasets with View dataset permissions; Admins see all. operationId: listChecks tags: - Checks parameters: - name: size in: query schema: type: integer minimum: 10 maximum: 1000 default: 10 description: Number of results per page - name: page in: query schema: type: integer default: 0 description: Page number (0-indexed) - name: datasetId in: query schema: type: string description: Filter by specific dataset ID - name: checkIds in: query schema: type: string description: Comma-separated list of check IDs (max 1000, cannot combine with other filters) responses: '200': description: Paginated list of checks content: application/json: schema: $ref: '#/components/schemas/PublicApiChecksResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /api/v1/checks/{checkId}: delete: summary: Delete a check description: Deletes a check by ID. Requires Manage checks permission; Admins can delete all checks. operationId: deleteCheck tags: - Checks parameters: - name: checkId in: path required: true schema: type: string description: Identifier of the check to delete responses: '204': description: Check deleted successfully '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/NotFound' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' components: schemas: PaginatedResponse: type: object properties: content: type: array items: type: object first: type: boolean last: type: boolean number: type: integer size: type: integer totalElements: type: integer totalPages: type: integer PublicApiChecksResponse: allOf: - $ref: '#/components/schemas/PaginatedResponse' - type: object properties: content: type: array items: $ref: '#/components/schemas/CheckContentDTO' ErrorResponse: type: object properties: code: type: string message: type: string CheckContentDTO: type: object properties: id: type: string name: type: string datasetId: type: string datasetName: type: string incidentId: type: string evaluationStatus: type: string enum: - pass - fail - warn - error - unknown cloudUrl: type: string format: uri responses: Unauthorized: description: Unauthorized - authentication required content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' BadRequest: description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' NotFound: description: Resource not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' TooManyRequests: description: Rate limit exceeded content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' Forbidden: description: Forbidden - insufficient permissions content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' InternalServerError: description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' securitySchemes: basicAuth: type: http scheme: basic description: 'Base64-encoded API key ID and secret: base64(api_key_id:api_key_secret)'