Skip to main content
POST
/
api
/
dev
/
trade-signals
curl --request POST \
  --url https://mcp.echozero.app/api/dev/trade-signals \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "developerAgentId": "507f1f77bcf86cd799439011",
  "action": "buy",
  "tokenAddress": "So11111111111111111111111111111111111111112",
  "amount": 100
}
'
{
  "success": true,
  "data": {
    "signalId": "sig_1234567890_abc12345",
    "status": "executed",
    "executionResult": {
      "success": true,
      "txHash": "<string>",
      "executedAmountUsd": 123,
      "errorMessage": "<string>",
      "executedAt": "2023-11-07T05:31:56Z"
    }
  }
}

Authorizations

x-api-key
string
header
required

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.

Body

application/json
developerAgentId
string
required

Developer agent ID

action
enum<string>
required
Available options:
buy,
sell
tokenAddress
string
required

Solana token address

amount
number
required

Trade amount in USD

idempotencyKey
string

When ≥8 characters, used to build a stable signalId (sig_api_<agentId>_<key>) so retries dedupe like Telegram message_id. Also accepted as metadata.idempotencyKey or context.idempotencyKey.

Maximum string length: 128
urgency
enum<string>
Available options:
low,
medium,
high
metadata
object

Arbitrary metadata

reasoning
string

Human-readable synthesis (e.g. parsed channel line summary).

context
object

Structured provenance / parser context

confidence
number

Confidence in [0, 1] (clamped server-side).

Required range: 0 <= x <= 1

Response

Demo signal stored.

success
boolean
required
Example:

true

data
object
required

Endpoint-specific payload