Skip to main content
GET
/
scrape-logs
/
{uuid}
Get Scrape Log Details
curl --request GET \
  --url https://api.spidra.io/api/scrape-logs/{uuid} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.spidra.io/api/scrape-logs/{uuid}"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.spidra.io/api/scrape-logs/{uuid}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.spidra.io/api/scrape-logs/{uuid}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.spidra.io/api/scrape-logs/{uuid}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.spidra.io/api/scrape-logs/{uuid}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.spidra.io/api/scrape-logs/{uuid}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "status": "success",
  "data": {
    "uuid": "log-uuid-1",
    "status": "success",
    "started_at": "2025-06-07T15:00:00Z",
    "finished_at": "2025-06-07T15:00:05Z",
    "urls": [
      {
        "url": "https://example.com"
      }
    ],
    "extraction_prompt": "Get the main content",
    "tokens_used": 1500,
    "result_data": {
      "title": "Example Domain",
      "content": "This domain is for examples."
    }
  }
}
{
"status": "error",
"message": "Access token invalid or expired"
}
{
"status": "error",
"message": "Log not found"
}
This endpoint returns everything about a single scrape operation. Unlike the list endpoint, it includes the result_data field containing the full extracted content. Use this when you need to inspect or retrieve the output of a specific scrape job.

Example Request

curl https://api.spidra.io/api/scrape-logs/log-uuid-1 \
  -H "Authorization: Bearer YOUR_API_KEY"
import requests

response = requests.get(
    "https://api.spidra.io/api/scrape-logs/log-uuid-1",
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)
const response = await fetch(
  "https://api.spidra.io/api/scrape-logs/log-uuid-1",
  { headers: { Authorization: "Bearer YOUR_API_KEY" } }
);

Response Fields

FieldTypeDescription
uuidstringUnique identifier for this log record
statusstringsuccess, error, or in_progress
started_atstringISO 8601 timestamp when the scrape started
finished_atstring or nullISO 8601 timestamp when the scrape completed
error_messagestring or nullDetails about the failure if status is error
urlsarrayThe list of URLs that were scraped, matching the original request
extraction_promptstring or nullThe AI prompt that was used, if any
input_tokensnumber or nullInput tokens consumed by the AI
output_tokensnumber or nullOutput tokens generated by the AI
tokens_usednumber or nullTotal tokens consumed
captcha_solved_countnumber or nullNumber of CAPTCHAs solved during this request
scraped_sites_countnumber or nullNumber of URLs successfully scraped
latency_msnumber or nullTotal duration of the scrape in milliseconds
credits_usednumber or nullCredits deducted from your account
result_dataobject or string or nullThe full extracted content. The shape depends on whether you used a prompt and what output format was set

Example Response

{
  "status": "success",
  "data": {
    "uuid": "log-uuid-1",
    "status": "success",
    "started_at": "2025-12-17T15:00:00Z",
    "finished_at": "2025-12-17T15:00:05Z",
    "error_message": null,
    "urls": [
      { "url": "https://example.com/products/laptop" }
    ],
    "extraction_prompt": "Extract the product name, price, and availability",
    "input_tokens": 1240,
    "output_tokens": 86,
    "tokens_used": 1326,
    "captcha_solved_count": 0,
    "scraped_sites_count": 1,
    "latency_ms": 4820,
    "credits_used": 2,
    "result_data": {
      "product_name": "ProBook 15 Laptop",
      "price": 899.99,
      "availability": "In stock"
    }
  }
}
The list endpoint (GET /scrape-logs) excludes result_data to keep responses fast when you are loading many records. Always use this single-record endpoint when you need the actual scraped content.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

uuid
string
required

UUID of the scrape log

Response

Full scrape log details

status
enum<string>
Available options:
success
data
object

Full scrape log details including result data