openapi: 3.2.0 info: title: Happyrobot Public Messages API description: Public API endpoints for Happyrobot version: 0.1.1 servers: - url: https://platform.happyrobot.ai/api/v2 security: - bearerAuth: [] tags: - name: Messages paths: /messages/{message_id}/flags: get: summary: List message flags tags: - Messages description: Returns paginated flags (issues) for a specific message, ordered by creation date. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false - schema: default: 50 type: integer minimum: 1 maximum: 100 in: query name: page_size required: false - schema: default: desc type: string enum: - asc - desc in: query name: sort required: false - schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ in: path name: message_id required: true security: - bearerAuth: [] responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ status: type: string priority: type: string type: type: string correction: type: - string - 'null' correction_reason: type: - string - 'null' created_at: type: string updated_at: type: string required: - id - status - priority - type - correction - correction_reason - created_at - updated_at additionalProperties: false pagination: type: object properties: page: type: integer minimum: -9007199254740991 maximum: 9007199254740991 page_size: type: integer minimum: -9007199254740991 maximum: 9007199254740991 total_pages: type: integer minimum: -9007199254740991 maximum: 9007199254740991 total_records: type: integer minimum: -9007199254740991 maximum: 9007199254740991 has_next_page: type: boolean has_previous_page: type: boolean required: - page - page_size - total_pages - total_records - has_next_page - has_previous_page additionalProperties: false required: - data - pagination additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string statusCode: type: integer minimum: -9007199254740991 maximum: 9007199254740991 details: {} required: - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string statusCode: type: integer minimum: -9007199254740991 maximum: 9007199254740991 details: {} required: - error additionalProperties: false post: summary: Create message flag tags: - Messages description: Creates a new flag (issue) on a specific message. The flag is linked to the message and its parent run. requestBody: content: application/json: schema: type: object properties: type: default: message description: The type of issue to create type: string enum: - transcriber - message - tool_call - run - interruption priority: default: medium description: Priority level of the flag type: string enum: - low - medium - high correction: description: Correction text explaining what went wrong type: string correction_reason: description: Reason or category for the correction type: string parameters: - schema: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ in: path name: message_id required: true security: - bearerAuth: [] responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string format: uuid pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$ status: type: string priority: type: string type: type: string correction: type: - string - 'null' correction_reason: type: - string - 'null' created_at: type: string updated_at: type: string required: - id - status - priority - type - correction - correction_reason - created_at - updated_at additionalProperties: false '401': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string statusCode: type: integer minimum: -9007199254740991 maximum: 9007199254740991 details: {} required: - error additionalProperties: false '404': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string statusCode: type: integer minimum: -9007199254740991 maximum: 9007199254740991 details: {} required: - error additionalProperties: false '500': description: Default Response content: application/json: schema: type: object properties: error: type: string message: type: string statusCode: type: integer minimum: -9007199254740991 maximum: 9007199254740991 details: {} required: - error additionalProperties: false components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: Opaque