cURL
curl --request GET "${HARNESS_URL}/harness/cronjobs/${CRONJOB_ID}/runs" \
--header "Authorization: Bearer ${HARNESS_TOKEN}"import json
import os
from urllib.request import Request, urlopen
base_url = os.environ["HARNESS_URL"]
headers = {"Authorization": "Bearer " + os.environ["HARNESS_TOKEN"]}
job_id = os.environ["CRONJOB_ID"]
request = Request(base_url + f"/harness/cronjobs/{job_id}/runs", headers=headers, method="GET")
with urlopen(request) as response:
print(json.load(response))const baseUrl = process.env.HARNESS_URL;
const headers = { Authorization: `Bearer ${process.env.HARNESS_TOKEN}` };
const response = await fetch(`${baseUrl}/harness/cronjobs/${process.env.CRONJOB_ID}/runs`, {
method: "GET",
headers,
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());{
"items": [
{
"cronjob_id": "0e58ff7f7dcbf348c252fc70e7fdb587",
"run_id": "8210479599999-677bde100cec511735b2",
"revision": 1,
"scheduled_at": "2026-09-16T01:00:00Z",
"created_at": "2026-09-16T01:00:00Z",
"prompt": "Summarize recent activity",
"harness": null,
"timeout_seconds": 1800,
"state": "succeeded",
"owner": "replica-1",
"started_at": "2026-09-16T01:00:00+00:00",
"completed_at": "2026-09-16T01:00:10+00:00",
"lease_until": "2026-09-16T01:01:00+00:00",
"cancel_requested": false,
"output": "Daily report",
"error": ""
}
],
"next_cursor": ""
}定时任务
列出执行历史
按计划触发时间从新到旧分页读取已保存的执行记录
GET
/
harness
/
cronjobs
/
{job_id}
/
runs
cURL
curl --request GET "${HARNESS_URL}/harness/cronjobs/${CRONJOB_ID}/runs" \
--header "Authorization: Bearer ${HARNESS_TOKEN}"import json
import os
from urllib.request import Request, urlopen
base_url = os.environ["HARNESS_URL"]
headers = {"Authorization": "Bearer " + os.environ["HARNESS_TOKEN"]}
job_id = os.environ["CRONJOB_ID"]
request = Request(base_url + f"/harness/cronjobs/{job_id}/runs", headers=headers, method="GET")
with urlopen(request) as response:
print(json.load(response))const baseUrl = process.env.HARNESS_URL;
const headers = { Authorization: `Bearer ${process.env.HARNESS_TOKEN}` };
const response = await fetch(`${baseUrl}/harness/cronjobs/${process.env.CRONJOB_ID}/runs`, {
method: "GET",
headers,
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());{
"items": [
{
"cronjob_id": "0e58ff7f7dcbf348c252fc70e7fdb587",
"run_id": "8210479599999-677bde100cec511735b2",
"revision": 1,
"scheduled_at": "2026-09-16T01:00:00Z",
"created_at": "2026-09-16T01:00:00Z",
"prompt": "Summarize recent activity",
"harness": null,
"timeout_seconds": 1800,
"state": "succeeded",
"owner": "replica-1",
"started_at": "2026-09-16T01:00:00+00:00",
"completed_at": "2026-09-16T01:00:10+00:00",
"lease_until": "2026-09-16T01:01:00+00:00",
"cancel_requested": false,
"output": "Daily report",
"error": ""
}
],
"next_cursor": ""
}需要使用 AgentKit CLI 0.54.0 部署并启用定时任务的 Harness Runtime
返回已保存的执行历史,按计划触发时间从新到旧排列。运行中和刚完成但尚未保存到历史的执行,先通过读取定时任务或读取执行结果查看
将
next_cursor 原样用于下一页请求;空字符串表示没有后续页面授权
服务鉴权 Harness 的 Runtime 访问凭证,例如 Runtime API Key;共享 OAuth 部署不支持后台定时任务
路径参数
任务 ID,32 位小写十六进制字符
Pattern:
^[a-f0-9]{32}$查询参数
上一页的 next_cursor,首次请求省略或传空字符串
Maximum string length:
4096每页最多返回的记录数,范围为 1–1000
必填范围:
1 <= x <= 1000最后修改于 2026年9月19日