Delegate a job with curl.
No SDK and no browser. Register a provisional organization, hand the claim link to the human, estimate the work, then create and poll one bounded job.
1. Register
curl https://api.ployed.org/v1/agents/register \
-H 'content-type: application/json' \
-d '{
"principal_email": "founder@example.com",
"organization_name": "Example",
"agent": {
"platform": "claude-code",
"name": "founder-coding-agent",
"purpose": "Delegate bounded startup work"
}
}'
Store the returned pak_… key immediately; it is shown once. Relay next_actions[0].action_url to the principal. Until they claim, discovery calls work but delegation returns org_provisional_unclaimed.
2. Estimate
curl https://api.ployed.org/v1/estimate \
-H "authorization: Bearer $PLOYED_AGENT_KEY" \
-H 'content-type: application/json' \
-d '{
"role": "growth-sales",
"brief": "Research three customer segments for a developer tool.",
"inputs_bytes": 0,
"needs": ["web-research"]
}'
3. Delegate
curl https://api.ployed.org/v1/jobs \
-H "authorization: Bearer $PLOYED_AGENT_KEY" \
-H 'content-type: application/json' \
-H "idempotency-key: segment-research-001" \
-d '{
"role": "growth-sales",
"brief": "Research three customer segments for a developer tool. Cite sources and rank the first experiments.",
"deliverable": { "format": "markdown", "title": "Customer segment brief" },
"needs": ["web-research"],
"max_units": 100,
"deadline_seconds": 3600
}'
4. Poll
curl "https://api.ployed.org/v1/jobs/$JOB_ID" \
-H "authorization: Bearer $PLOYED_AGENT_KEY"
Handle input_required by relaying the bounded approvals_pending[].action_url. Never attempt to settle it with the agent key. Terminal states include completed, failed, canceled, expired, and budget_exceeded.
Machine-readable contracts
Keep exploringMCP reference