curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/agents/{agentId}/activate \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.tryfuse.ai/api/v1/business/agents/{agentId}/activate"
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}/activate', 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": "processing",
"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>"
}
}Start a draft agent (spends credits)
Starts a DRAFT agent and SPENDS CREDITS. It creates the agent’s results list, checks and deducts the balance, sets up the provider subscriptions and kicks off the first run; the agent moves through processing to active (a scrape stays processing until the scrape finishes). Only drafts can be activated: there is no resume in this API, so a started, paused, expired or failed agent answers 409 AGENT_NOT_A_DRAFT — to restart a paused agent, duplicate it and activate the copy. Nothing is created or spent when the draft’s expirationDate is not in the future (422 VALIDATION_FAILED), its name is already taken (409 LIST_NAME_TAKEN) or the balance is short (402 INSUFFICIENT_CREDITS). Any OTHER reason a config cannot be started (a source list with nothing to watch, a plan limit, a field the type’s schema refuses) is not classified at activation time and answers 500 UNEXPECTED_ERROR: create the agent with start: true instead, which reports those properly. Answers 202 with the agent as GET returns it; keep polling GET /business/agents/ until status settles.
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.409LIST_NAME_TAKEN—listNameis already used by one of your lists or agents. Pick another name.402INSUFFICIENT_CREDITS— The workspace does not have enough credits to start this agent. Nothing was created or spent.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 activation was rejected by validation: the draft’sexpirationDateis not in the future (fix it with PATCH, or duplicate the agent and set a new date), or the request itself failed this endpoint’s validation (agentIdmust be a 24-character hex id). No other config problem is reported here: see the 500 entry.422AGENT_SIGNAL_REJECTED— web-monitor only: the search provider refused thepromptas a searchable signal. Rewrite the prompt rather than retrying it.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. A config the activation cannot accept for any reason other than the expiry rule (a source list with nothing to watch, a plan limit, a field the type’s schema refuses) also lands here, because the agents service does not classify those at activation time. Retry later; quoterequest_idto support.
Requires one of the following token scopes: agents.
curl --request POST \
--url https://api.tryfuse.ai/api/v1/business/agents/{agentId}/activate \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://api.tryfuse.ai/api/v1/business/agents/{agentId}/activate"
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}/activate', 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": "processing",
"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.
Response
Success
Show child attributes
Show child attributes