Acuity Technical Analysis Patterns API
This document provides an overview of the Technical Analysis Patterns API, including supported pattern types, the request model and the response structure.
Basic Concepts
The Technical Analysis Patterns API returns pattern-driven trade ideas derived from classical chart-pattern detection over OHLC price data. In the API, these ideas are represented as Pattern reports containing both trade setup fields and a nested PatternData object describing the detected chart formation.
The API supports filtering by:
- date range
- language
- asset class
- asset identifiers
- period
- report type
The following classes are supported:
- Equity
- Currency Pairs
- Commodity
- Index
- Coins
Supported price data granularities:
- 1H
- 4H
- 1D
The following periods are supported by the API:
- intraday
- short-term
- medium-term
Supported Pattern Types
Zig Zag Patterns
- Double Top
- Double Bottom
- Triple Top
- Triple Bottom
- Head And Shoulders
- Inverse Head And Shoulders
Continuation Patterns
- Bullish Flag
- Bearish Flag
- Bullish Pennant
- Bearish Pennant
- Bullish Continuation Wedge
- Bearish Continuation Wedge
- Bullish Reversal Wedge
- Bearish Reversal Wedge
Triangle Patterns
- Ascending Triangle Continuation
- Descending Triangle Continuation
- Symmetrical Triangle Bullish Continuation
- Symmetrical Triangle Bullish Reversal
- Symmetrical Triangle Bearish Continuation
- Symmetrical Triangle Bearish Reversal
Rectangle Patterns
- Rectangle Bullish Continuation
- Rectangle Bullish Reversal
- Rectangle Bearish Continuation
- Rectangle Bearish Reversal
Pattern Family Codes
|
Family code |
Meaning inferred from source materials |
|---|---|
|
ASC_TRIANGLE_CONT |
Ascending Triangle Continuation |
|
DESC_TRIANGLE_CONT |
Descending Triangle Continuation |
|
CONT_WEDGE |
Continuation Wedge |
|
REV_WEDGE |
Reversal Wedge |
|
DB |
Double Bottom |
|
FLAG |
Flag |
|
HS |
Head And Shoulders |
|
IHS |
Inverse Head And Shoulders |
|
PENNANT |
Pennant |
|
RECTANGLE_BEAR_CONT |
Rectangle Bearish Continuation |
|
RECTANGLE_BEAR_REV |
Rectangle Bearish Reversal |
|
RECTANGLE_BULL_CONT |
Rectangle Bearish Continuation |
|
RECTANGLE_BULL_REV |
Rectangle Bullish Reversal |
|
SYM_TRIANGLE_BEAR_CONT |
Symmetrical Triangle Bearish Continuation |
|
SYM_TRIANGLE_BEAR_REV |
Symmetrical Triangle Bearish Reversal |
|
SYM_TRIANGLE_BULL_CONT |
Symmetrical Triangle Bullish Continuation |
|
SYM_TRIANGLE_BULL_REV |
Symmetrical Triangle Bullish Reversal |
|
TB |
Triple Bottom |
|
TT |
Triple Top |
|
DT |
Double Top |
Supported Languages
The request model defines LanguageCode and lists these supported values:
|
Language |
LanguageCode |
|---|---|
|
Arabic |
ar-ae |
|
German |
de-de |
|
English |
en-gb |
|
Spanish |
es-es |
|
Farsi |
fa-ir |
|
Hindi |
hi-in |
|
Indonesian |
id-id |
|
Italian |
it-it |
|
French |
fr-fr |
|
Japanese |
ja-jp |
|
Malay |
ms-my |
|
Dutch |
nl-nl |
|
Norwegian Bokmal |
nb-no |
|
Polish |
pl-pl |
|
Portuguese |
pt-pt |
|
Brazilian Portuguese |
pt-br |
|
Russian |
ru-ru |
|
Swedish |
sv-se |
|
Turkish |
tr-tr |
|
Vietnamese |
vi-vn |
|
Simplified Chinese |
zh-cn |
REST API
Documentation
- Overview: https://api.acuitytrading.com/
- Swagger URL: https://api.acuitytrading.com/swagger/index.html
- Endpoint: POST /api/AcuityEvents
Authentication
- Documentation URL: https://api.acuitytrading.com/Security
Exchange your username and password for a Bearer token that you can pass with any request. The token is valid for 14 days.
Sample Request
curl --location "https://api.acuitytrading.com/api/signalcentrereports"
--header "Authorization: Bearer eyJhbGciO6IkpXVCJ9.eyJzdWIcmlkIjoiNTQxIiwiaHR0cDovL3NjaGVtYXMuYWN1aXR5dHJhZGluZy5jb20vd3MvMjAxMy8wOC9pZGVudGl0eS9jbGFpbXMvYXBpa2V5IjoiN2U0MzLTU3NTktNDg0OS1hZTFjLWZlMWNhN2Q4ZWNiNCIsImlhdCI6MTc3NDM2ODg5MiwibmJmIjoxNzc0MzY4ODkyLCJleHAiOjE3NzU1Nzg0OTIsImlzcyI6IkFjdWl0eSIsImF1ZCI6IkFjdWl0eUF1ZGllbmNlIn0.5_vPvyUI5m_8GA3I_qqJ90aXlMgcZ5AetiieSuGDM00"
--header "Content-Type: application/json"
--data "{
\"StartDate\": \"2026-03-19T16:09:11+01:00\",
\"EndDate\": \"2026-03-26T16:09:11+01:00\",
\"LanguageCode\": \"en-gb\",
\"IncludeExpired\": true,
\"Count\": 100,
\"ReportTypes\": [3]
}"
Sample Response
[
{
"Report": {
"PatternData": {
"id": "b7aab3d5-e842-4b73-a0d3-29e4b2dae097",
"Granularity": "1h",
"Family": "PENNANT",
"start_time": "2026-03-23T15:00:00",
"start_price": 305.92,
"confirmation_time": "2026-03-26T13:00:00",
"confirmation_price": 289.4949,
"specific_data": {
"support_slope": "0.054980468749964595",
"support_intercept": "289.22",
"resist_slope": "-0.19498413085940988",
"resist_intercept": "292.18",
"tip_time": "2026-03-25 15:00:00",
"tip_price": "289.22",
"flag_width": "5",
"flag_height": "2.9599999999999795",
"pole_width": "14",
"pole_height": "16.69999999999999"
},
"trade_end_time": null,
"trade_end_price": null,
"wait": 5
},
"id": "51457e4d-dcb4-461e-b26d-908047c05632",
"group_id": "80590d3b-ab95-407f-9034-10c6149eb911",
"product_id": "4493d5df-d46d-491e-842e-bd8e4354d34f",
"period_id": "53149989-5570-4906-a7ac-04a10a0a0a0a",
"direction": 1,
"action": 1,
"direction_text": "Bearish",
"action_text": "SELL",
"buy_target_1": null,
"sell_target_1": 274.6,
"stop": 291.79,
"expiry": "2026-03-26T19:00:00",
"live_time": "2026-03-26T14:00:00",
"status": 9,
"status_text": "Live Trade",
"original_status": 13,
"original_status_text": "Sell Stop",
"created": "2026-03-26T14:00:00",
"modified": "2026-03-26T15:07:54.7",
"modifiedUtc": "2026-03-26T15:07:54.7",
"buy_entry_target_1": null,
"sell_entry_target_1": 286.06,
"is_closed": 0
},
"Product": {
"id": "4493d5df-d46d-491e-842e-bd8e4354d34f",
"name": "Alphabet Inc. Cl A",
"slug": "Alphabet Inc. Cl A"
},
"id": "51457e4d-dcb4-461e-b26d-908047c05632",
"language": "en-gb",
"ReportType": "Pattern",
"AssetId": 113264,
"AssetClassId": 6,
"Group": {
"id": "80590d3b-ab95-407f-9034-10c6149eb911",
"category_id": "80590d3b-ab95-407f-9034-10c6149eb911",
"name": "Equity",
"slug": "Equity",
"Category": {
"id": "80590d3b-ab95-407f-9034-10c6149eb911",
"name": "Equity",
"slug": "Equity"
}
},
"Period": {
"id": "53149989-5570-4906-a7ac-04a10a0a0a0a",
"name": "Intraday",
"slug": "intraday"
},
"Phrase": [
"The Pennant is a short-term continuation pattern that develops after a strong directional move, symbolizing a pause in momentum. It resembles a small symmetrical triangle formed by converging trendlines as volatility temporarily contracts.",
"The pattern shows that both buyers and sellers are waiting for new direction following an impulsive move.",
"A breakout in the direction of the prior trend validates the pattern and signals continuation.",
"Price objectives are often set by adding or subtracting the length of the prior move (the flagpole) from the breakout level."
]
}
]
Request model
|
Field |
Type |
Required |
Description |
|---|---|---|---|
|
StartDate |
string, date-time |
false |
Start date for the retrieval window. |
|
EndDate |
string, date-time |
false |
End date for the retrieval window. |
|
LanguageCode |
string |
false |
Language code. Defaults to en-gb. |
|
AssetClassId |
integer |
false |
Asset class ID. |
|
AssetIds |
array of integers |
false |
Optional list of asset IDs. |
|
IncludeExpired |
boolean |
false |
Whether to include expired reports. |
|
IncludePerformance |
boolean |
false |
Whether to include performance data. |
|
Period |
string |
false |
Period filter. The following values are supported: intraday and short-term. |
|
Count |
integer |
false |
Item limit. Default 100, maximum 1000. |
|
ReportTypes |
array |
false |
Report type filter. The following items are supported: 0 HumanDriven, 1 AIDriven, and 3 - Pattern. |
Response Model
Top-level response object
|
Field |
Type |
Description |
|---|---|---|
|
id |
string |
Unique identifier of the returned item. |
|
language |
string |
Language of the phrases in the item. |
|
ReportType |
string |
Report type. Could be SC - Analyst Trade Ideas, AI - AI Driven Trade Ideas, Pattern - Pattern Trade Ideas |
|
AssetId |
integer |
Acuity asset identifier. |
|
AssetClassId |
integer |
Asset class identifier. |
|
Report |
object |
Core trade-idea payload. |
|
Product |
object |
Product metadata for the covered asset. |
|
Group |
object |
Asset group metadata such as Equity or Commodity. |
|
Period |
object |
Period metadata such as Intraday or Short Term. |
|
Phrase |
array of strings |
Narrative explanation of the detected pattern. |
Report object
The Report object contains the trade setup returned for the pattern.
|
Field |
Type |
Description |
|---|---|---|
|
id |
string |
Unique report identifier. |
|
group_id |
string |
Group identifier. |
|
product_id |
string |
Product identifier. |
|
period_id |
string |
Period identifier. |
|
direction |
integer |
Numeric direction code. |
|
action |
integer |
Numeric action code. |
|
direction_text |
string |
Human-readable direction, for example Bullish or Bearish. |
|
action_text |
string |
Human-readable action, for example BUY or SELL. |
|
buy_target_1 |
number or null |
Buy take-profit target when applicable. |
|
sell_target_1 |
number or null |
Sell take-profit target when applicable. |
|
stop |
number |
Stop-loss level. |
|
expiry |
string |
Expiry timestamp for the trade idea. |
|
live_time |
string |
Timestamp when the idea became live. |
|
status |
integer |
Numeric trade status code. |
|
status_text |
string |
Human-readable trade status. |
|
original_status |
integer |
Initial status code before subsequent updates. |
|
original_status_text |
string |
Human-readable initial status. |
|
created |
string |
Creation timestamp. |
|
modified |
string |
Last modification timestamp. |
|
modifiedUtc |
string |
UTC modification timestamp. |
|
buy_entry_target_1 |
number or null |
Buy entry level when applicable. |
|
sell_entry_target_1 |
number or null |
Sell entry level when applicable. |
|
is_closed |
integer |
1 when the trade is closed, otherwise 0. |
|
PatternData |
object |
Nested description of the detected chart pattern. |
Status values
|
Status code |
Status text |
|---|---|
|
5 |
Closed - Profit |
|
6 |
Closed - Loss |
|
9 |
Live Trade |
|
13 |
Sell Stop |
|
15 |
Buy Stop |
PatternData object
The PatternData object describes the detected pattern itself.
|
Field |
Type |
Description |
|---|---|---|
|
id |
string |
Unique identifier of the detected pattern. |
|
Family |
string |
Pattern family code. |
|
Granularity |
string |
Detection timeframe such as 1h, 4h, or 1d. |
|
start_time |
string |
Timestamp where the pattern begins. |
|
start_price |
number |
Price level where the pattern begins. |
|
confirmation_time |
string |
Timestamp where the pattern is confirmed. |
|
confirmation_price |
number |
Price level used for confirmation. |
|
trade_end_time |
string or null |
Timestamp when the trade closed, if closed. |
|
trade_end_price |
number or null |
Price level when the trade closed, if closed. |
|
wait |
integer |
Maximum number of candles to wait if neither target nor stop is reached. |
|
specific_data |
object |
Family-specific geometry and indicator fields. |
Patterns specific_data field
|
Pattern type |
Family |
Fields |
|
Triangles / Wedges |
ASC_TRIANGLE_CONT DESC_TRIANGLE_CONT SYM_TRIANGLE_BEAR_CONT SYM_TRIANGLE_BEAR_REV SYM_TRIANGLE_BULL_CONT SYM_TRIANGLE_BULL_REV CONT_WEDGE REV_WEDGE |
support_slope: number support_intercept: number resist_slope: number resist_intercept: number flag_width: number |
|
Flags / Pennants |
FLAG PENNANT |
support_slope: number support_intercept: number resist_slope: number resist_intercept: number flag_width: number tip_time: datetime tip_price: number |
|
Rectangles |
RECTANGLE_BEAR_CONT RECTANGLE_BEAR_REV RECTANGLE_BULL_CONT RECTANGLE_BULL_REV |
support_price: number resist_price: number |
|
Double Top or Bottom / Triple Top or Bottom |
DT DB TT TB |
p1_time: datetime p1_price: number p2_time: datetime p2_price: number p3_time: datetime p3_price: number p4_time: datetime (optional) p4_price: number (optional) p5_time: datetime (optional) p5_price: number (optional) |
|
Head & Shoulders |
HS IHS |
l_shoulder_time: datetime l_shoulder_price: number l_armpit_time: datetime l_armpit_price: number head_time: datetime head_price: number r_armpit_time: datetime r_armpit_price: number r_shoulder_time: datetime r_shoulder_price: number |
Common Requests
Retrieve supported products list
Endpoint: POST /api/signalcentre/products
Sample request
curl --location "https://api.acuitytrading.com/api/signalcentre/products" --header "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJwcm9kdWN0IiwiaHR0cDovL3NjaGVtYXMuYWN1aXR5dHJhZGluZy5jb20vd3MvMjy8wOC9pZGVudGl0eS9jbGFpbXMvaXNhZG1pbmlzdHJhdG9yIjoiVHJ1ZSIsImp0aSI6IjgxODFmNTgzLTU3NTktNDg0OS1hZTFjLWZlMWNhN2Q4ZWNiNCIsImlhdCI6MTc3NDM2ODg5MiwibmJmIjoxNzc0MzY4ODkyLCJleHAiOjE3NzU1Nzg0OTIsImlzcyI6IkFjdWl0eSIsImF1ZCI6IkFjdWl0eUF1ZGllbmNlIn0.5_vPvyUI5m_8GA3I_qqJ90aXlMgcZ5AetiieSuGDM00" --header "Content-Type: application/json" --data "{}"
Retrieve all pattern trade ideas for the last 7 days
Endpoint: POST /api/signalcentrereports
Sample request
curl --location "https://api.acuitytrading.com/api/signalcentrereports" --header "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJwcm9kdWN0IiwiaHR0cDovL3NjaGIsImlzcyI6IkFjdWl0eSIsImF1ZCI6IkFjdWl0eUF1ZGllbmNlIn0.5_vPvyUI5m_8GA3I_qqJ90aXlMgcZ5AetiieSuGDM00" --header "Content-Type: application/json" --data "{
\"StartDate\": \"2026-03-20T11:52:26+01:00\",
\"EndDate\": \"2026-03-27T11:52:26+01:00\",
\"Count\": 100,
\"ReportTypes\": [3]
}"
Retrieve pattern trade ideas for specific products
Sample request
curl --location "https://api.acuitytrading.com/api/signalcentrereports" --header "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJwcm9kdWN0IiwiaHR0cDovL3NjaGVtYXMuYWN1aXR5dHJhZGluZy5jb20vd3MvMjAxMy8wOC9pZGVudGl0eS9jbGFpbXMvdXNlcmlkIjoiNTQxIiwiaHR0cDovL3NjaGVtYXMuYWN1aXR5dNjaGVtYXMbmjgxODFmNTgzLTU3NTktNDg0OS1hZTFjLWZlMWNhN2Q4ZWNiNCIsImlhdCI6MTc3NDM2ODg5MiwibmJmIjoxNzc0MzY4ODkyLCJleHAiOjE3NzU1Nzg0OTIsImlzcyI6IkFjdWl0eSIsImF1ZCI6IkFjdWl0eUF1ZGllbmNlIn0.5_vPvyUI5m_8GA3I_qqJ90aXlMgcZ5AetiieSuGDM00" --header "Content-Type: application/json" --data "{
\"StartDate\": \"2026-03-20T11:56:41+01:00\",
\"EndDate\": \"2026-03-27T11:56:41+01:00\",
\"Count\": 100,
\"ReportTypes\": [3],
\"AssetIds\": [50, 3]
}"
Streaming API
The purpose of this API is to deliver the Acuity Events in real time after their publication and/or modification.
Documentation
- Overview: https://api.acuitytrading.com/
- Streaming API: https://api.acuitytrading.com/Streaming
- Signal Centre Reports: https://api.acuitytrading.com/Streaming#sc-parameters
Authentication
To authenticate, you need to pass your API key in the server URL when connecting to Acuity API. Example: wss://api.acuitytrading.com/api/streaming?apiKey=YOUR_API_KEY
Common Subscription Parameters
Each subscription in the Streaming API has the following parameters:
{
"action": "ACTION",
"topic": "TOPIC"
}
|
Parameter |
Type |
Possible Values |
|
"action" |
string |
subscribe, unsubscribe |
|
"topic" |
string |
assets, acuityevents, other supported topics (requires additional services) |
Subscribe to all signals
Sample request
{
"action" : "subscribe",
"topic" : "screports"
}
Subscribe to pattern reports
Sample request
{
"action": "subscribe",
"topic": "screports",
"reportTypes": [3]
}
Subscribe to pattern reports with specific tickers
Sample request
{
"action": "subscribe",
"topic": "screports",
"assetIds": [3, 50],
“reportTypes”: [3]
}
Expected Message Types in the Response
|
Message Type |
Description |
|
Insert message |
This message type is sent when a new event is published. |
|
Update message |
This message is sent when event content needs to be updated. Any part of the event can be updated. Find the previously saved event by ID and fully replace its contents. If no event can be found with the ID, simply add the newly received event to your database. |