curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/agents/{agentId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.tryfuse.ai/api/v1/business/agents/{agentId}"
payload = {}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.tryfuse.ai/api/v1/business/agents/{agentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"agent": {
"id": "6a8dce4e65fd738c00d8927a",
"type": "web-monitor",
"name": "Regulator fines 2026",
"status": "initializing",
"config": {
"listName": "Regulator fines 2026",
"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>"
}
}Update a draft agent's config (partial)
Partial update of a DRAFT agent’s config. Send one or more of the agent type’s own config fields — the same fields as its POST /business/agents/ body, without start. Keys are merged over the saved config: omitted fields keep their value, an array replaces the stored array, and unknown keys are dropped. Sending listName renames both the agent and the results list it will create. The merged config is re-validated against the type’s schema, so a partial edit can still be rejected (422 VALIDATION_FAILED). Only drafts (status: initializing) are editable — a started, paused, expired or failed agent answers 409 AGENT_NOT_A_DRAFT, so duplicate it and edit the copy. Nothing is billed. The answer is the saved agent, in the same shape as GET /business/agents/.
Errors:
404AGENT_NOT_FOUND— No agent with this id belongs to the token owner. A deleted agent and another user’s agent answer identically.409AGENT_NOT_A_DRAFT— The agent is not a draft (status is notinitializing): it was already started, or is paused, expired or failed. Only drafts are editable and activatable — duplicate the agent and work on the copy.409AGENT_CONFIG_MISSING— The draft carries no stored config to work from (a legacy draft saved before configs were persisted). Create the agent again.409AGENT_TYPE_UNSUPPORTED— The agent is of a legacy kind this API can no longer edit or activate; itstypereads as null.422VALIDATION_FAILED— The update was rejected by validation. Either this endpoint’s own request validation (a malformedagentId, an empty body), whereparamnames the offending field; or the merged config failed the agent type’s own schema, which the agents service reports without per-field detail, soparamis null andmessageis the generic one. Re-check the fields you sent against that type’s create body.429RATE_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 theRetry-Afterheader.500UNEXPECTED_ERROR— The agents service failed (5xx, refused service credential, or a timeout after 60s) or the rate limiter was unavailable. Retry later; quoterequest_idto support.
Requires one of the following token scopes: agents.
curl --request PATCH \
--url https://api.tryfuse.ai/api/v1/business/agents/{agentId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '{}'import requests
url = "https://api.tryfuse.ai/api/v1/business/agents/{agentId}"
payload = {}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({})
};
fetch('https://api.tryfuse.ai/api/v1/business/agents/{agentId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"agent": {
"id": "6a8dce4e65fd738c00d8927a",
"type": "web-monitor",
"name": "Regulator fines 2026",
"status": "initializing",
"config": {
"listName": "Regulator fines 2026",
"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.
Body
One or more of the agent type's own config fields (the same fields as its POST /business/agents/{type} body, without start). Keys are merged over the draft's saved config: omitted fields keep their value, arrays replace the stored array. Only drafts (status "initializing") are editable (409 AGENT_NOT_A_DRAFT otherwise); the merged config is re-validated against the type's schema (422 VALIDATION_FAILED) and unknown keys are dropped.
Response
Success
Show child attributes
Show child attributes