POST /api/ingest-export
Ingests a conversation data export (JSON) for a given connection. The export file is normalized into individual conversations with a consistent { role, content, timestamp } message format and stored in the Verso database.
Currently supports ChatGPT export format (DAG → linear message list normalization).
Request
Headers
Body
Processing
The endpoint performs a diff/upsert for each conversation:- Normalize — raw export data is converted to
NormalizedConversation(linear message list) - Check existing — looks up by
(connection_id, external_id) - Insert — if no existing record
- Update — if existing record has an older
update_time - Skip — if existing record is the same or newer
last_ok_at is updated. If any conversations were inserted or updated, a data.imported webhook is enqueued.