DATA SUBSCRIPTIONS

A monthly feed of one of our house datasets: you receive only the records that are new since your previous delivery, as CSV or JSON, by API key or in the dashboard. Billed monthly from your account balance. First feed: used-car listings with VIN from Kavak Mexico.
Only new records, each once
CSV + JSON same file on every download
Daily delivery when new records exist
LIVE

Our team sets the subscription up on your account after you approve a sample and a rate: write to maya@proxies.sx or open Data Works in the dashboard. There is no self-serve checkout. Then any API key of that account reads the feed (no extra scope).

Find it | Receive records | Fields | Billing | Troubleshooting

Canonical machine contract: /data-works/subscriptions/skill.md. If this page disagrees with the skill file, the skill file wins; if the skill file disagrees with the live API, the live API wins. Last verified: 2026-10-29, end to end on the live API.

1. FIND YOUR SUBSCRIPTION

curl -s https://api.proxies.sx/v1/data-works/flows -H "X-API-Key: psx_YOUR_KEY"
# -> [ { "_id": "<flowId>", "name": "Kavak Mexico VIN feed", "status": "active",
#        "health": { "lastSuccessAt": "2026-10-29T18:59:04.361Z", "recordsLastRun": 273, "lastError": null },
#        "subscription": { "priceUsd": 350, "includedRecords": 5000, "overagePerRecordUsd": 0.05, "requireFields": ["vin"],
#          "periodStart": "2026-10-28T19:00:00.000Z", "periodEnd": "2026-11-28T19:00:00.000Z", "pausedReason": null, "canceledAt": null } } ]

The entry whose subscription is not null is your feed; keep its _id. health.lastSuccessAt is your last delivery and health.recordsLastRun its size; periodEnd is the next monthly charge.


2. RECEIVE RECORDS

We cut a delivery automatically once a day when new records exist. To cut one now:

curl -s -X POST https://api.proxies.sx/v1/data-works/flows/<flowId>/runs -H "X-API-Key: psx_YOUR_KEY"
# -> 201 { "_id": "<runId>", "trigger": "delivery", "status": "done", "manifest": { "rows": 273, ... } }
# -> 409 {"message":"No new records since the last delivery."}   (nothing is created)

curl -s -o latest.csv  https://api.proxies.sx/v1/data-works/flows/<flowId>/runs/latest/dataset.csv  -H "X-API-Key: psx_YOUR_KEY"
curl -s -o latest.json https://api.proxies.sx/v1/data-works/flows/<flowId>/runs/latest/dataset.json -H "X-API-Key: psx_YOUR_KEY"
curl -s https://api.proxies.sx/v1/data-works/flows/<flowId>/runs -H "X-API-Key: psx_YOUR_KEY"   # last 50 deliveries, newest first

Daily job for an agent: list runs, download every delivery whose _id you have not stored yet (oldest first, runs/<runId>/dataset.csv), store the _id. A download returns the same bytes every time, so retries are safe.


3. FIELDS (USED-CAR FEEDS)

columntypemeaning
sourcestringmarketplace key, e.g. kavak
listing_idstringthe marketplace's listing id
make, model, trimstringas listed
yearnumbermodel year
mileage_kmnumberodometer, km
price, currencynumber, stringasking price at delivery, e.g. MXN
price_changenullempty in subscription deliveries (each record is delivered once, when it first becomes ready)
seller_typestringdealer or private
dealer_namestringa dealer's business name; empty for private sellers
city, statestringlocation as listed (state may be empty)
vinstring17-character VIN (always present on a VIN feed)
statusstringactive or removed at delivery time
first_seen, last_seenISO 8601when our collector first and last saw the listing
removed_atISO 8601 or nullwhen the listing disappeared, if before delivery
listing_urlstring or nullpublic listing page, when known
image_urlsstringspace-separated image URLs
transmission, fuel_type, body_typestring or nullas listed

A subscription may deliver a subset of columns (subscription.fields, empty = all) and only records where subscription.requireFields are present.


4. BILLING


5. TROUBLESHOOTING (STATUS → NEXT STEP)

HTTPmessagenext step
201(delivery object)download runs/<_id>/dataset.csv or .json
409No new records since the last delivery.normal: nothing new since your last delivery. Try after the next collector run (Kavak: every 4 h, plus ~30 min) or rely on the daily delivery; never poll faster than every 15 min
409A delivery is already being prepared.another request or the daily job is cutting one: wait 1-2 min, then list runs
409This subscription has ended.earlier deliveries stay downloadable; contact maya@proxies.sx to restart
409This is a data subscription: contact support to change or end it.pause / resume / delete are support-only for subscriptions
402subscription_inactive: paused until the monthly charge is paida human tops up (billing, /quickstart/topup.md); deliveries resume within 15 min, nothing missed
402subscription_inactive: renewingthe new period is being charged: retry in 15 min
402records_used_upthis period's included records are delivered: wait for periodEnd, or top up when the plan has an overage rate
404Flow not found.wrong <flowId> or a key of another account: re-list GET /v1/data-works/flows with a key of the subscribed account
404Run not found.no delivery yet (or wrong <runId>): POST /runs or wait for the daily delivery
400Invalid data formatthe id is not a 24-character hex id: copy _id exactly
401Authentication required... / Invalid or inactive API keysend X-API-Key: psx_...; a human creates keys at client.proxies.sx/account
503Data subscriptions are not enabled.switched off on our side; contact maya@proxies.sx

Empty or short file? A 404 JSON body saved as latest.csv means there is no delivery yet: check the status first (curl -f or -w '%{http_code}'). A VIN feed skips listings without a VIN and relisted cars already delivered. A record cut too soon after a collector run arrives in the next delivery; nothing is lost.

Support: maya@proxies.sx · t.me/proxies_sx · dashboard client.proxies.sx/data-works. Every other error code: /errors.md.