API reference

Family track record

GET/families/{family}/statsNo key needed

One family's track record

Returns one family's 20-year backtest record, the same block GET /families lists for it. An unknown family answers 404 unknown_family with the valid names in fix. No key is needed; keyless calls are limited per IP.

Authentication

No key needed. Without one the call is limited to 30 requests a minute per IP; with a key it counts against the key's limits instead.

Parameters

NameInTypeRequiredDescription
familypathstring (enum)yesOne of the five family identifiers: rising_wedge, falling_wedge, bullish_pennant, bearish_pennant, triangle. Anything else answers 404 unknown_family. One of rising_wedge, falling_wedge, bullish_pennant, bearish_pennant, triangle.

Request

curl "https://api.tradingpal.io/api/v1/families/falling_wedge/stats"

Response

JSON. The fields this route adds are below; every response also carries the envelope fields (api_version, as_of_session, data_version, source, disclaimer).

FieldTypeDescription
familystring (enum)Family identifier. One of rising_wedge, falling_wedge, bullish_pennant, bearish_pennant, triangle.
labelstringHuman-readable family name.
track_recordTrack recordThe family's 20-year record. Null when no record is sealed in the active manifest.

Example response

Response
{
  "api_version": "v1",
  "family": "falling_wedge",
  "label": "Falling wedge",
  "track_record": {
    "scope": "family",
    "family": "falling_wedge",
    "symbol": null,
    "win_rate_pct": 54,
    "sample_size": 1287,
    "wins": 695,
    "losses": 592,
    "avg_win_pct": 8.1,
    "avg_loss_pct": -4.2,
    "median_win_pct": 6.3,
    "avg_trade_pct": 2.4,
    "avg_r": 0.41,
    "expected_r": 0.41,
    "profit_factor": 1.61,
    "avg_hold_bars": 11.2,
    "backtest_range": [
      "2006-09-25",
      "2026-09-25"
    ],
    "measured": "Every detector-confirmed breakout … open trades are excluded.",
    "summary": "Falling wedge: 1,287 resolved trades from 2006-09-25 to 2026-09-25; 54% reached the target, average win +8.1%, average loss -4.2%, median win +6.3%."
  }
}

Errors

Errors are JSON with the Error shape; the fix field says what to do.

StatusCodeMeaningFix
429rate_limitedThe key passed 60 requests in a minute or 10,000 in a day, or a keyless caller passed 30 a minute from one IP.Wait details.retry_after_seconds, then retry. Cache the nightly answers; they do not change until the next session.
404unknown_familyThe {family} in the path is not one of the pattern families.Use one of rising_wedge, falling_wedge, bullish_pennant, bearish_pennant, triangle.