Runs
Get a run's changes
Every row of a compared skill run that is new, changed, or removed since the run it was compared with.
GET
Get a run's changes
Works for a compared skill run: a scheduled run, or one started with
changes_since. Any other run returns 404.
You get the counts, as in changes on Get a run, and the rows themselves:
new_rows: every new row.changed_rows: every changed row, as{"row": {...}, "fields": {"price": {"before": 120, "after": 98}}}. When the run has awatchlist, only those fields count.removed_rows: rows that were in the earlier run and not in this one, up to 200.removed_truncatedistruewhen there were more.
since_run_id is the run it was compared with. first_run is true for the first run, where every row is new. Rows are matched on key_fields; key_automatic says whether they were chosen automatically or come from the skill’s row_key. How that works is in Only what’s new.
Needs runs:read. MCP tool: get_run with changes: true.Authorizations
API key with the vd_sk_ prefix, as Authorization: Bearer vd_sk_.... Create keys in Settings → API Keys.
Path Parameters
Response
Successful Response
GET /v1/runs/{run_id}/changes: every row that is new, changed or gone since the run it
was compared with. Rows are matched on key_fields; a changed row carries
fields: {name: {before, after}} (only watch fields count, when set).

