BOREARIS
API

Trading research API, the same data as our website

Key levels, short-term and swing signals and published performance, delivered as JSON straight into your platform. Field names are always English and text comes in English or Chinese; everything updates with the website every 30 minutes. Most data vendors hide this behind a demo call. Our samples and field reference are right here.

Request a trial key See sample JSON
QUICK START

Gold key levels in one request

curl -H "X-API-Key: YOUR_KEY" https://borearis.com/api/v1/levels/xauusd

Send your key in the X-API-Key header (an ?api_key= parameter also works, but the header is safer). Add ?lang=zh for Chinese text; numbers are identical.

ENDPOINTS

What you can get

EndpointReturnsUpdates
GET /api/v1/instrumentsAll markets: id, symbol, name, asset class, digits30 min
GET /api/v1/levelsLevel summary for every market: bias, pivot, targets 1–2, state30 min
GET /api/v1/levels/{id}Full levels for one market: intraday and daily, 3 support and resistance tiers, expected move, headline, preference, alternative scenario and comment. Use the id or the symbol from the instrument list (xauusd or XAUUSD)30 min
GET /api/v1/signals/shortShort-term signals (30-minute): open plus the last 100 closed, with resultson candle close
GET /api/v1/signals/swingSwing signals (1-hour and 4-hour): open and recently closedon candle close
GET /api/v1/performancePerformance: backtest and price replay, by asset class and by monthdaily
SAMPLE JSON

Real output, not mock data

This is what the API returned when this page was built (2026-10-28 17:04 UTC+8); long lists are trimmed.

