Data API
File loads, batches, folders, feeds, schedules, the start of day and data quality.
Objects
- Batch: one file loaded into one data set. Status:
staged → applied → undone, orheld(waits for a person),rejected,discarded. Its rows are the diff: new, changed (old → new), unchanged and rejected (with codes). - Bundle: a folder (.zip) of feed files, each its own batch, applied in start-of-day order.
- Feed, feed run (one business date's file), schedule, start of day (the chain of steps), data-quality issue.
Load a file
curl -X POST "https://vestoris.com/api/v1/data/prices?filename=prices.csv&apply=auto" \
-H "Authorization: Bearer $VESTORIS_TOKEN" -H "Content-Type: application/octet-stream" \
--data-binary @prices.csvThe body is the file itself (CSV, TXT, XLSX or Vestoris XML; gzip or zip). The token needs data:load:<data set> for that data set. The answer is the batch: 201 staged or applied, 422 rejected (the batch with its row codes is in the body). Without apply=auto a person reviews the diff and applies it (POST /batches/{id}/apply), or you apply it yourself with data:write. File uploads are deduplicated by content, so they need no Idempotency-Key.
Typical sequence
- Load:
POST /data/{dataset}(or push to a feed:POST /feeds/{id}/files, or a folder:POST /feeds/bundles). - Check:
GET /batches/{id}andGET /batches/{id}/rows?status=rejected. - Apply, discard or undo:
POST /batches/{id}/apply,/discard,/undo. - Follow the morning:
GET /start-of-day,GET /feeds/runs, webhooksfeed.run.updatedandsod.status.
The formats and error codes are in the Data Feed Reference.
Endpoints
| Call | What it does | Scope |
|---|---|---|
POST/data/{dataset} | Load a file (CSV, TXT, XLSX or Vestoris XML) into a data set; the body is the file | data:load:<data set> |
GET/batches | Load history | data:read |
GET/batches/{id} | A batch's status and counts | data:read |
GET/batches/{id}/rows | A batch's rows: the diff and the rejected rows with codes | data:read |
POST/batches/{id}/apply | Apply a staged batch | data:write |
POST/batches/{id}/undo | Undo an applied batch (unless later trades depend on it) | data:write |
POST/batches/{id}/discard | Discard a staged batch | data:write |
POST/feeds/bundles | Load a folder of feed files (.zip); each file needs its data:load scope | data:load:<data set> |
GET/feeds/bundles/{id} | A folder's status, per file | data:read |
POST/feeds/{id}/files | Push a file to an HTTPS-push feed (the feed's data:load scope) | data:load:<data set> |
GET/feeds | Feeds and their schedule | data:read |
GET/feeds/runs | Feed runs of a business date | data:read |
POST/feeds/runs/{id}/review | Apply or reject a held feed file | data:write |
GET/schedules | Scheduled jobs and their last runs | data:read |
GET/start-of-day | The start-of-day chain of a business date | data:read |
GET/data-quality/issues | Data quality issues | data:read |