curl --request PATCH \
--url https://mcp.echozero.app/api/v1/agents/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-signature: <x-signature>' \
--header 'x-timestamp: <x-timestamp>' \
--data '
{
"name": "Updated name"
}
'{
"success": true,
"data": {
"id": "<string>",
"name": "<string>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
}
}Update agent
Mirrors GraphQL updateAgent (agentId from path).
Changing marketplaceMonthlyPrice recreates the Stripe Price so checkout matches the new amount.
Switching marketplacePricingModel to success-fee or free zeros leftover monthly price and archives the Stripe Price.
Request body schema: McpUpdateAgentBodyDto — see Schemas (#/components/schemas/McpUpdateAgentBodyDto). Nested: AgentPersonalizationInput, AgentFeeConfigurationInput.
curl --request PATCH \
--url https://mcp.echozero.app/api/v1/agents/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'x-signature: <x-signature>' \
--header 'x-timestamp: <x-timestamp>' \
--data '
{
"name": "Updated name"
}
'{
"success": true,
"data": {
"id": "<string>",
"name": "<string>"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
}
}{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "Resource not found"
}
}Authorizations
User JWT access token issued by POST /api/auth/verify or POST /api/auth/social/verify. Routes that accept both auth modes declare api-key and bearer-jwt security schemes.
Headers
Required for API-key authenticated requests. HMAC-SHA256(secretKey, timestamp + METHOD + path + body) as lowercase hex. Omit only for JWT/OAuth session tokens or public routes.
Required with x-signature. Epoch milliseconds; rejected if drift exceeds 5 minutes. Omit only for JWT/OAuth session tokens or public routes.
Path Parameters
Body
OpenAPI schema McpUpdateAgentBodyDto; agentId is taken from the path.
Display name (max 20 characters)
20DRAFT, ACTIVE, PAUSED, DELETED When setting status to PAUSED: required for private agents (true = close owner trades first, false = keep open). Optional for public agents.
subscription, success-fee, both, free x >= 00 <= x <= 22pending-review, beta, public, rejected x >= 1low, medium, high webhook, signal_group Per-agent hybrid parser: inherit (server env), off, shadow, or fallback.
inherit, off, shadow, fallback When true and signalSourceKind is webhook, rotate inbound signing secret (returned once on the agent payload)
API personality override for subscriber chat. Stored as personalization.apiOverride and takes precedence over portal defaults. Pass null to clear.
Show child attributes
Show child attributes
Rejected if changed after create (venue lock is immutable).
JUPITER, HYPERLIQUID, ONEINCH, ALL_PLATFORMS SOLANA, CHILIZ, FLOW, ARBITRUM, BASE, HYPERLIQUID x >= 1x >= 1