curl "https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/your-job-id/logs?level=INFO&limit=20" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
job_id = "your-job-id"
response = requests.get(
f"https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/{job_id}/logs",
headers={"Authorization": f"Bearer {api_key}"},
params={"level": "INFO", "limit": 20}
)
print(response.json())
const jobId = 'your-job-id';
const params = new URLSearchParams({ level: 'INFO', limit: '20' });
const response = await fetch(
`https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/${jobId}/logs?${params}`,
{
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
}
);
const data = await response.json();
console.log(data);
{
"object": "list",
"data": [
{
"id": "your-event-id",
"created_at": 1765201323,
"level": "INFO",
"type": "worker.log",
"index": 0,
"message": "step 1000 | loss 0.123"
}
],
"has_more": false,
"next_cursor": null,
"prev_cursor": null
}
{
"code": "invalid_cursor",
"message": "Invalid cursor",
"suggestion": null,
"error_uid": "err-xxxxxxxx"
}
{
"code": "not_found",
"message": "Not found",
"suggestion": null,
"error_uid": "err-xxxxxxxx"
}
Fine-Tuning Service
List Job Logs
Returns all events for the job, cursor-paginated, newest first
GET
/
fine_tuning
/
jobs
/
{id}
/
logs
curl "https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/your-job-id/logs?level=INFO&limit=20" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
job_id = "your-job-id"
response = requests.get(
f"https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/{job_id}/logs",
headers={"Authorization": f"Bearer {api_key}"},
params={"level": "INFO", "limit": 20}
)
print(response.json())
const jobId = 'your-job-id';
const params = new URLSearchParams({ level: 'INFO', limit: '20' });
const response = await fetch(
`https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/${jobId}/logs?${params}`,
{
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
}
);
const data = await response.json();
console.log(data);
{
"object": "list",
"data": [
{
"id": "your-event-id",
"created_at": 1765201323,
"level": "INFO",
"type": "worker.log",
"index": 0,
"message": "step 1000 | loss 0.123"
}
],
"has_more": false,
"next_cursor": null,
"prev_cursor": null
}
{
"code": "invalid_cursor",
"message": "Invalid cursor",
"suggestion": null,
"error_uid": "err-xxxxxxxx"
}
{
"code": "not_found",
"message": "Not found",
"suggestion": null,
"error_uid": "err-xxxxxxxx"
}
Requires version 1.1.5 or later of the Archetype platform.
Overview
Returns a cursor-paginated list of events for the job, with the newest event listed first.Unlike List Job Events, this endpoint returns all
job events, including events from workers.
Request
string
required
The fine-tuning job ID. This is a TypeID-encoded identifier with the
FineTuningJobId prefix.string
Filter by severity, e.g.
INFO, WARN, ERROR, SUCCESS, FAILED.string
Case-insensitive search matched against the event message and type.
string
Forward cursor: return events older than the event with this ID. Pass the
next_cursor of the previous page. Mutually exclusive with before.string
Backward cursor: return events newer than the event with this ID. Pass the
prev_cursor of the current page. Mutually exclusive with after.Response
Returns a page of events.string
The object type of a list response. Always
list.array
The events emitted for the job.
Show FineTuningEvent
Show FineTuningEvent
Describes a single event.
string
required
The event ID. Pass as the
after cursor to page.integer
required
The Unix timestamp (in seconds) at which the event was created.
string
required
The event’s severity. One of
INFO, WARN, ERROR, SUCCESS, FAILED.string
required
The event type.
integer
The worker index that emitted the event;
null for job-level events.string
The human-readable message, if any.
boolean
Whether or not more events exist beyond this page.
string
Cursor to continue in the direction of travel — pass it as
after when paging forward
(the default), or as before when the request used before. null when has_more is
false. v1.1.11+string
Cursor to step back the way this page was reached — pass it as
before after a forward page,
or as after after a backward one. null when the request carried no cursor.curl "https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/your-job-id/logs?level=INFO&limit=20" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
job_id = "your-job-id"
response = requests.get(
f"https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/{job_id}/logs",
headers={"Authorization": f"Bearer {api_key}"},
params={"level": "INFO", "limit": 20}
)
print(response.json())
const jobId = 'your-job-id';
const params = new URLSearchParams({ level: 'INFO', limit: '20' });
const response = await fetch(
`https://api.u1.archetypeai.app/v0.6/fine_tuning/jobs/${jobId}/logs?${params}`,
{
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
}
);
const data = await response.json();
console.log(data);
{
"object": "list",
"data": [
{
"id": "your-event-id",
"created_at": 1765201323,
"level": "INFO",
"type": "worker.log",
"index": 0,
"message": "step 1000 | loss 0.123"
}
],
"has_more": false,
"next_cursor": null,
"prev_cursor": null
}
{
"code": "invalid_cursor",
"message": "Invalid cursor",
"suggestion": null,
"error_uid": "err-xxxxxxxx"
}
{
"code": "not_found",
"message": "Not found",
"suggestion": null,
"error_uid": "err-xxxxxxxx"
}
Was this page helpful?