API Documentation
Query Harmonix harmonic pattern signals programmatically.
Overview
The Harmonix API provides programmatic access to harmonic pattern signals across stocks, ETFs, crypto, and futures. It supports the same filters available on the signals page — ticker search, interval, direction, pattern type, trend alignment, accuracy threshold, status, and distance from entry.
API access requires an active Pro subscription.
Base URL: https://harmonix.sh/api/v1
Authentication
All API requests require an API key passed in the Authorization header as a Bearer token.
Creating an API key:
- Go to your Profile page
- Under “API Access,” click “Create Key”
- Copy the key immediately — it won't be shown again
curl -H "Authorization: Bearer hx_sk_your_key_here" \ https://harmonix.sh/api/v1/signals
You can create up to 3 API keys. Revoke any key from your profile page at any time.
List Signals
/api/v1/signalsReturns a paginated list of harmonic pattern signals. All query parameters are optional — calling with no params returns the most recent signals across all tickers and intervals.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| ticker | string | Filter by ticker symbol (partial match, e.g., "AA" matches AAPL, AAL) |
| interval | string | 1d, 4h, or 1wk. Default: all intervals |
| direction | string | bullish or bearish |
| pattern | string | Comma-separated pattern names: bat, butterfly, crab, deep_crab, gartley, shark, cypher, five_0 |
| trend | string | Trend alignment: with or counter |
| min_accuracy | number | Minimum accuracy threshold (0–100). E.g., 80 = patterns with ≥80% accuracy |
| status | string | emerging or complete. Default: all |
| max_distance | number | Max % distance from entry price. E.g., 5 = within 5% of entry |
| sort | string | recent (default), accuracy, or rr |
| page | number | Page number. Default: 1 |
| page_size | number | Results per page (1–100). Default: 24 |
Response Format
Successful responses return a JSON object with signals, has_more, and page.
{
"signals": [
{
"ticker": "AAPL",
"pattern": "bat",
"direction": "bullish",
"status": "complete",
"detected_at": "2026-03-20",
"interval": "1d",
"accuracy": 0.92,
"rr_ratio": 3.52,
"entry": 185.50,
"stop_loss": 182.10,
"tp1": 190.20,
"tp2": 193.80,
"tp3": 198.50,
"prz_low": 184.80,
"prz_high": 186.20,
"last_price": 187.30,
"trend": "up",
"trend_alignment": "with",
"next_earnings": "2026-04-24",
"x_price": 170.50,
"x_time": "2026-02-10T00:00:00Z",
"a_price": 192.30,
"a_time": "2026-02-28T00:00:00Z",
"b_price": 183.40,
"b_time": "2026-03-07T00:00:00Z",
"c_price": 189.60,
"c_time": "2026-03-14T00:00:00Z",
"d_price": 185.50,
"d_time": "2026-03-20T00:00:00Z",
"d_projected_low": null,
"d_projected_high": null
}
],
"has_more": true,
"page": 1
}For emerging patterns, d_price and d_time will be null, and d_projected_low / d_projected_high will contain the projected completion zone.
Error Codes
| Status | Meaning |
|---|---|
| 200 | Success |
| 401 | Missing, invalid, or revoked API key |
| 403 | API access requires an active Pro subscription |
| 500 | Internal server error |
Error responses include a JSON body:
{ "error": "Missing API key. Use Authorization: Bearer hx_sk_..." }Examples
List all recent signals:
curl -H "Authorization: Bearer hx_sk_your_key" \ https://harmonix.sh/api/v1/signals
Filter by ticker and interval:
curl -H "Authorization: Bearer hx_sk_your_key" \ "https://harmonix.sh/api/v1/signals?ticker=AAPL&interval=4h"
Emerging bullish patterns with high accuracy:
curl -H "Authorization: Bearer hx_sk_your_key" \ "https://harmonix.sh/api/v1/signals?status=emerging&direction=bullish&min_accuracy=85"
Signals within 5% of entry, sorted by R/R:
curl -H "Authorization: Bearer hx_sk_your_key" \ "https://harmonix.sh/api/v1/signals?max_distance=5&sort=rr"
Paginate through results:
curl -H "Authorization: Bearer hx_sk_your_key" \ "https://harmonix.sh/api/v1/signals?page=2&page_size=50"