Skip to main content

List signals

GET /api/signals/

List all signal definitions and pools. Example request
curl https://api.hyperoru.com/api/signals/
Example response
{
  "definitions": [
    { "id": 1, "name": "RSI Oversold", "type": "threshold", "enabled": true }
  ],
  "pools": [
    { "id": 1, "name": "Momentum Pool", "signals_count": 3 }
  ]
}

Create signal definition

POST /api/signals/definitions

Create a new signal definition.
name
string
required
Signal name.
type
string
required
Signal type (e.g. threshold, crossover, pattern).
config
object
required
Signal-specific configuration.
Example request
curl -X POST https://api.hyperoru.com/api/signals/definitions \
  -H "Content-Type: application/json" \
  -d '{"name": "RSI Oversold", "type": "threshold", "config": {"indicator": "rsi", "threshold": 30, "direction": "below"}}'
Example response
{
  "id": 1,
  "name": "RSI Oversold",
  "type": "threshold",
  "enabled": true
}

Get signal definition

GET /api/signals/definitions/

Retrieve a signal definition by ID.
signal_id
integer
required
Signal definition ID.
Example request
curl https://api.hyperoru.com/api/signals/definitions/1
Example response
{
  "id": 1,
  "name": "RSI Oversold",
  "type": "threshold",
  "config": { "indicator": "rsi", "threshold": 30, "direction": "below" }
}

Update signal definition

PUT /api/signals/definitions/

Update an existing signal definition.
signal_id
integer
required
Signal definition ID.
name
string
Updated name.
config
object
Updated configuration.
Example request
curl -X PUT https://api.hyperoru.com/api/signals/definitions/1 \
  -H "Content-Type: application/json" \
  -d '{"config": {"indicator": "rsi", "threshold": 25, "direction": "below"}}'
Example response
{
  "id": 1,
  "name": "RSI Oversold",
  "config": { "indicator": "rsi", "threshold": 25, "direction": "below" }
}

Delete signal definition

DELETE /api/signals/definitions/

Delete a signal definition.
signal_id
integer
required
Signal definition ID.
Example request
curl -X DELETE https://api.hyperoru.com/api/signals/definitions/1
Example response
{
  "status": "ok"
}

Create signal pool

POST /api/signals/pools

Create a new signal pool combining multiple signals.
name
string
required
Pool name.
signal_ids
integer[]
required
Signal definition IDs to include.
logic
string
Combination logic: and or or. Defaults to and.
Example request
curl -X POST https://api.hyperoru.com/api/signals/pools \
  -H "Content-Type: application/json" \
  -d '{"name": "Momentum Pool", "signal_ids": [1, 2], "logic": "and"}'
Example response
{
  "id": 1,
  "name": "Momentum Pool",
  "signals_count": 2
}

Get / Update / Delete signal pool

GET /api/signals/pools/

PUT /api/signals/pools/

DELETE /api/signals/pools/

pool_id
integer
required
Pool ID.
Example request
curl https://api.hyperoru.com/api/signals/pools/1
Example response
{
  "id": 1,
  "name": "Momentum Pool",
  "signal_ids": [1, 2],
  "logic": "and"
}

Trigger logs

GET /api/signals/trigger-logs

Get recent signal trigger events.
limit
integer
Max entries to return.
symbol
string
Filter by symbol.
Example request
curl "https://api.hyperoru.com/api/signals/trigger-logs?symbol=BTC&limit=20"
Example response
[
  { "signal_id": 1, "symbol": "BTC", "triggered_at": "2026-04-09T11:00:00Z", "value": 28.5 }
]

Signal states

GET /api/signals/states

Get the current evaluation state of all signals. Example request
curl https://api.hyperoru.com/api/signals/states
Example response
[
  { "signal_id": 1, "symbol": "BTC", "current_value": 55.3, "is_triggered": false }
]

Reset signal states

POST /api/signals/states/reset

Reset all signal states to their initial values. Example request
curl -X POST https://api.hyperoru.com/api/signals/states/reset
Example response
{
  "status": "ok",
  "reset_count": 15
}

Analyze metric

GET /api/signals/analyze

Analyze a metric or indicator for signal design.
metric
string
required
Metric name to analyze.
symbol
string
required
Symbol to analyze.
Example request
curl "https://api.hyperoru.com/api/signals/analyze?metric=rsi&symbol=BTC"
Example response
{
  "metric": "rsi",
  "symbol": "BTC",
  "current": 55.3,
  "mean": 50.2,
  "std_dev": 12.1,
  "percentile_5": 28.0,
  "percentile_95": 72.5
}

Backtest signal

GET /api/signals/backtest/

