Agents are the top-level entity in Chronary. Each agent can own multiple calendars and has its own availability.
Registers your agent with Chronary, creating a Chronary identity it can use to own calendars, events, and webhooks. The agent itself already exists in your system — this gives it a Chronary record.
Field Type Required Description namestring Yes 1–255 characters typestring Yes ai, human, or resourcedescriptionstring No Free-text description metadataobject No Key-value pairs, max 16KB JSON
curl -X POST https://api.chronary.ai/v1/agents \
-H " Authorization: Bearer chr_sk_your_key_here " \
-H " Content-Type: application/json " \
"name": "Sales Agent - Acme Corp",
"description": "Handles meeting scheduling for the sales team",
"metadata": { "team": "sales" }
from chronary import Chronary
agent = client.agents. create (
name = " Sales Agent - Acme Corp " ,
description = " Handles meeting scheduling for the sales team " ,
metadata = { " team " : " sales " } ,
"name" : " Sales Agent - Acme Corp " ,
"description" : " Handles meeting scheduling for the sales team " ,
"metadata" : { "team" : " sales " },
"createdAt" : " 2026-04-04T12:00:00Z " ,
"updatedAt" : " 2026-04-04T12:00:00Z "
Triggers an agent.created webhook.
Status Type Cause 429quota_exceededAgent limit reached on your plan
Parameter Type Default Description typestring — Filter by ai, human, or resource statusstring — Filter by active, paused, or decommissioned limitinteger 50 1–200 offsetinteger 0 Pagination offset
curl " https://api.chronary.ai/v1/agents?type=ai&status=active&limit=10 " \
-H " Authorization: Bearer chr_sk_your_key_here "
for agent in client.agents. list ( type = " ai " , status = " active " , limit = 10 ):
"name" : " Sales Agent - Acme Corp " ,
curl https://api.chronary.ai/v1/agents/agt_a1b2c3d4 \
-H " Authorization: Bearer chr_sk_your_key_here "
agent = client.agents. get ( " agt_a1b2c3d4 " )
Status Type Cause 404not_foundAgent not found
Field Type Description namestring 1–255 characters descriptionstring | null Set to null to clear metadataobject Replaces existing metadata statusstring active or paused
At least one field must be provided.
curl -X PATCH https://api.chronary.ai/v1/agents/agt_a1b2c3d4 \
-H " Authorization: Bearer chr_sk_your_key_here " \
-H " Content-Type: application/json " \
-d ' { "status": "paused" } '
updated = client.agents. update ( " agt_a1b2c3d4 " , status = " paused " )
Triggers an agent.updated webhook.
Status Type Cause 404not_foundAgent not found
Sets the agent status to decommissioned. Returns 204 No Content.
curl -X DELETE https://api.chronary.ai/v1/agents/agt_a1b2c3d4 \
-H " Authorization: Bearer chr_sk_your_key_here "
client.agents. delete ( " agt_a1b2c3d4 " )
Status Type Cause 404not_foundAgent not found