GET /api/v1/levels/xauusd
{
  "api_version": "1.0",
  "generated": "2026-10-28T17:04:30+08:00",
  "language": "en",
  "disclaimer": "For information only, not investment advice. Trading involves risk.",
  "data": {
    "id": "xauusd",
    "symbol": "XAUUSD",
    "name": "Gold (XAU/USD)",
    "asset_class": "metal",
    "digits": 2,
    "price": 4052.52,
    "price_time": "2026-10-28T17:30:00+08:00",
    "market_open": true,
    "updated": "2026-10-28T17:03:01+08:00",
    "views": {
      "intraday": {
        "timeframe": "30m",
        "bias": "bearish",
        "state": "edge",
        "valid": true,
        "pivot": 4062.44,
        "target_1": 3991.32,
        "target_2": 3972.8,
        "opposite_1": 4093.62,
        "opposite_2": 4112.18,
        "resistance": [
          4062.44,
          4093.62,
          4112.18
        ],
        "support": [
          3991.32,
          3972.8,
          3954.29
        ],
        "expected_move": "1.97%",
        "headline": "On the edge of pivot level",
        "preference": "Below 4,062.44, look for a move towards 3,991.32.",
        "alternative": "Above 4,062.44, expect 4,093.62 and 4,112.18.",
        "comment": "The price is approaching our pivot level at a critical juncture, leaving little room for the asset to reverse its current trajectory. RSI is at 59 and MACD is above its signal line."
      },
      "daily": {
        "timeframe": "1d",
        "bias": "bearish",
        "state": "ok",
        "valid": true,
        "pivot": 4446.08,
        "target_1": 3799.26,
        "target_2": 3636.17,
        "opposite_1": 4726.72,
        "opposite_2": 4893.77,
        "resistance": [
          4446.08,
          4726.72,
          4893.77
        ],
        "support": [
          3799.26,
          3636.17,
          3473.08
        ],
        "expected_move": "10.27%",
        "headline": "Target level as a potential turning point",
        "preference": "Below 4,446.08, look for a move towards 3,799.26.",
        "alternative": "Above 4,446.08, expect 4,726.72 and 4,893.77.",
        "comment": "Price is approaching our first target at 3,799.26, which may trigger a pullback; a clear break below it would open the way to 3,636.17. RSI is at 41 and MACD is below its signal line."
      }
    },
    "url": "https://borearis.com/en/analysis/xauusd/"
  }
}
GET /api/v1/levels
{
  "api_version": "1.0",
  "generated": "2026-10-28T17:04:30+08:00",
  "language": "en",
  "disclaimer": "For information only, not investment advice. Trading involves risk.",
  "count": 92,
  "data": [
    {
      "id": "alibaba",
      "symbol": "BABA",
      "name": "Alibaba (BABA)",
      "price": 100.12,
      "market_open": false,
      "intraday": {
        "bias": "bearish",
        "state": "ok",
        "pivot": 101.49,
        "target_1": 98.36,
        "target_2": 97.53,
        "valid": true
      },
      "daily": {
        "bias": "bearish",
        "state": "ok",
        "pivot": 105.04,
        "target_1": 92.46,
        "target_2": 89.03,
        "valid": true
      }
    },
    {
      "id": "alphabet",
      "symbol": "GOOGL",
      "name": "Alphabet (GOOGL)",
      "price": 320.54,
      "market_open": false,
      "intraday": {
        "bias": "bullish",
        "state": "ok",
        "pivot": 318.74,
        "target_1": 325.92,
        "target_2": 327.94,
        "valid": true
      },
      "daily": {
        "bias": "bearish",
        "state": "ok",
        "pivot": 334.93,
        "target_1": 304.32,
        "target_2": 296.44,
        "valid": true
      }
    },
    {
      "id": "amazon",
      "symbol": "AMZN",
      "name": "Amazon (AMZN)",
      "price": 253.12,
      "market_open": false,
      "intraday": {
        "bias": "bullish",
        "state": "ok",
        "pivot": 248.82,
        "target_1": 255.87,
        "target_2": 257.77,
        "valid": true
      },
      "daily": {
        "bias": "bearish",
        "state": "ok",
        "pivot": 259.68,
        "target_1": 231.67,
        "target_2": 224.34,
        "valid": true
      }
    }
  ]
}
GET /api/v1/signals/short
{
  "api_version": "1.0",
  "generated": "2026-10-28T17:04:30+08:00",
  "language": "en",
  "disclaimer": "For information only, not investment advice. Trading involves risk.",
  "count": 430,
  "open": [
    {
      "id": "dogeusdt-1793176200",
      "type": "short",
      "symbol": "DOGEUSD",
      "name": "Dogecoin",
      "category": "crypto",
      "direction": "sell",
      "signal_time": "2026-10-28T16:30:00+08:00",
      "entry_type": "limit",
      "entry": 0.08073,
      "stop_loss": 0.08153,
      "take_half": 0.08032,
      "target": 0.0787,
      "risk_reward": "1:2.5",
      "exit_style": "scale_out",
      "status": "pending_order",
      "status_text": "Limit order pending",
      "result_r": null,
      "result_points": null,
      "closed_time": null,
      "timeframe": "30m",
      "url": "https://borearis.com/en/analysis/dogecoin/",
      "tracking": "live"
    },
    {
      "id": "gbpjpy-1793174400",
      "type": "short",
      "symbol": "GBPJPY",
      "name": "GBP/JPY",
      "category": "fx",
      "direction": "sell",
      "signal_time": "2026-10-28T16:00:00+08:00",
      "entry_type": "limit",
      "entry": 209.645,
      "stop_loss": 209.883,
      "take_half": null,
      "target": 208.931,
      "risk_reward": "1:3",
      "exit_style": "single_exit",
      "status": "open",
      "status_text": "Open",
      "result_r": null,
      "result_points": null,
      "closed_time": null,
      "timeframe": "30m",
      "url": "https://borearis.com/en/analysis/gbpjpy/",
      "tracking": "live"
    }
  ],
  "recent_closed": [
    {
      "id": "usdcad-1793095200",
      "type": "short",
      "symbol": "USDCAD",
      "name": "USD/CAD",
      "category": "fx",
      "direction": "sell",
      "signal_time": "2026-10-27T18:00:00+08:00",
      "entry_type": "limit",
      "entry": 1.40158,
      "stop_loss": 1.40273,
      "take_half": null,
      "target": 1.39813,
      "risk_reward": "1:3",
      "exit_style": "single_exit",
      "status": "stopped_out",
      "status_text": "Stopped out",
      "result_r": -1.16,
      "result_points": "−13.3 pips",
      "closed_time": "2026-10-27T21:00:00+08:00",
      "timeframe": "30m",
      "url": "https://borearis.com/en/analysis/usdcad/",
      "tracking": "live"
    },
    {
      "id": "usdjpy-1793091600",
      "type": "short",
      "symbol": "USDJPY",
      "name": "USD/JPY",
      "category": "fx",
      "direction": "sell",
      "signal_time": "2026-10-27T17:00:00+08:00",
      "entry_type": "limit",
      "entry": 157.692,
      "stop_loss": 157.875,
      "take_half": null,
      "target": 157.143,
      "risk_reward": "1:3",
      "exit_style": "single_exit",
      "status": "stopped_out",
      "status_text": "Stopped out",
      "result_r": -1.08,
      "result_points": "−19.8 pips",
      "closed_time": "2026-10-27T21:30:00+08:00",
      "timeframe": "30m",
      "url": "https://borearis.com/en/analysis/usdjpy/",
      "tracking": "live"
    }
  ]
}
GET /api/v1/signals/swing
{
  "api_version": "1.0",
  "generated": "2026-10-28T17:04:30+08:00",
  "language": "en",
  "disclaimer": "For information only, not investment advice. Trading involves risk.",
  "count": 4,
  "open": [
    {
      "id": "usdcnh-1793145600",
      "type": "swing",
      "symbol": "USDCNH",
      "name": "USD/CNH",
      "category": "fx",
      "direction": "buy",
      "signal_time": "2026-10-28T08:00:00+08:00",
      "entry_type": "market",
      "entry": 6.665,
      "stop_loss": 6.65443,
      "take_half": 6.67029,
      "target": 6.67782,
      "risk_reward": "1:1.2",
      "exit_style": "scale_out",
      "status": "open",
      "status_text": "Open",
      "result_r": null,
      "result_points": null,
      "closed_time": null,
      "strong": false,
      "timeframe": "4h",
      "url": "https://borearis.com/en/analysis/usdcnh/",
      "tracking": "live"
    },
    {
      "id": "cucusd-1793102400",
      "type": "swing",
      "symbol": "COPPER",
      "name": "Copper",
      "category": "commodity",
      "direction": "buy",
      "signal_time": "2026-10-27T20:00:00+08:00",
      "entry_type": "limit",
      "entry": 6.4871,
      "stop_loss": 6.3632,
      "take_half": 6.5615,
      "target": 6.6111,
      "risk_reward": "1:1",
      "exit_style": "scale_out",
      "status": "pending_order",
      "status_text": "Limit order pending",
      "result_r": null,
      "result_points": null,
      "closed_time": null,
      "strong": false,
      "timeframe": "4h",
      "url": "https://borearis.com/en/analysis/copper/",
      "tracking": "live"
    }
  ],
  "recent_closed": []
}
GET /api/v1/performance
{
  "api_version": "1.0",
  "generated": "2026-10-28T17:04:30+08:00",
  "language": "en",
  "disclaimer": "For information only, not investment advice. Trading involves risk.",
  "data": {
    "short": {
      "backtest": {
        "signals": 2501,
        "win_rate": 65.1,
        "avg_r": 0.197,
        "from": "2024-10",
        "to": "2026-10"
      },
      "price_replay": {
        "signals": 378,
        "win_rate": 65.1,
        "avg_r": 0.193
      },
      "by_category": {
        "gold": {
          "signals": 780,
          "win_rate": 71.2,
          "avg_r": 0.15
        },
        "fx": {
          "signals": 759,
          "win_rate": 47.6,
          "avg_r": 0.242
        },
        "crypto": {
          "signals": 962,
          "win_rate": 73.9,
          "avg_r": 0.2
        }
      },
      "monthly": [
        {
          "month": "2024-11",
          "sum_r": 7.3,
          "signals": 32
        },
        {
          "month": "2024-12",
          "sum_r": 11.7,
          "signals": 106
        },
        {
          "month": "2025-01",
          "sum_r": 26.2,
          "signals": 143
        },
        {
          "month": "2025-02",
          "sum_r": 51.3,
          "signals": 126
        },
        {
          "month": "2025-03",
          "sum_r": 21.1,
          "signals": 99
        },
        {
          "month": "2025-04",
          "sum_r": 11.3,
          "signals": 86
        },
        {
          "month": "2025-05",
          "sum_r": 2.5,
          "signals": 95
        },
        {
          "month": "2025-06",
          "sum_r": -4.5,
          "signals": 80
        },
        {
          "month": "2025-07",
          "sum_r": 43.4,
          "signals": 129
        },
        {
          "month": "2025-08",
          "sum_r": 9.2,
          "signals": 99
        },
        {
          "month": "2025-09",
          "sum_r": 27.5,
          "signals": 136
        },
        {
          "month": "2025-10",
          "sum_r": 19.8,
          "signals": 186
        },
        {
          "month": "2025-11",
          "sum_r": 28.4,
          "signals": 92
        },
        {
          "month": "2025-12",
          "sum_r": 22.5,
          "signals": 84
        },
        {
          "month": "2026-01",
          "sum_r": 33.7,
          "signals": 173
        },
        {
          "month": "2026-02",
          "sum_r": 23.6,
          "signals": 111
        },
        {
          "month": "2026-03",
          "sum_r": -2.7,
          "signals": 67
        },
        {
          "month": "2026-04",
          "sum_r": 22.3,
          "signals": 71
        },
        {
          "month": "2026-05",
          "sum_r": 22.2,
          "signals": 108
        },
        {
          "month": "2026-06",
          "sum_r": 37.4,
          "signals": 125
        },
        {
          "month": "2026-07",
          "sum_r": 15.3,
          "signals": 53
        },
        {
          "month": "2026-08",
          "sum_r": 46.6,
          "signals": 140
        },
        {
          "month": "2026-09",
          "sum_r": 14.6,
          "signals": 93
        },
        {
          "month": "2026-10",
          "sum_r": 2.4,
          "signals": 67
        }
      ]
    },
    "swing": {
      "backtest": {
        "signals": 1668,
        "win_rate": 73.2,
        "avg_r": 0.171,
        "from": "2024-03",
        "to": "2026-10"
      },
      "price_replay": {
        "signals": 515,
        "win_rate": 72.0,
        "avg_r": 0.114
      },
      "by_category": {
        "gold": {
          "signals": 849,
          "win_rate": 73.3,
          "avg_r": 0.152
        },
        "crypto": {
          "signals": 146,
          "win_rate": 74.0,
          "avg_r": 0.172
        },
        "fx": {
          "signals": 326,
          "win_rate": 75.2,
          "avg_r": 0.143
        },
        "index": {
          "signals": 81,
          "win_rate": 69.1,
          "avg_r": 0.149
        },
        "commodity": {
          "signals": 76,
          "win_rate": 69.7,
          "avg_r": 0.217
        },
        "stock": {
          "signals": 190,
          "win_rate": 72.1,
          "avg_r": 0.297
        }
      },
      "monthly": [
        {
          "month": "2024-03",
          "signals": 1,
          "wins": 1,
          "sum_r": 0.5
        },
        {
          "month": "2024-04",
          "signals": 2,
          "wins": 2,
          "sum_r": 0.53
        },
        {
          "month": "2024-06",
          "signals": 2,
          "wins": 1,
          "sum_r": 0.33
        },
        {
          "month": "2024-07",
          "signals": 1,
          "wins": 1,
          "sum_r": 0.27
        },
        {
          "month": "2024-08",
          "signals": 5,
          "wins": 4,
          "sum_r": 0.83
        },
        {
          "month": "2024-09",
          "signals": 15,
          "wins": 11,
          "sum_r": 2.42
        },
        {
          "month": "2024-10",
          "signals": 22,
          "wins": 19,
          "sum_r": 7.74
        },
        {
          "month": "2024-11",
          "signals": 18,
          "wins": 16,
          "sum_r": 4.56
        },
        {
          "month": "2024-12",
          "signals": 20,
          "wins": 12,
          "sum_r": -2.57
        },
        {
          "month": "2025-01",
          "signals": 38,
          "wins": 24,
          "sum_r": 2.74
        },
        {
          "month": "2025-02",
          "signals": 50,
          "wins": 36,
          "sum_r": 1.49
        },
        {
          "month": "2025-03",
          "signals": 62,
          "wins": 48,
          "sum_r": 20.19
        },
        {
          "month": "2025-04",
          "signals": 93,
          "wins": 64,
          "sum_r": 12.6
        },
        {
          "month": "2025-05",
          "signals": 31,
          "wins": 23,
          "sum_r": 5.92
        },
        {
          "month": "2025-06",
          "signals": 45,
          "wins": 30,
          "sum_r": -1.73
        },
        {
          "month": "2025-07",
          "signals": 62,
          "wins": 50,
          "sum_r": 14.36
        },
        {
          "month": "2025-08",
          "signals": 55,
          "wins": 41,
          "sum_r": 11.09
        },
        {
          "month": "2025-09",
          "signals": 109,
          "wins": 82,
          "sum_r": 25.87
        },
        {
          "month": "2025-10",
          "signals": 141,
          "wins": 104,
          "sum_r": 20.05
        },
        {
          "month": "2025-11",
          "signals": 76,
          "wins": 56,
          "sum_r": 15.13
        },
        {
          "month": "2025-12",
          "signals": 82,
          "wins": 61,
          "sum_r": 6.19
        },
        {
          "month": "2026-01",
          "signals": 157,
          "wins": 125,
          "sum_r": 57.1
        },
        {
          "month": "2026-02",
          "signals": 108,
          "wins": 72,
          "sum_r": 1.4
        },
        {
          "month": "2026-03",
          "signals": 64,
          "wins": 49,
          "sum_r": 18.22
        },
        {
          "month": "2026-04",
          "signals": 40,
          "wins": 26,
          "sum_r": 4.61
        },
        {
          "month": "2026-05",
          "signals": 54,
          "wins": 37,
          "sum_r": 1.24
        },
        {
          "month": "2026-06",
          "signals": 94,
          "wins": 73,
          "sum_r": 26.95
        },
        {
          "month": "2026-07",
          "signals": 63,
          "wins": 41,
          "sum_r": 4.57
        },
        {
          "month": "2026-08",
          "signals": 60,
          "wins": 45,
          "sum_r": 17.1
        },
        {
          "month": "2026-09",
          "signals": 59,
          "wins": 37,
          "sum_r": -4.12
        },
        {
          "month": "2026-10",
          "signals": 39,
          "wins": 30,
          "sum_r": 10.45
        }
      ]
    },
    "notes": {
      "win_rate": "percent of signals that closed with a profit (after spreads)",
      "avg_r": "average result in R; 1R = the distance from entry to stop loss",
      "backtest": "historical simulation",
      "price_replay": "replayed on real broker prices",
      "live": "signals published after launch are listed one by one in /signals/*"
    }
  }
}
GET /api/v1/instruments
{
  "api_version": "1.0",
  "generated": "2026-10-28T17:04:30+08:00",
  "language": "en",
  "disclaimer": "For information only, not investment advice. Trading involves risk.",
  "count": 92,
  "data": [
    {
      "id": "alibaba",
      "symbol": "BABA",
      "name": "Alibaba (BABA)",
      "asset_class": "stock",
      "digits": 2,
      "url": "https://borearis.com/en/analysis/alibaba/"
    },
    {
      "id": "alphabet",
      "symbol": "GOOGL",
      "name": "Alphabet (GOOGL)",
      "asset_class": "stock",
      "digits": 2,
      "url": "https://borearis.com/en/analysis/alphabet/"
    },
    {
      "id": "amazon",
      "symbol": "AMZN",
      "name": "Amazon (AMZN)",
      "asset_class": "stock",
      "digits": 2,
      "url": "https://borearis.com/en/analysis/amazon/"
    },
    {
      "id": "apple",
      "symbol": "AAPL",
      "name": "Apple (AAPL)",
      "asset_class": "stock",
      "digits": 2,
      "url": "https://borearis.com/en/analysis/apple/"
    }
  ]
}
FIELD REFERENCE

