Insforge Messages API
Inspect realtime message history and delivery stats.
Inspect realtime message history and delivery stats.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/insforge-messages-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
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
servers:
- url: https://api.insforge.dev
description: Base URL declared by the provider in apis.yml (roadmap#122).
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:
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
- 'null'
format: uuid
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
- 'null'
format: uuid
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'
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
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
- 'null'
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