Run a backtest on a single signal definition.
signal_id
integer
required
Signal definition ID.
symbol
string
Symbol to backtest.
days
integer
Number of days to backtest over.
Example request
curl "https://api.hyperoru.com/api/signals/backtest/1?symbol=BTC&days=30"
Example response
{
  "signal_id": 1,
  "triggers": 12,
  "avg_return": 1.8,
  "win_rate": 0.67
}

Backtest preview

POST /api/signals/backtest-preview

Preview backtest results for a signal configuration without saving.
config
object
required
Signal configuration to test.
symbol
string
required
Symbol.
Example request
curl -X POST https://api.hyperoru.com/api/signals/backtest-preview \
  -H "Content-Type: application/json" \
  -d '{"config": {"indicator": "rsi", "threshold": 30}, "symbol": "BTC"}'
Example response
{
  "triggers": 8,
  "avg_return": 2.1,
  "win_rate": 0.75
}

Pool backtest

GET /api/signals/pool-backtest/

Run a backtest on a signal pool.
pool_id
integer
required
Pool ID.
Example request
curl "https://api.hyperoru.com/api/signals/pool-backtest/1?symbol=BTC&days=30"
Example response
{
  "pool_id": 1,
  "triggers": 5,
  "avg_return": 3.2,
  "win_rate": 0.80
}

Test signal

GET /api/signals/test/

Evaluate a signal against current market data.
signal_id
integer
required
Signal definition ID.
Example request
curl https://api.hyperoru.com/api/signals/test/1
Example response
{
  "signal_id": 1,
  "is_triggered": false,
  "current_value": 55.3,
  "threshold": 30
}

Create pool from config

POST /api/signals/create-pool-from-config

Create a signal pool from a JSON configuration.
config
object
required
Full pool configuration including signal definitions.
Example request
curl -X POST https://api.hyperoru.com/api/signals/create-pool-from-config \
  -H "Content-Type: application/json" \
  -d '{"name": "Quick Pool", "signals": [{"type": "threshold", "indicator": "rsi", "threshold": 30}]}'
Example response
{
  "pool_id": 2,
  "signals_created": 1
}

AI chat / AI chat stream

POST /api/signals/ai-chat

POST /api/signals/ai-chat-stream

Chat with AI for signal design assistance. The stream variant returns a task_id for SSE polling.
message
string
required
User message.
conversation_id
string
Existing conversation ID.
Example request
curl -X POST https://api.hyperoru.com/api/signals/ai-chat \
  -H "Content-Type: application/json" \
  -d '{"message": "Design a signal for BTC momentum breakouts"}'
Example response
{
  "response": "I recommend combining RSI and volume signals...",
  "conversation_id": "conv-sig-001"
}

AI conversations

GET /api/signals/ai-conversations

List signal AI conversations. Example request
curl https://api.hyperoru.com/api/signals/ai-conversations
Example response
[
  { "id": "conv-sig-001", "title": "BTC momentum signals", "created_at": "2026-04-09T10:00:00Z" }
]

Conversation messages

GET /api/signals/ai-conversations//messages

Get messages in a signal AI conversation.
conversation_id
string
required
Conversation ID.
Example request
curl https://api.hyperoru.com/api/signals/ai-conversations/conv-sig-001/messages
Example response
[
  { "role": "user", "content": "Design a signal for BTC momentum breakouts" },
  { "role": "assistant", "content": "I recommend combining RSI and volume signals..." }
]

Wallet tracking status

GET /api/signals/wallet-tracking/status

Get the status of wallet-based signal tracking. Example request
curl https://api.hyperoru.com/api/signals/wallet-tracking/status
Example response
{
  "enabled": true,
  "tracked_wallets": 5,
  "last_check": "2026-04-09T12:00:00Z"
}

Update wallet tracking runtime

PUT /api/signals/wallet-tracking/runtime

Update the wallet tracking runtime configuration.
enabled
boolean
Enable or disable tracking.
interval_seconds
integer
Polling interval.
Example request
curl -X PUT https://api.hyperoru.com/api/signals/wallet-tracking/runtime \
  -H "Content-Type: application/json" \
  -d '{"enabled": true, "interval_seconds": 30}'
Example response
{
  "status": "ok"
}

Sync / Clear wallet tracking token

POST /api/signals/wallet-tracking/token

Sync a token for wallet tracking.

DELETE /api/signals/wallet-tracking/token

Clear the wallet tracking token. Example request (sync)
curl -X POST https://api.hyperoru.com/api/signals/wallet-tracking/token \
  -H "Content-Type: application/json" \
  -d '{"token": "0xabc..."}'
Example response
{
  "status": "ok"
}