Submit records.
The request body accepts two formats:
records key containing an arrayFor high-volume sends, use application/x-ndjson (one JSON object per line).
Attachments referenced by vendor_url are fetched automatically after the batch is accepted.
Download progress is available on the batch status endpoint.
Documentation Index
Fetch the complete documentation index at: https://docs.evermuse.com/llms.txt
Use this file to discover all available pages before exploring further.
Your API key, sent as the x-api-key header.
Create one in Settings > API Keys with api:write permission.
Format: em_sk_...
Optional key to prevent duplicate submissions. If a request with the same key and identical body has already been accepted, you'll get back the original response without the data being processed again. Recommended when retrying failed requests.
256Optional hint that describes the primary content format of the records. This does not affect validation but helps optimize how your data is processed.
text, audio, video, file The type of data you're sending. All records in a single batch must share the same type.
email_thread — A full email conversation chain (multiple messages grouped together).email — A single email message.meeting_notes — Notes, summaries, or transcripts captured during or after a meeting.call — An audio or video call record (recording url will be provided by the caller in the attachment).call_transcription — A verbatim transcription of a phone or video call.conversation — A multi-turn conversation from chat platforms (e.g. Slack, Intercom, Drift, support tickets).message — A single standalone message (e.g. SMS, or in-app feedback).email_thread, email, meeting_notes, call, call_transcription, conversation, message Schema version. Use "1.0.0".
"1.0.0"
When the original event occurred, as an ISO-8601 UTC timestamp. Milliseconds are accepted but truncated to second precision.
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$"2026-02-24T12:34:56Z"
One or more IDs from your source system. Must contain at least one entry.
Used to prevent duplicates — records with the same _type, _vendor_ids, and _event_at
are recognized as the same record and won't be processed twice.
{ "message_id": "msg-20260224-001" }Classifies how this record should be treated during analysis.
evidence — actual customer conversations, meeting notes, support tickets, etc.guidance — internal product team conversations, OKR documents, company goalscontext — supplementary material used for context but not as a source of customer evidenceevidence, guidance, context The Evermuse product ID to route records to.
Found in Settings > Projects > Actions > Copy in the Evermuse dashboard.
All records in a batch must share the same _product_id.
128One or more Evermuse project IDs to route records to. Found in Settings > Projects > Actions > Copy in the Evermuse dashboard.
1128Your data. Include all relevant fields from your source system. This is stored exactly as you send it.
Optional ID that groups related records into a thread (e.g., an email chain, a multi-message chat, or a series of related calls). Use the thread or conversation ID from your source system.
512People involved in the event. Used for attribution and filtering in your Evermuse dashboard.
5000Files associated with this record (recordings, documents, images, etc.).
Provide a vendor_url for files hosted elsewhere — they will be fetched automatically.
Alternatively, use upload_intent_id to reference a file you've already uploaded.
10Free-form labels for categorization and filtering (e.g., "enterprise", "product-feedback", "q1-2026").
20064Optional metadata about personal information in this record. Providing this helps Evermuse handle your data with the right privacy safeguards.
Accepted. Your records have been received and are being processed.
Use the returned batchId with GET /api/v1/ingest/batches/{batchId} to check progress.
Unique identifier for this batch. Use it with GET /api/v1/ingest/batches/{batchId} to check status.
128Number of records that passed validation and were accepted.
x >= 0Number of records that failed validation and were rejected.
x >= 0Total number of errors across all rejected records.
May be higher than the errors array length since only the first 20 are included.
x >= 0Up to 20 errors. The index field refers to the record's
position in the batch you sent (starting from 0).
20