What each field means

views.intraday / views.dailyTwo views: intraday (30-minute) and short-term (daily)
biasbullish or bearish
pivotThe line in the sand: a close through it invalidates the view and a new set of levels is drawn
target_1, target_2First and second targets in the direction of the view
opposite_1, opposite_2The two levels in play the other way if the pivot fails
resistance / supportThree tiers each, nearest first
stateok / edge (near the pivot) / reached (target 1 hit) / broken (pivot breached)
validfalse = targets are too far from price (e.g. after a sharp move); we suggest hiding it
expected_movePips to targets 1–2 for FX; percent to target 2 for everything else
headline, preference, alternative, commentText in English or Chinese, depending on lang
market_openfalse = no quote for over 3 hours (market closed)
typeshort (30-minute) or swing (1-hour and 4-hour)
directionbuy or sell
entry_typemarket, or limit (fills only when price gets there)
entry, stop_loss, take_half, targetEntry, stop, take-half price and target; breakout signals have no take_half (null)
risk_rewardRisk-reward, e.g. 1:3 (target distance ÷ stop distance)
exit_stylescale_out or single_exit
statuswaiting_for_open, pending_order, open, half_closed, target_hit, stopped_out, break_even, expired
result_rResult in R (1R = entry-to-stop distance), after spreads; null while open
result_pointsThe result in pips, points or dollars
trackinglive (tracked since launch) or replay (re-run on real prices before launch)
strongStrong swing signal
KEYS, LIMITS, ERRORS

