Insforge Messages API
Inspect realtime message history and delivery stats.
Inspect realtime message history and delivery stats.
openapi: 3.0.3
info:
title: Insforge AI Admin Messages API
version: 1.0.0
description: Model Gateway helper APIs for OpenRouter key provisioning, model discovery, and deprecated compatibility proxy routes
tags:
- name: Messages
description: Inspect realtime message history and delivery stats.
paths:
/api/realtime/messages:
get:
summary: List Messages
description: Retrieve message history with optional filters
tags:
- Messages
security:
- bearerAuth: []
- apiKey: []
parameters:
- name: channelId
in: query
required: false
schema:
type: string
format: uuid
description: Filter messages by channel ID
example: 550e8400-e29b-41d4-a716-446655440000
- name: eventName
in: query
required: false
schema:
type: string
description: Filter messages by event name
example: order.created
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 1000
default: 100
description: Maximum number of messages to return
- name: offset
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
description: Number of messages to skip
responses:
'200':
description: List of messages
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Message'
example:
- id: 660e8400-e29b-41d4-a716-446655440000
eventName: order.created
channelId: 550e8400-e29b-41d4-a716-446655440000
channelName: order:123
payload:
orderId: '123'
status: pending
senderType: user
senderId: 770e8400-e29b-41d4-a716-446655440000
wsAudienceCount: 5
whAudienceCount: 1
whDeliveredCount: 1
createdAt: '2024-01-15T10:30:00Z'
'400':
description: Invalid input
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: INVALID_INPUT
message: 'channelId: Invalid uuid'
statusCode: 400
delete:
summary: Clear Messages
description: Permanently delete all stored realtime messages
tags:
- Messages
security:
- bearerAuth: []
- apiKey: []
responses:
'200':
description: Messages cleared
content:
application/json:
schema:
$ref: '#/components/schemas/ClearMessagesResponse'
example:
deleted: 42
/api/realtime/messages/stats:
get:
summary: Get Message Statistics
description: Retrieve aggregated statistics about messages
tags:
- Messages
security:
- bearerAuth: []
- apiKey: []
parameters:
- name: channelId
in: query
required: false
schema:
type: string
format: uuid
description: Filter stats by channel ID
example: 550e8400-e29b-41d4-a716-446655440000
- name: since
in: query
required: false
schema:
type: string
format: date-time
description: Filter stats since this timestamp
example: '2024-01-01T00:00:00Z'
responses:
'200':
description: Message statistics
content:
application/json:
schema:
$ref: '#/components/schemas/MessageStats'
example:
totalMessages: 1250
whDeliveryRate: 0.98
topEvents:
- eventName: order.created
count: 450
- eventName: order.updated
count: 380
- eventName: order.completed
count: 220
retentionDays: null
'400':
description: Invalid input
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
error: INVALID_INPUT
message: 'since: Invalid datetime'
statusCode: 400
components:
schemas:
ErrorResponse:
type: object
required:
- error
- message
- statusCode
properties:
error:
type: string
description: Error code for programmatic handling
example: INVALID_INPUT
message:
type: string
description: Human-readable error message
example: Invalid request
statusCode:
type: integer
description: HTTP status code
example: 400
nextActions:
type: string
description: Suggested action to resolve the error
example: Check your request parameters
ClearMessagesResponse:
type: object
required:
- deleted
properties:
deleted:
type: integer
minimum: 0
description: Number of realtime messages deleted
example: 42
Message:
type: object
required:
- id
- eventName
- channelName
- payload
- senderType
- wsAudienceCount
- whAudienceCount
- whDeliveredCount
- createdAt
properties:
id:
type: string
format: uuid
description: Unique identifier for the message
example: 660e8400-e29b-41d4-a716-446655440000
eventName:
type: string
minLength: 1
description: Name of the event
example: order.created
channelId:
type: string
format: uuid
nullable: true
description: ID of the channel this message belongs to
example: 550e8400-e29b-41d4-a716-446655440000
channelName:
type: string
minLength: 1
description: Resolved channel name (instance of the pattern)
example: order:123
payload:
type: object
additionalProperties: true
description: Message payload data
example:
orderId: '123'
status: pending
senderType:
type: string
enum:
- system
- user
description: Type of sender that published the message
example: user
senderId:
type: string
format: uuid
nullable: true
description: ID of the user who sent the message (null for system messages)
example: 770e8400-e29b-41d4-a716-446655440000
wsAudienceCount:
type: integer
minimum: 0
description: Number of WebSocket clients who received the message
example: 5
whAudienceCount:
type: integer
minimum: 0
description: Number of webhooks that should receive the message
example: 1
whDeliveredCount:
type: integer
minimum: 0
description: Number of webhooks that successfully received the message
example: 1
createdAt:
type: string
format: date-time
description: Timestamp when the message was created
example: '2024-01-15T10:30:00Z'
MessageStats:
type: object
required:
- totalMessages
- whDeliveryRate
- topEvents
- retentionDays
properties:
totalMessages:
type: integer
minimum: 0
description: Total number of messages
example: 1250
whDeliveryRate:
type: number
minimum: 0
maximum: 1
description: Webhook delivery success rate (0-1)
example: 0.98
topEvents:
type: array
description: Most frequent event types
items:
type: object
required:
- eventName
- count
properties:
eventName:
type: string
description: Name of the event
example: order.created
count:
type: integer
minimum: 0
description: Number of occurrences
example: 450
retentionDays:
type: integer
nullable: true
minimum: 1
description: Number of days messages are retained. Null means messages are kept indefinitely.
example: null
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT