Backfill history
Upload an export, so a score has history behind it from the first day.
Send us the conversations you already have. This is a file upload, not a JSON body.
The request
bash
curl -X POST "https://app.evidova.com/ingest/v1/import" \
-H "authorization: Bearer ak_live_..." \
-F "file=@export.jsonl" \
-F "adapter=generic"The form fields
| file | Required. The export itself. One JSON document, or one JSON record per line |
|---|---|
| adapter | Required. Which contract to read the file with. Use generic for a file you built yourself |
| client_id | Optional. Which client the history belongs to |
A key limited to one client may name only that client. A key with no limit may name any client of the workspace.
How it differs from sending events
- The file is stored first and read by a background job, so the answer comes back before any of it is parsed.
- The ceiling is 200 MiB per file, against 8 MiB for a live batch.
- A line we cannot read is skipped and counted, so one bad record does not cost you the export. A file where no line parses fails outright, because that is the wrong file rather than a partial one.
What we send back
json
{ "status": "accepted", "import_id": "...", "object_key": "..." }| 202 | Stored and queued. |
|---|---|
| 401 | The key is missing, revoked, or does not carry the ingest scope. |
| 403 | The key is limited to a client other than the one named. |
| 404 | The client named is not one of this workspace's. |
| 413 | The file is above 200 MiB. Split it. |
| 422 | A form field is missing, or the client id is not an id. |
Read next
- Connections · What a connection carries, why an API key cannot create one, and the two settings that decide whether it gets scored.
- Event payload reference · The event shape to send: required fields, accepted fields, and what happens to the rest.
- Conversations · List conversations, and open one with its turns, findings and scores.