Before you integrate

Keys

One key per platform, sent in the X-API-Key header. Keep it server-side; never ship it in web or app front-end code.

Rate limits

60 requests per minute per key, with a burst of 20. Data changes every 30 minutes, so cache on your side and poll every 5–10 minutes. Higher limits are available on request.

Errors

401Missing, invalid or revoked key
404Unknown endpoint or market id
429Rate limit exceeded; retry later

Errors are JSON too: {"error": "invalid_key"}

What is not included

Results only, never the model: no formulas, rules or filters, and no floating P&L on open signals. Third-party data such as the economic calendar is not included for now.

FAQ

Is the API data the same as the website?

Yes. The key level cards, signal pages and the API come from the same calculation, so the numbers always match. The samples on this page are real output from the latest build.

How often is it updated?

Key levels every 30 minutes; short-term signals after each 30-minute candle closes; swing signals after 1-hour and 4-hour candles close. The API updates together with the website.

Do you share the model or its rules?

No. We deliver results only: levels, direction, status and performance. No formulas, filters or rules.

How do I get a key, and what does it cost?

Fill in the trial request page with your platform type and use case (or email [email protected]) and we will issue a 30-day trial key. Pricing depends on markets, volume and delivery method.

Start with a trial key and one marketTell us your platform and use case; we will email you Request a key

All data is for information only and is not investment advice. Trading involves risk.