Read results
Cursor-paged, and readable while the batch is still processing.
https://api.easydata.win/v1/batches/{id}/resultsEntries as they land. You do not have to wait for a batch to finish: this returns whatever has been delivered so far, which is what makes a 50,000-row batch consumable from the first second.
Walk meta.nextCursor until meta.hasMore is false. The cursor is monotonic and stable, so walking it to exhaustion yields every entry exactly once - no duplicates, no gaps - even across a batch that is still filling in behind you.
Order is never guaranteed. Every entry echoes item_index and your original input, so you join back to your own rows without relying on one.
Request #
| Field | Type | Notes |
|---|---|---|
idrequired | path | The batch id. |
cursor | query | From meta.nextCursor. Omit for the first page. |
limit | query | Default 100, maximum 500. |
format | query | json (default), jsonl or csv. jsonl streams one entry per line and carries the cursor in an X-Next-Cursor header. csv is the flat view: identity, outcome and cost as columns, with the record left whole in a JSON cell. |
Call it #
curl -X GET "https://api.easydata.win/v1/batches/{id}/results" \
-H "X-API-Key: $API_KEY"Response #
{
"data": {
"batch_id": "afec9131-080b-4b96-b3bb-726249e4bbf8",
"status": "processing",
"entries": [
{
"item_index": 0,
"input": "https://linkedin.com/in/satyanadella",
"status": "succeeded",
"credits_used": 1,
"data": { "...": "Profile" },
"created_at": "2026-09-01T10:00:04Z"
},
{
"item_index": 1,
"input": { "urn": "ACoAAA8BYqEBCGLg" },
"status": "failed",
"credits_used": 0,
"error": { "type": "unprocessable_target", "message": "Profile is private, deleted or unreachable." },
"created_at": "2026-09-01T10:00:05Z"
}
]
},
"meta": {
"requestId": "req_8f2ka91x",
"nextCursor": "eyJzZXEiOjJ9",
"hasMore": true,
"recommendedPollMs": 2000
}
}A failed entry always carries credits_used: 0. That is enforced by a database constraint, not by convention - it is the billing contract, so it is not left to a code path remembering.
Errors #
| Status | Type | When |
|---|---|---|
| 401 | invalid_api_key | Missing, malformed, revoked or expired key. Never metered. |
| 404 | not_found | No such batch. |
Every failure uses the same envelope, and none of them is metered - see Errors.