Copy an agent as a fresh draft
curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/agents/{agentId}/duplicate \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.tryfuse.ai/api/v1/business/agents/{agentId}/duplicate"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.tryfuse.ai/api/v1/business/agents/{agentId}/duplicate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"agent": {
"id": "6a8dce6665fd738c00d8928a",
"type": "web-monitor",
"name": "Regulator fines 2026 (Copy)",
"status": "initializing",
"config": {
"listName": "Regulator fines 2026 (Copy)",
"entityType": "company",
"prompt": "companies fined by a financial regulator in 2026",
"searchPeriod": "6h",
"numResults": 7
},
"isReconstructed": false,
"lossyFields": [],
"sourceLists": []
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Agents
Copy an agent as a fresh draft
Copies an agent of any status into a NEW draft named "<source name> (Copy)" (`status: initializing`, nothing billed). A draft source copies losslessly. A source that was started before configs were snapshotted is rebuilt from its live record, and every field that could not be recovered is listed in `lossyFields` — set those with PATCH before you activate the copy. This is also how you restart a paused agent, since `activate` only accepts drafts. The copy counts towards the free plan's 10-agent cap (403 AGENT_LIMIT_REACHED). Answers 201 with the new draft in the same shape as GET; activate it with POST /business/agents/{agentId}/activate using the returned `id`.
Errors:
- `404` `AGENT_NOT_FOUND` — No agent with this id belongs to the token owner. A deleted agent and another user's agent answer identically.
- `403` `AGENT_LIMIT_REACHED` — Free-plan accounts may hold at most 10 agents, drafts included. Delete an agent or upgrade the plan.
- `422` `VALIDATION_FAILED` — The request failed this endpoint's own validation — `param` names the offending field and `message` says why.
- `429` `RATE_LIMITED` — The agents bucket is exhausted: 30 requests per minute or 2,000 per day per token owner, shared by every /business/agents operation (a 429 raised by the agents service is relayed with this code too). Retry after the `Retry-After` header.
- `500` `UNEXPECTED_ERROR` — The agents service failed (5xx, refused service credential, or a timeout after 60s) or the rate limiter was unavailable. Retry later; quote `request_id` to support.
Requires one of the following token scopes: agents.
POST
/
business
/
agents
/
{agentId}
/
duplicate
Copy an agent as a fresh draft
curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/agents/{agentId}/duplicate \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.tryfuse.ai/api/v1/business/agents/{agentId}/duplicate"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://api.tryfuse.ai/api/v1/business/agents/{agentId}/duplicate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"agent": {
"id": "6a8dce6665fd738c00d8928a",
"type": "web-monitor",
"name": "Regulator fines 2026 (Copy)",
"status": "initializing",
"config": {
"listName": "Regulator fines 2026 (Copy)",
"entityType": "company",
"prompt": "companies fined by a financial regulator in 2026",
"searchPeriod": "6h",
"numResults": 7
},
"isReconstructed": false,
"lossyFields": [],
"sourceLists": []
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"param": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Authorizations
Your API token (af_…) as the Basic-auth username, with an empty password.
Path Parameters
The agent's id: a 24-character hex string — the id of an item from GET /business/agents, or the agent.id a create or duplicate returned.
Response
Success
Show child attributes
Show child attributes