Agent
Endpoints agents call to claim and report on work.
29 endpoints · Plakar Control Plane v0.18 · Base URL, authentication and errors
List the pending one-off tasks
/api/v1/agent/at/tasks
Query parameters
-
frominteger<int64> requiredOnly tasks due from this time, in unix seconds. -
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100
Response 200 OK application/json
-
created_idstring<date-time> -
idstring<uuid> -
schedule_atstring<date-time> -
scheduler_idstring<uuid> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/agent/at/tasks' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
[
{
"created_id": "2026-01-01T00:00:00Z",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}
]Get a connector configuration
/api/v1/agent/configurations/{configuration_id}
Path parameters
-
configuration_idstring required
Response 200 OK application/json
-
data_classesarray[string] nullable -
environmentstring nullable -
fieldsarray[object]-
keystring -
providerobject recursive -
valstring
-
-
idstring<uuid> -
integrationobject-
idstring<uuid> -
namestring -
versionstring
-
-
namestring -
revisioninteger -
typestring -
urnstring -
urnidstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/agent/configurations/{configuration_id}' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"data_classes": [
"string"
],
"environment": "string",
"fields": [
{
"key": "string",
"provider": {},
"val": "string"
}
],
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"integration": {
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"name": "string",
"version": "string"
},
"name": "string",
"revision": 0,
"type": "string",
"urn": "string",
"urnid": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Check the quotas
/api/v1/agent/janitor/check-quotas
Response 200 OK application/json
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/check-quotas' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{}Convert configurations stored as rows
/api/v1/agent/janitor/configurations/convert
Request body application/json required
-
connectors_afterstring<uuid> -
providers_afterstring<uuid>
Response 200 OK application/json
-
connectors_afterstring<uuid> -
convertedinteger -
moreboolean -
providers_afterstring<uuid> -
skippedinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/configurations/convert' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"connectors_after": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"providers_after": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}'Response 200
{
"connectors_after": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"converted": 0,
"more": true,
"providers_after": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"skipped": 0
}Deliver the pending mails
/api/v1/agent/janitor/mails/deliver
Response 200 OK application/json
-
failedinteger -
organizationsinteger -
sentinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/mails/deliver' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"failed": 0,
"organizations": 0,
"sent": 0
}Delete the expired OAuth tokens and codes, and the ended grants
/api/v1/agent/janitor/oauth/purge
Response 200 OK application/json
-
access_tokensinteger<int64> -
codesinteger<int64> -
grantsinteger<int64>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/oauth/purge' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"access_tokens": 0,
"codes": 0,
"grants": 0
}Apply the SLA schedule plan
/api/v1/agent/janitor/sla-schedule-plan/apply
Response 200 OK application/json
-
tasks_appliedinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/sla-schedule-plan/apply' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"tasks_applied": 0
}Rebuild the SLA schedule plan
/api/v1/agent/janitor/sla-schedule-plan/rebuild
Response 200 OK application/json
-
rows_createdinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/sla-schedule-plan/rebuild' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"rows_created": 0
}List the janitor tasks
/api/v1/agent/janitor/tasks
Response 200 OK application/json
-
idstring<uuid> -
intervalinteger<int64> -
keystring -
namestring -
statusstring -
ttlinteger<int64>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/agent/janitor/tasks' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
[
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"interval": 0,
"key": "string",
"name": "string",
"status": "string",
"ttl": 0
}
]Register a janitor task
/api/v1/agent/janitor/tasks
Request body application/json required
-
intervalinteger<int64> -
keystring -
namestring -
ttlinteger<int64>
Response 200 OK application/json
-
idstring<uuid> -
intervalinteger<int64> -
keystring -
namestring -
statusstring -
ttlinteger<int64>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/tasks' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"interval": 0,
"key": "string",
"name": "string",
"ttl": 0
}'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"interval": 0,
"key": "string",
"name": "string",
"status": "string",
"ttl": 0
}Start a janitor run
/api/v1/agent/janitor/tasks/{task_id}/runs/start
Path parameters
-
task_idstring required
Response 200 OK application/json
-
run_idstring<uuid> -
started_atstring<date-time> -
state
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/tasks/{task_id}/runs/start' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"run_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"state": {}
}Finish a janitor run
/api/v1/agent/janitor/tasks/{task_id}/runs/{run_id}/finish
Path parameters
-
task_idstring required -
run_idstring required
Request body application/json required
-
durationinteger<int64> -
outcomestring -
state
Response 200 OK application/json
-
idstring<uuid> -
intervalinteger<int64> -
keystring -
namestring -
statusstring -
ttlinteger<int64>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/tasks/{task_id}/runs/{run_id}/finish' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"duration": 0,
"outcome": "string",
"state": {}
}'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"interval": 0,
"key": "string",
"name": "string",
"status": "string",
"ttl": 0
}Fold the usage rollup
/api/v1/agent/janitor/usage-rollup/fold
Response 200 OK application/json
-
entries_foldedinteger -
moreboolean
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/usage-rollup/fold' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"entries_folded": 0,
"more": true
}Synchronise the vector configuration
/api/v1/agent/janitor/vector-config/sync
Response 200 OK application/json
-
changedboolean -
enabledboolean
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/vector-config/sync' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"changed": true,
"enabled": true
}Deliver the pending webhooks
/api/v1/agent/janitor/webhooks/deliver
Response 200 OK application/json
-
deliveredinteger -
failedinteger -
organizationsinteger -
retiredinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/janitor/webhooks/deliver' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"delivered": 0,
"failed": 0,
"organizations": 0,
"retired": 0
}List the running jobs
/api/v1/agent/jobs
Response 200 OK application/json
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/agent/jobs' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
[
{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}
]Queue a job
/api/v1/agent/jobs
Request body application/json required
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Response 200 OK application/json
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/jobs' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}'Response 200
{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Mark a job canceled
/api/v1/agent/jobs/{job_id}/cancel
Path parameters
-
job_idstring required
Request body application/json required
-
errorstring nullable -
logstring
Response 200 OK application/json
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/jobs/{job_id}/cancel' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"error": "string",
"log": "string"
}'Response 200
{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Mark a job failed
/api/v1/agent/jobs/{job_id}/fail
Path parameters
-
job_idstring required
Request body application/json required
-
errorstring nullable -
logstring
Response 200 OK application/json
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/jobs/{job_id}/fail' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"error": "string",
"log": "string"
}'Response 200
{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Mark a job started
/api/v1/agent/jobs/{job_id}/start
Path parameters
-
job_idstring required
Response 200 OK application/json
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/jobs/{job_id}/start' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Mark a job succeeded
/api/v1/agent/jobs/{job_id}/succeed
Path parameters
-
job_idstring required
Request body application/json required
-
errorstring nullable -
logstring
Response 200 OK application/json
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/jobs/{job_id}/succeed' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"error": "string",
"log": "string"
}'Response 200
{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Report job progress
/api/v1/agent/jobs/{job_id}/update
Path parameters
-
job_idstring required
Request body application/json required
-
logstring -
stateobject nullable-
chunksobject-
cachedintegerMax: 1.8446744073709552e+19 -
cached_sizeintegerMax: 1.8446744073709552e+19 -
errorintegerMax: 1.8446744073709552e+19 -
okintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
totalintegerMax: 1.8446744073709552e+19
-
-
dirsobject-
cachedintegerMax: 1.8446744073709552e+19 -
cached_sizeintegerMax: 1.8446744073709552e+19 -
errorintegerMax: 1.8446744073709552e+19 -
okintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
totalintegerMax: 1.8446744073709552e+19
-
-
filesobject-
cachedintegerMax: 1.8446744073709552e+19 -
cached_sizeintegerMax: 1.8446744073709552e+19 -
errorintegerMax: 1.8446744073709552e+19 -
okintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
totalintegerMax: 1.8446744073709552e+19
-
-
iomap[object]-
robject-
latencyobject-
avginteger<int64> -
countinteger<int64> -
maxinteger<int64> -
p50integer<int64> -
p95integer<int64>
-
-
overallnumber<double> -
overall_wallnumber<double> -
totalinteger<int64>
-
-
wobject-
latencyobject-
avginteger<int64> -
countinteger<int64> -
maxinteger<int64> -
p50integer<int64> -
p95integer<int64>
-
-
overallnumber<double> -
overall_wallnumber<double> -
totalinteger<int64>
-
-
-
latencyarray[object]-
atinteger<int64> -
avginteger<int64> -
countinteger<int64> -
maxinteger<int64> -
p50integer<int64> -
p95integer<int64>
-
-
networkarray[object]-
atinteger<int64> -
read_bpsnumber<double> -
write_bpsnumber<double>
-
-
num_cpuinteger -
objectsobject-
cachedintegerMax: 1.8446744073709552e+19 -
cached_sizeintegerMax: 1.8446744073709552e+19 -
errorintegerMax: 1.8446744073709552e+19 -
okintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
totalintegerMax: 1.8446744073709552e+19
-
-
pathsobject-
cachedintegerMax: 1.8446744073709552e+19 -
cached_sizeintegerMax: 1.8446744073709552e+19 -
errorintegerMax: 1.8446744073709552e+19 -
okintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
totalintegerMax: 1.8446744073709552e+19
-
-
phasestring -
processedobject-
bytesintegerMax: 1.8446744073709552e+19 -
itemsintegerMax: 1.8446744073709552e+19
-
-
recent_pathsarray[object]-
pathstring -
statusstring
-
-
resourcesarray[object]-
atinteger<int64> -
cpu_percentnumber<double> -
memory_bytesintegerMax: 1.8446744073709552e+19
-
-
resultobject-
durationnumber<double> -
errorsintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19
-
-
snapshot_idstring -
summaryobject-
directoriesintegerMax: 1.8446744073709552e+19 -
existsboolean -
filesintegerMax: 1.8446744073709552e+19 -
pathsintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
symlinksintegerMax: 1.8446744073709552e+19 -
xattrsintegerMax: 1.8446744073709552e+19
-
-
symlinksobject-
cachedintegerMax: 1.8446744073709552e+19 -
cached_sizeintegerMax: 1.8446744073709552e+19 -
errorintegerMax: 1.8446744073709552e+19 -
okintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
totalintegerMax: 1.8446744073709552e+19
-
-
versionstring -
xattrsobject-
cachedintegerMax: 1.8446744073709552e+19 -
cached_sizeintegerMax: 1.8446744073709552e+19 -
errorintegerMax: 1.8446744073709552e+19 -
okintegerMax: 1.8446744073709552e+19 -
sizeintegerMax: 1.8446744073709552e+19 -
totalintegerMax: 1.8446744073709552e+19
-
-
Response 200 OK application/json
-
at_idstring<uuid> -
cron_idstring<uuid> -
idstring<uuid> -
identity_idstring<uuid> -
schedule_atstring<date-time> -
schedule_idstring<uuid> -
scheduler_idstring<uuid> -
started_atstring<date-time> -
statusstring -
stopped_atstring<date-time> -
task_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/jobs/{job_id}/update' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"log": "string",
"state": {
"chunks": {
"cached": 0,
"cached_size": 0,
"error": 0,
"ok": 0,
"size": 0,
"total": 0
},
"dirs": {
"cached": 0,
"cached_size": 0,
"error": 0,
"ok": 0,
"size": 0,
"total": 0
},
"files": {
"cached": 0,
"cached_size": 0,
"error": 0,
"ok": 0,
"size": 0,
"total": 0
},
"io": {
"key": {
"r": {
"latency": {
"avg": 0,
"count": 0,
"max": 0,
"p50": 0,
"p95": 0
},
"overall": 0,
"overall_wall": 0,
"total": 0
},
"w": {
"latency": {
"avg": 0,
"count": 0,
"max": 0,
"p50": 0,
"p95": 0
},
"overall": 0,
"overall_wall": 0,
"total": 0
}
}
},
"latency": [
{
"at": 0,
"avg": 0,
"count": 0,
"max": 0,
"p50": 0,
"p95": 0
}
],
"network": [
{
"at": 0,
"read_bps": 0,
"write_bps": 0
}
],
"num_cpu": 0,
"objects": {
"cached": 0,
"cached_size": 0,
"error": 0,
"ok": 0,
"size": 0,
"total": 0
},
"paths": {
"cached": 0,
"cached_size": 0,
"error": 0,
"ok": 0,
"size": 0,
"total": 0
},
"phase": "string",
"processed": {
"bytes": 0,
"items": 0
},
"recent_paths": [
{
"path": "string",
"status": "string"
}
],
"resources": [
{
"at": 0,
"cpu_percent": 0,
"memory_bytes": 0
}
],
"result": {
"duration": 0,
"errors": 0,
"size": 0
},
"snapshot_id": "string",
"summary": {
"directories": 0,
"exists": true,
"files": 0,
"paths": 0,
"size": 0,
"symlinks": 0,
"xattrs": 0
},
"symlinks": {
"cached": 0,
"cached_size": 0,
"error": 0,
"ok": 0,
"size": 0,
"total": 0
},
"version": "string",
"xattrs": {
"cached": 0,
"cached_size": 0,
"error": 0,
"ok": 0,
"size": 0,
"total": 0
}
}
}'Response 200
{
"at_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"identity_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"schedule_at": "2026-01-01T00:00:00Z",
"schedule_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"started_at": "2026-01-01T00:00:00Z",
"status": "string",
"stopped_at": "2026-01-01T00:00:00Z",
"task_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}List the schedulers
/api/v1/agent/schedulers
Query parameters
-
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100
Response 200 OK application/json
-
itemsarray[object]-
actorstring -
enabledboolean -
idstring<uuid> -
revisioninteger
-
-
totalinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/agent/schedulers' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"items": [
{
"actor": "string",
"enabled": true,
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"revision": 0
}
],
"total": 0
}Get a scheduler
/api/v1/agent/schedulers/{scheduler_id}
Path parameters
-
scheduler_idstring required
Query parameters
-
revisioninteger requiredScheduler revision to return the tasks of.
Response 200 OK application/json
-
concurrencyinteger -
cron_idstring<uuid> -
enabledboolean -
idstring<uuid> -
miss_strategystring -
priorityinteger -
rulesarray[object]-
enabledboolean -
idstring<uuid> -
jitterinteger<int64> -
journalizedboolean -
last_runstring<date-time> -
periodinteger<int64> -
startstring<date-time>
-
-
scheduler_idstring<uuid> -
tracking_idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/agent/schedulers/{scheduler_id}' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
[
{
"concurrency": 0,
"cron_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"enabled": true,
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"miss_strategy": "string",
"priority": 0,
"rules": [
{
"enabled": true,
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"jitter": 0,
"journalized": true,
"last_run": "2026-01-01T00:00:00Z",
"period": 0,
"start": "2026-01-01T00:00:00Z"
}
],
"scheduler_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"tracking_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}
]Record a snapshot of a source
/api/v1/agent/snapshots/source/{source_id}/snapshot
Path parameters
-
source_idstring required
Request body application/json required
-
categorystring nullable -
creation_timestring<date-time> required -
data_classesarray[string] nullable -
datasetstring nullable -
environmentstring nullable -
itemsinteger nullable -
namestring nullable -
originstring nullable -
rootstring nullable -
sizeinteger nullable -
snapshot_idstring required -
tagsarray[string] nullable
Response 200 OK
No response body.
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/snapshots/source/{source_id}/snapshot' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"category": "string",
"creation_time": "2026-01-01T00:00:00Z",
"data_classes": [
"string"
],
"dataset": "string",
"environment": "string",
"items": 0,
"name": "string",
"origin": "string",
"root": "string",
"size": 0,
"snapshot_id": "string",
"tags": [
"string"
]
}'Record a prune of a store
/api/v1/agent/snapshots/store/{store_id}/prune
Path parameters
-
store_idstring required
Request body application/json required
-
snapshot_idsarray[string] required
Response 200 OK
No response body.
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/snapshots/store/{store_id}/prune' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"snapshot_ids": [
"string"
]
}'Record snapshots removed from a store
/api/v1/agent/snapshots/store/{store_id}/rm
Path parameters
-
store_idstring required
Request body application/json required
-
snapshot_idsarray[string] required
Response 200 OK
No response body.
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/snapshots/store/{store_id}/rm' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"snapshot_ids": [
"string"
]
}'Record the snapshots of a store
/api/v1/agent/snapshots/store/{store_id}/snapshots
Path parameters
-
store_idstring required
Request body application/json required
-
snapshotsarray[object] required-
categorystring nullable -
creation_timestring<date-time> required -
data_classesarray[string] nullable -
datasetstring nullable -
environmentstring nullable -
itemsinteger nullable -
namestring nullable -
originstring nullable -
rootstring nullable -
sizeinteger nullable -
snapshot_idstring required -
tagsarray[string] nullable
-
Response 200 OK
No response body.
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/agent/snapshots/store/{store_id}/snapshots' \
-H 'Plakman-Agent-Token: <agent-token>' \
-H 'Content-Type: application/json' \
-d '{
"snapshots": [
{
"category": "string",
"creation_time": "2026-01-01T00:00:00Z",
"data_classes": [
"string"
],
"dataset": "string",
"environment": "string",
"items": 0,
"name": "string",
"origin": "string",
"root": "string",
"size": 0,
"snapshot_id": "string",
"tags": [
"string"
]
}
]
}'Get a task
/api/v1/agent/tasks/{task_id}
Path parameters
-
task_idstring required
Response 200 OK application/json
-
configmap[string] -
edge_idstring<uuid> -
edge_tagsarray[string] -
organization_idstring<uuid> -
origin_idstring<uuid> -
orphanboolean -
target_idstring<uuid> -
typestring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/agent/tasks/{task_id}' \
-H 'Plakman-Agent-Token: <agent-token>'Response 200
{
"config": {
"key": "string"
},
"edge_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"edge_tags": [
"string"
],
"organization_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"origin_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"orphan": true,
"target_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"type": "string"
}