spicrawl-com · Schema
BatchResultLine
One line of the JSONL results stream — one finished item. Same field names as the worker's stitched result file.
CompanyWeb ScrapingData ExtractionAPIAutomationAI
Properties
| Name | Type | Description |
|---|---|---|
| seq | integer | 0-based position in submission order. Stable; use it to resume and for GET .../tasks/{seq}/content. |
| external_id | string | The `external_id` you supplied for this item. Absent when none. |
| url | string | The target URL as submitted. |
| status | object | The item's terminal status. Only `succeeded` carries a body and credits; for `failed`, read `error`. |
| attempts | integer | How many times this item was tried (not reset by retry). |
| http_status | integer | The TARGET site's HTTP status, not the API's. Absent when no response was received. A 404 here is a successful scrape of a missing page. |
| request_id | string | Id of the underlying request; look it up in request history for diagnostics. |
| credits_micro | integer | Micro-credits charged for this item (1 credit = 1,000,000). Always 0 unless `status` is `succeeded`; billable target statuses are 200, 404 and 410. |
| bytes | integer | Response size recorded for this item. |
| duration_ms | integer | Wall-clock time spent on the item's final attempt, in ms. 0 when not recorded. |
| warnings | array | Warning codes for this item, e.g. `EMPTY_RENDER` (the page rendered empty, so the item was charged 0 credits). Omitted when there are none. |
| result_ref | string | Storage pointer for a per-item payload. Currently never populated (the worker writes one file per job); ignore it. |
| result | object | The payload inline. Absent while the job is still running (no stitched file yet), when the deployment has no object storage, or when this item has no stored payload (typically non-succeeded items). |
| result_url | string | Pre-signed download link (valid 2 h) for this item's payload. Only present when `result_ref` is, so currently absent. |
| error | object | Present when the item failed and a machine code was recorded. Absent on success. |
| finished_at | string | When the item reached its terminal status. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/spicrawl-com/json-schema/spicrawl-com-batch-result-line-schema.json",
"title": "BatchResultLine",
"description": "One line of the JSONL results stream — one finished item. Same field names as the worker's stitched result file.",
"x-generated": "2026-10-31",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/spicrawl-com-openapi.yaml#/components/schemas/BatchResultLine",
"type": "object",
"required": [
"seq",
"url",
"status",
"attempts",
"credits_micro",
"bytes",
"duration_ms"
],
"properties": {
"seq": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "0-based position in submission order. Stable; use it to resume and for GET .../tasks/{seq}/content."
},
"external_id": {
"type": "string",
"description": "The `external_id` you supplied for this item. Absent when none."
},
"url": {
"type": "string",
"description": "The target URL as submitted."
},
"status": {
"$ref": "#/$defs/BatchItemStatus",
"description": "The item's terminal status. Only `succeeded` carries a body and credits; for `failed`, read `error`."
},
"attempts": {
"type": "integer",
"minimum": 0,
"description": "How many times this item was tried (not reset by retry)."
},
"http_status": {
"type": "integer",
"description": "The TARGET site's HTTP status, not the API's. Absent when no response was received. A 404 here is a successful scrape of a missing page."
},
"request_id": {
"type": "string",
"description": "Id of the underlying request; look it up in request history for diagnostics."
},
"credits_micro": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "Micro-credits charged for this item (1 credit = 1,000,000). Always 0 unless `status` is `succeeded`; billable target statuses are 200, 404 and 410."
},
"bytes": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "Response size recorded for this item."
},
"duration_ms": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "Wall-clock time spent on the item's final attempt, in ms. 0 when not recorded."
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Warning codes for this item, e.g. `EMPTY_RENDER` (the page rendered empty, so the item was charged 0 credits). Omitted when there are none."
},
"result_ref": {
"type": "string",
"description": "Storage pointer for a per-item payload. Currently never populated (the worker writes one file per job); ignore it."
},
"result": {
"$ref": "#/$defs/BatchResultBody",
"description": "The payload inline. Absent while the job is still running (no stitched file yet), when the deployment has no object storage, or when this item has no stored payload (typically non-succeeded items)."
},
"result_url": {
"type": "string",
"format": "uri",
"description": "Pre-signed download link (valid 2 h) for this item's payload. Only present when `result_ref` is, so currently absent."
},
"error": {
"$ref": "#/$defs/BatchResultError",
"description": "Present when the item failed and a machine code was recorded. Absent on success."
},
"finished_at": {
"type": "string",
"format": "date-time",
"description": "When the item reached its terminal status."
}
},
"$defs": {
"BatchItemStatus": {
"type": "string",
"enum": [
"succeeded",
"failed",
"cancelled",
"skipped"
],
"description": "Terminal item status on a result line. `succeeded` is the only status that carries credits or a body. Items still `queued`/`running` are never returned."
},
"BatchResultBody": {
"type": "object",
"description": "The item's payload read from the job's stitched result file. Bounded: 524,288 bytes per item, 2,097,152 bytes per\npage, spent in `seq` order. Exactly one of these applies: full `content`; `truncated` (a prefix); `omitted`\n(no content, page budget spent); `unavailable` (the file could not be read).\n",
"required": [
"bytes"
],
"properties": {
"content": {
"type": "string",
"description": "The document as plain text, in the item's `response_format` (the HTML, markdown or text itself). It is the line's ordinary JSON string, already decoded by your JSON parser once, so do not decode it again. For `response_format` `json` it is the JSON document as a string (the body as retrieved), which you parse to get the object. May be a byte prefix when `truncated`."
},
"bytes": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "Full size of the payload in bytes, before any truncation; equal to the length of `content` unless `truncated`. 0 when `unavailable`."
},
"truncated": {
"type": "boolean",
"description": "True when `content` is only a prefix: the payload exceeded 512 KiB, or the page's remaining 2 MiB budget. Request this seq alone (cursor just before it, limit=1) to get up to 512 KiB."
},
"omitted": {
"type": "boolean",
"description": "True when no content was included because the page's 2 MiB budget was already spent. Request a smaller `limit`, or resume with a cursor just before this seq."
},
"unavailable": {
"type": "string",
"description": "Why the result file could not be read at all (the same reason is set on every line of the page). Report it or retry later; not a problem with the item itself."
}
}
},
"BatchResultError": {
"type": "object",
"description": "Why an item did not succeed. Same code catalogue as /v1/scrape errors.",
"required": [
"code",
"retryable"
],
"properties": {
"code": {
"type": "string",
"description": "Stable machine code, e.g. ERR::UPSTREAM::TIMEOUT or ERR::PROXY::EXHAUSTED. Switch on this, not on text."
},
"retryable": {
"type": "boolean",
"description": "True when running the item again may succeed. Use POST /v1/batch/{batchID}/retry to re-run all failed items."
}
}
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/spicrawl-com-batch-result-line"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.