Skip to main content
POST
/
api
/
admin
/
developer-agents
/
{id}
/
approve
curl --request POST \
  --url https://mcp.echozero.app/api/admin/developer-agents/{id}/approve \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{}'
{
  "success": true,
  "data": {
    "id": "<string>",
    "developerId": "<string>",
    "name": "<string>",
    "betaStatus": "<string>",
    "performanceStats": {},
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z",
    "description": "<string>",
    "strategyDescription": "<string>",
    "avatarUrl": "<string>",
    "tags": [
      "<string>"
    ],
    "monthlyPrice": 123,
    "successFeePercent": 123,
    "betaStartDate": "2023-11-07T05:31:56Z",
    "maxBetaUsers": 123,
    "webhookUrl": "<string>",
    "inboundSignalsHttpUrl": "<string>",
    "inboundWebhookSigningSecretReveal": "<string>",
    "connectedChannels": [
      {
        "channelId": "<string>",
        "channelUsername": "<string>",
        "channelName": "<string>",
        "channelIconUrl": "<string>",
        "memberCount": 123,
        "inviteUrl": "<string>",
        "verifiedAt": "2023-11-07T05:31:56Z",
        "linkedChatInput": "<string>",
        "lastVerificationError": "<string>",
        "lastVerificationErrorCode": "<string>"
      }
    ],
    "signalDetectionRule": {
      "buyKeywords": [
        "<string>"
      ],
      "sellKeywords": [
        "<string>"
      ],
      "longKeywords": [
        "<string>"
      ],
      "shortKeywords": [
        "<string>"
      ],
      "tpKeywords": [
        "<string>"
      ],
      "slKeywords": [
        "<string>"
      ],
      "leverageKeywords": [
        "<string>"
      ],
      "tokenPatterns": [
        "<string>"
      ],
      "strategyPrefix": "<string>",
      "cancelKeywords": [
        "<string>"
      ],
      "breakevenKeywords": [
        "<string>"
      ],
      "partialCloseKeywords": [
        "<string>"
      ],
      "breakoutAboveKeywords": [
        "<string>"
      ],
      "breakoutBelowKeywords": [
        "<string>"
      ],
      "entryZoneKeywords": [
        "<string>"
      ]
    },
    "signalExecutionDefaults": {
      "leverageMax": 63,
      "tradeSizeValue": 123,
      "stopLossMode": "<string>",
      "stopLossValue": 123,
      "stopLossAboveEntry": true,
      "takeProfitMode": "<string>",
      "takeProfitValue": 123,
      "takeProfitTiers": [
        {
          "closePercent": 123,
          "whenPositionPercent": 123
        }
      ],
      "signalOverridesDefaults": true,
      "maxPositionMode": "<string>",
      "maxPositionPct": 123,
      "maxOpenPositions": 123,
      "maxDailyLossMode": "<string>",
      "maxDailyLossPct": 123,
      "cooldownSeconds": 123,
      "maxTradesPerDay": 123,
      "trailingStop": true,
      "slippageMode": "<string>",
      "slippageTolerance": 123,
      "tokenWhitelist": [
        "<string>"
      ],
      "tokenBlacklist": [
        "<string>"
      ]
    },
    "membershipGated": true,
    "externalSignupUrl": "<string>"
  }
}

Authorizations

Authorization
string
header
required

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

x-signature
string

HMAC-SHA256 signature: HMAC-SHA256(secretKey, timestamp + METHOD + path + body). Optional -- when omitted, HMAC verification is skipped.

x-timestamp
string

Request timestamp in epoch milliseconds. Required when x-signature is provided. Rejected if drift exceeds 5 minutes.

Path Parameters

id
string
required

Body

application/json
notes
string

Review notes

safetyScore
number

Safety score (0-100)

Response

Agent approved for beta.

success
boolean
required
Example:

true

data
object
required

Endpoint-specific payload