Skip to content

Get scrape result metadata + presigned blob URL

GET
/api/v1/jobs/{id}/result
curl --request GET \
--url https://api.justcrawl.io/api/v1/jobs/example/result \
--header 'Authorization: Bearer <token>'

Returns a JSON envelope describing the scrape result. The stored artifact is NOT inlined — fetch it from resultUrl (a presigned S3 URL, typically 15-minute TTL) when present, or resolve blobKey through your own storage client when the org uses custom S3. The endpoint never streams the body itself.

Returns 410 Gone when the result existed but has been cleaned up under the org’s document-retention policy; the expiredAt timestamp tells you when.

Returns 404 with reason: "credit_refunded" when no provider delivered a page for this job. Its credit was returned automatically (creditOutcome: "refunded" on the job resource) and nothing was stored to hand back — so this is a settled outcome, not a transient miss, and retrying the fetch will never produce a body. Branch on reason, not on the message text.

id
required
string

Job ID

Result metadata. Exactly one of resultUrl (platform storage) or blobKey (custom S3) is present.

Media typeapplication/json
object
resultUrl

Presigned S3 URL for the stored artifact (platform storage). Mutually exclusive with blobKey.

string format: uri
blobKey

Raw S3 object key (custom storage). Mutually exclusive with resultUrl.

string
providerId
required
string
statusCode
required

HTTP status code the provider returned for the scrape.

integer
bodySize
required

Size of the stored body in bytes.

integer
contentType
required

Stored artifact MIME type. Historical unmarked results resolve as text/html.

string
latencyMs
required
integer
Examplegenerated
{
"resultUrl": "https://example.com",
"blobKey": "example",
"providerId": "example",
"statusCode": 1,
"bodySize": 1,
"contentType": "example",
"latencyMs": 1
}

Missing or invalid authentication token

Media typeapplication/json
object
error
string
Example
{
"error": "Missing or invalid authentication token"
}

Insufficient permissions for this operation

Media typeapplication/json
object
error
string
Example
{
"error": "No organization. Complete onboarding first."
}

Job not found, or job exists but has no result blob yet (still running, or it failed before producing a body).

Also returned when the job’s credit was refunded because no provider delivered a page: that body carries reason: "credit_refunded" plus a static message, and is the one 404 here that is terminal rather than “not yet”.

Media typeapplication/json
object
error
required
string
reason

Present only on the refunded case. The machine-readable discriminator — key on this, not on error or message.

string
Allowed values: credit_refunded
message

Static human-readable sentence. Present only on the refunded case.

string
Example
{
"reason": "credit_refunded"
}

Result existed but has been cleaned up under the org’s document-retention policy. Body includes expiredAt and a human-readable message.

Unexpected server error. Logs and PostHog $exception capture

Media typeapplication/json
object
error
string
Example
{
"error": "Something went wrong"
}