Overview
Send data directly to the Moda ingest API. This supports LLM conversations across any channel:- Standard chat completions (OpenAI, Anthropic, etc.)
- Chat/messaging platforms (Slack, Discord, etc.)
- Email conversations
- Voice and video call transcripts
- Tool/function calls within conversations
- Custom integrations and languages without Moda SDK support
Endpoint
Authentication
Include your Moda API key in theAuthorization header:
Request format
You can set theenvironment at the request level to apply to all events:
Event fields
Required fields
Optional fields
Content blocks
For conversations with tool use, extended thinking, or images, include structured content blocks:
Example with tool use:
Channel-specific event formats
LLM conversations happen across many channels beyond standard chat completions. Use themessageType field to send conversations from messaging platforms, email, voice calls, and to log tool invocations. You can mix these with standard events in the same request.
Channel messages
LLM-powered conversations in chat platforms or messaging systems.Tool calls
Tool and function invocations made by the LLM during a conversation, with full request and response data.Emails
LLM-powered conversations happening over email, with threading support viaconversationId and optional inReplyTo for referencing specific parent emails.
The
conversationId field groups emails into conversations, consistent with all other event types.
Use inReplyTo optionally to reference specific parent emails within a conversation (e.g. when there are multiple email threads within the same conversation).Call transcripts
LLM-powered conversations happening over phone or video calls, with full speaker turn transcripts.
Transcript entry format:
Call transcripts are stored as a single record containing the full transcript.
The complete transcript is searchable in the Moda dashboard,
and the structured speaker turns are preserved for detailed analysis.
Mixed batch example
You can mix standard events and channel-specific events in the same request:Example
Response
Success response
messageType), the response includes a details breakdown: