File ingestion
Post your records to the source endpoint; Simetrik batches them into a file, turns the JSON into CSV and feeds reconciliation.
This is the flow for systems that produce data continuously. You post each record as it happens — one small HTTP call — and Simetrik takes care of grouping, converting and delivering.
How it works
Create the source once
POST /api/v2/sources declares the name and the column schema. You get back the source id.
Post your records
POST /api/v2/sources/{id}/feed-source, one JSON object per call, as often as your system produces them. Each call gets an immediate acceptance response.
Records are grouped into a file
Accepted records accumulate per source and are closed into a batch file when the window fills up — by time or by size. This is why ingestion is near-real-time rather than instant.
JSON becomes CSV
For each record in the file, Simetrik reads the value every column's mapping points at and writes it in position order under the column name.
The file is delivered
The CSV lands in the source and reconciliation is told there's new data. If you registered a notification_config, your endpoint is called along the way — including on failures. See Status notifications.
From records to columns
Given a source that maps id, amount and payment.method, and these three records posted over a few minutes:
{"id": "a1", "amount": 1500, "payment": {"method": "card"}}
{"id": "a2", "amount": 2400, "payment": {"method": "transfer"}}
{"id": "a3", "amount": 900, "payment": {"method": "card"}}They're closed into one file, which becomes one CSV:
id,amount,method
a1,1500,card
a2,2400,transfer
a3,900,cardEvery record also carries the source_id and the sk-int-id Simetrik adds on the way in. They only reach the CSV if you map a column to them.
What to expect
- The unit of processing is the file, not the record. Lifecycle states and status notifications describe batches, so a notification covers every record that landed in that batch.
- Column order is
position, not the order you declared the columns in. - A mapping that resolves to nothing produces an empty cell, never an error.
- You don't name the file. It's generated when the batch closes, which means you can't correlate a notification back to one specific record — correlate on the source and the time window instead.