Browsing API
Download Task Trajectory
Downloads the trajectory for a completed browsing task.
GET
/
v1
/
browsing
/
tasks
/
{id}
/
trajectory
curl --request GET \
--url "https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory" \
--header "X-API-Key: YOUR_API_KEY"
curl --request GET \
--url "https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory?output_type=zip" \
--header "X-API-Key: YOUR_API_KEY" \
--output trajectory.zip
import requests
# JSON format (default)
response = requests.get(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
headers={"X-API-Key": "YOUR_API_KEY"}
)
trajectory = response.json()
# ZIP format
response = requests.get(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"output_type": "zip"}
)
with open("trajectory.zip", "wb") as f:
f.write(response.content)
// JSON format (default)
const response = await fetch(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
{
method: "GET",
headers: { "X-API-Key": "YOUR_API_KEY" }
}
);
const trajectory = await response.json();
// ZIP format
const zipResponse = await fetch(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory?output_type=zip",
{
method: "GET",
headers: { "X-API-Key": "YOUR_API_KEY" }
}
);
const blob = await zipResponse.blob();
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Downloads the trajectory for a completed browsing task.
Output Formats
Use theoutput_type query parameter to choose between two formats:
JSON (default)
Returns a JSON object with base64-encoded images:{
"task_id": "00000000-0000-0000-0000-000000000000",
"steps": [
{ "step": 1, "image": "<base64-encoded-webp>" },
{ "step": 2, "image": "<base64-encoded-webp>" }
]
}
ZIP
Returns a downloadable ZIP archive containing:trajectory.json
{
"task_id": "00000000-0000-0000-0000-000000000000",
"steps": [
{ "step": 1, "image_filename": "step_001.webp" },
{ "step": 2, "image_filename": "step_002.webp" }
]
}
step_001.webp,step_002.webp, … - Screenshot images in WEBP format
curl --request GET \
--url "https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory" \
--header "X-API-Key: YOUR_API_KEY"
curl --request GET \
--url "https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory?output_type=zip" \
--header "X-API-Key: YOUR_API_KEY" \
--output trajectory.zip
import requests
# JSON format (default)
response = requests.get(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
headers={"X-API-Key": "YOUR_API_KEY"}
)
trajectory = response.json()
# ZIP format
response = requests.get(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"output_type": "zip"}
)
with open("trajectory.zip", "wb") as f:
f.write(response.content)
// JSON format (default)
const response = await fetch(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
{
method: "GET",
headers: { "X-API-Key": "YOUR_API_KEY" }
}
);
const trajectory = await response.json();
// ZIP format
const zipResponse = await fetch(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory?output_type=zip",
{
method: "GET",
headers: { "X-API-Key": "YOUR_API_KEY" }
}
);
const blob = await zipResponse.blob();
⌘I
curl --request GET \
--url "https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory" \
--header "X-API-Key: YOUR_API_KEY"
curl --request GET \
--url "https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory?output_type=zip" \
--header "X-API-Key: YOUR_API_KEY" \
--output trajectory.zip
import requests
# JSON format (default)
response = requests.get(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
headers={"X-API-Key": "YOUR_API_KEY"}
)
trajectory = response.json()
# ZIP format
response = requests.get(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"output_type": "zip"}
)
with open("trajectory.zip", "wb") as f:
f.write(response.content)
// JSON format (default)
const response = await fetch(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory",
{
method: "GET",
headers: { "X-API-Key": "YOUR_API_KEY" }
}
);
const trajectory = await response.json();
// ZIP format
const zipResponse = await fetch(
"https://api.yutori.com/v1/browsing/tasks/00000000-0000-0000-0000-000000000000/trajectory?output_type=zip",
{
method: "GET",
headers: { "X-API-Key": "YOUR_API_KEY" }
}
);
const blob = await zipResponse.blob();
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}