{"format":"opendoc-document","version":1,"url":"https://docs.upscale.trade/ru/developers/operations/getchartevents","title":"Получить события позиции для индикаторов графика по тикеру","description":"GET /positions/{accountId}/{asset}/chart-events: События позиции аккаунта на одном рынке внутри временного диапазона, сначала самые новые — маркеры, которые отрисовывает график.","kind":"api-operation","locale":"ru","inLanguage":"ru","translation":{"sourceLanguage":"en","targetLanguage":"ru","status":"complete","translatedUnits":28,"totalUnits":28},"lastModified":"2026-09-28T20:14:21.334Z","revision":"4bcdb0248fec5130d7dca32f21ced4a207c71ff2d711894a920c99e4198fedd7","section":{"title":"Developers","url":"https://docs.upscale.trade/ru/developers"},"representations":{"html":"https://docs.upscale.trade/ru/developers/operations/getchartevents","markdown":"https://docs.upscale.trade/ru/developers/operations/getchartevents.md","json":"https://docs.upscale.trade/ru/developers/operations/getchartevents.json"},"translations":{"en":"https://docs.upscale.trade/developers/operations/getchartevents","ru":"https://docs.upscale.trade/ru/developers/operations/getchartevents","es":"https://docs.upscale.trade/es/developers/operations/getchartevents"},"operation":{"id":"getChartEvents","method":"GET","path":"/positions/{accountId}/{asset}/chart-events","summary":"Получить события позиции для индикаторов графика по тикеру","description":"События позиции аккаунта на одном рынке внутри временного диапазона, сначала самые новые — маркеры, которые отрисовывает график.\n\n- Возвращаются только увеличения, закрытия, принудительные закрытия и ликвидации; изменения финансирования и маржи не являются событиями графика.\n- Диапазон задаётся в целых секундах через `executedFrom` и `executedTo`, обе границы включительно.\n- Ограничено фазой, в которой аккаунт находится в данный момент.","tags":["Trading"],"tagLabels":{"Accounts":"Аккаунты","Config":"Конфигурация","Trading":"Торговля"},"deprecated":false,"parameters":[{"name":"accountId","location":"path","schema":{"type":"string · uuid","types":["string"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"},"properties":[],"variants":[]},"type":"string · uuid","required":true,"description":"Идентификатор торгового аккаунта. Должен принадлежать вызывающей стороне.","example":"00000000-0000-4000-8000-000000000000"},{"name":"asset","location":"path","schema":{"type":"string","types":["string"],"example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"minLength":1},"properties":[],"variants":[]},"type":"string","required":true,"description":"Тикер базового актива рынка, как возвращается `GET /v2/markets`.","example":"BTC"},{"name":"executedFrom","location":"query","schema":{"type":"number","types":["number"],"example":1735689600,"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"type":"number","required":true,"description":"Исполнено с, временная метка Unix в секундах (включительно)","example":"1735689600"},{"name":"executedTo","location":"query","schema":{"type":"number","types":["number"],"example":1767225599,"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]},"type":"number","required":true,"description":"Исполнено по, временная метка Unix в секундах (включительно)","example":"1767225599"},{"name":"limit","location":"query","schema":{"type":"integer","types":["integer"],"example":20,"default":20,"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"minimum":1,"maximum":1000},"properties":[],"variants":[]},"type":"integer","required":false,"description":"Размер страницы: сколько событий вернуть.","example":"20"},{"name":"offset","location":"query","schema":{"type":"integer","types":["integer"],"example":0,"default":0,"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"minimum":0,"maximum":9007199254740991},"properties":[],"variants":[]},"type":"integer","required":false,"description":"Сколько событий пропустить перед страницей.","example":"0"}],"bodies":[],"responses":[{"status":"401","description":"Неавторизовано","properties":[],"headers":[]},{"status":"403","description":"Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`).","properties":[],"headers":[]},{"status":"404","description":"Нет аккаунта с этим идентификатором или нет рынка для этого тикера.","properties":[],"headers":[]},{"status":"429","description":"Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`.","properties":[],"headers":[]},{"status":"default","description":"Ответ","mediaType":"application/json","properties":[{"name":"data","type":"object[]","required":true,"description":"Requested page of chart markers, newest first.","example":"[\n  {\n    \"asset\": \"BTC\",\n    \"direction\": \"long\",\n    \"eventName\": \"open\",\n    \"executedAt\": 1767225599,\n    \"price\": \"1000000000\",\n    \"size\": \"1000000000\"\n  }\n]","schema":{"type":"object[]","types":["array"],"description":"Requested page of chart markers, newest first.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"object","types":["object"],"title":"ChartEventResponse","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"asset","type":"string","required":true,"description":"Base asset ticker of the market the event happened on.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Base asset ticker of the market the event happened on.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"direction","type":"string · enum","required":true,"description":"Direction of the position the event belongs to.","example":"long","schema":{"type":"string · enum","types":["string"],"description":"Direction of the position the event belongs to.","enum":["long","short"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"eventName","type":"string · enum","required":true,"description":"What the marker stands for: `open` for the first increase of a position, `increase` for later ones, `decrease` for a partial close, `close` for a full one and `liquidation` for a liquidation.","example":"open","schema":{"type":"string · enum","types":["string"],"description":"What the marker stands for: `open` for the first increase of a position, `increase` for later ones, `decrease` for a partial close, `close` for a full one and `liquidation` for a liquidation.","enum":["open","increase","decrease","close","liquidation"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"executedAt","type":"number","required":true,"description":"When the event happened, unix timestamp in seconds.","example":"1767225599","schema":{"type":"number","types":["number"],"description":"When the event happened, unix timestamp in seconds.","example":1767225599,"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"price","type":"string · int32","required":true,"description":"Price the event executed at, fp9 raw — exchanged quote over exchanged base.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Price the event executed at, fp9 raw — exchanged quote over exchanged base.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"size","type":"string · int32","required":true,"description":"Absolute size the event moved, in base asset units, fp9 raw.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Absolute size the event moved, in base asset units, fp9 raw.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}}],"variants":[]},"variants":[]}},{"name":"totalCount","type":"number","required":true,"description":"Total number of events in the requested range, across all pages.","example":"0","schema":{"type":"number","types":["number"],"description":"Total number of events in the requested range, across all pages.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"schema":{"type":"object","types":["object"],"reference":"#/components/schemas/ChartEventsPaginatedResponse","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"data","type":"object[]","required":true,"description":"Запрошенная страница маркеров графика, сначала самые новые.","example":"[\n  {\n    \"asset\": \"BTC\",\n    \"direction\": \"long\",\n    \"eventName\": \"open\",\n    \"executedAt\": 1767225599,\n    \"price\": \"1000000000\",\n    \"size\": \"1000000000\"\n  }\n]","schema":{"type":"object[]","types":["array"],"description":"Запрошенная страница маркеров графика, сначала самые новые.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"items":{"type":"object","types":["object"],"title":"ChartEventResponse","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[{"name":"asset","type":"string","required":true,"description":"Тикер базового актива рынка, на котором произошло событие.","example":"BTC","schema":{"type":"string","types":["string"],"description":"Тикер базового актива рынка, на котором произошло событие.","example":"BTC","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"direction","type":"string · enum","required":true,"description":"Направление позиции, к которой относится событие.","example":"long","schema":{"type":"string · enum","types":["string"],"description":"Направление позиции, к которой относится событие.","enum":["long","short"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"eventName","type":"string · enum","required":true,"description":"Что обозначает маркер: `open` — для первого увеличения позиции, `increase` — для последующих, `decrease` — для частичного закрытия, `close` — для полного и `liquidation` — для ликвидации.","example":"open","schema":{"type":"string · enum","types":["string"],"description":"Что обозначает маркер: `open` — для первого увеличения позиции, `increase` — для последующих, `decrease` — для частичного закрытия, `close` — для полного и `liquidation` — для ликвидации.","enum":["open","increase","decrease","close","liquidation"],"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"executedAt","type":"number","required":true,"description":"Когда произошло событие, временная метка Unix в секундах.","example":"1767225599","schema":{"type":"number","types":["number"],"description":"Когда произошло событие, временная метка Unix в секундах.","example":1767225599,"nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}},{"name":"price","type":"string · int32","required":true,"description":"Цена, по которой было исполнено событие, fp9 в необработанном виде — обменённая сумма в котируемой валюте, делённая на обменённую сумму в базовом активе.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Цена, по которой было исполнено событие, fp9 в необработанном виде — обменённая сумма в котируемой валюте, делённая на обменённую сумму в базовом активе.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}},{"name":"size","type":"string · int32","required":true,"description":"Абсолютный размер, перемещённый событием, в единицах базового актива, fp9 в необработанном виде.","example":"1000000000","schema":{"type":"string · int32","types":["string"],"description":"Абсолютный размер, перемещённый событием, в единицах базового актива, fp9 в необработанном виде.","example":"1000000000","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{"format":"int32","pattern":"^(?:-?[1-9][0-9]*|0)$"},"properties":[],"variants":[]}}],"variants":[]},"variants":[]}},{"name":"totalCount","type":"number","required":true,"description":"Общее количество событий в запрошенном диапазоне по всем страницам.","example":"0","schema":{"type":"number","types":["number"],"description":"Общее количество событий в запрошенном диапазоне по всем страницам.","nullable":false,"readOnly":false,"writeOnly":false,"constraints":{},"properties":[],"variants":[]}}],"variants":[]},"example":"{\n  \"data\": [\n    {\n      \"asset\": \"BTC\",\n      \"direction\": \"long\",\n      \"eventName\": \"open\",\n      \"executedAt\": 1767225599,\n      \"price\": \"1000000000\",\n      \"size\": \"1000000000\"\n    }\n  ],\n  \"totalCount\": 0\n}","headers":[]}],"security":[{"name":"bearer","type":"http · bearer","description":"Персональный API-ключ с префиксом `usk_`.","required":true,"scopes":[]}],"codeSamples":[{"label":"cURL","language":"bash","source":"curl --request GET 'https://api.upscale.trade/positions/{accountId}/{asset}/chart-events' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'"},{"label":"JavaScript","language":"javascript","source":"const response = await fetch(\"https://api.upscale.trade/positions/{accountId}/{asset}/chart-events\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());"},{"label":"Python","language":"python","source":"import requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/positions/{accountId}/{asset}/chart-events\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)"}]},"breadcrumbs":[{"title":"Что такое проп-трейдинг","url":"https://docs.upscale.trade/ru"},{"title":"Developers","url":"https://docs.upscale.trade/ru/developers"},{"title":"Получить события позиции для индикаторов графика по тикеру","url":"https://docs.upscale.trade/ru/developers/operations/getchartevents"}],"headings":[{"depth":2,"id":"authorization","title":"Авторизация"},{"depth":2,"id":"parameters","title":"Параметры"},{"depth":2,"id":"examples","title":"Примеры"},{"depth":2,"id":"responses","title":"Ответы"}],"markdown":"# Получить события позиции для индикаторов графика по тикеру\n\n`GET /positions/{accountId}/{asset}/chart-events`\n\nСобытия позиции аккаунта на одном рынке внутри временного диапазона, сначала самые новые — маркеры, которые отрисовывает график.\n\n- Возвращаются только увеличения, закрытия, принудительные закрытия и ликвидации; изменения финансирования и маржи не являются событиями графика.\n- Диапазон задаётся в целых секундах через `executedFrom` и `executedTo`, обе границы включительно.\n- Ограничено фазой, в которой аккаунт находится в данный момент.\n\n<a id=\"authorization\"></a>\n\n## Авторизация\n\nbearer: http · bearer (обязательно). Персональный API-ключ с префиксом `usk_`.\n\n<a id=\"parameters\"></a>\n\n## Параметры\n\n- path: accountId (string · uuid; обязательно). Идентификатор торгового аккаунта. Должен принадлежать вызывающей стороне.\n\nТип: string · uuid\n\nformat: uuid\n\npattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$\n\n- path: asset (string; обязательно). Тикер базового актива рынка, как возвращается `GET /v2/markets`.\n\nТип: string\n\nПример: \"BTC\"\n\nminLength: 1\n\n- query: executedFrom (number; обязательно). Исполнено с, временная метка Unix в секундах (включительно)\n\nТип: number\n\nПример: 1735689600\n\n- query: executedTo (number; обязательно). Исполнено по, временная метка Unix в секундах (включительно)\n\nТип: number\n\nПример: 1767225599\n\n- query: limit (integer; необязательно). Размер страницы: сколько событий вернуть.\n\nТип: integer\n\nПример: 20\n\nПо умолчанию: 20\n\nminimum: 1\n\nmaximum: 1000\n\n- query: offset (integer; необязательно). Сколько событий пропустить перед страницей.\n\nТип: integer\n\nПример: 0\n\nПо умолчанию: 0\n\nminimum: 0\n\nmaximum: 9007199254740991\n\n<a id=\"example-curl\"></a>\n\n## Пример · cURL\n\n```bash\ncurl --request GET 'https://api.upscale.trade/positions/{accountId}/{asset}/chart-events' \\\n  --header 'Accept: application/json' \\\n  --header 'Authorization: Bearer YOUR_API_KEY'\n```\n\n<a id=\"example-javascript\"></a>\n\n## Пример · JavaScript\n\n```javascript\nconst response = await fetch(\"https://api.upscale.trade/positions/{accountId}/{asset}/chart-events\", {\n  method: \"GET\",\n  headers: {\n    \"Accept\": \"application/json\",\n    \"Authorization\": \"Bearer YOUR_API_KEY\"\n  },\n});\nconsole.log(response.status, await response.text());\n```\n\n<a id=\"example-python\"></a>\n\n## Пример · Python\n\n```python\nimport requests\n\nresponse = requests.request(\n    \"GET\",\n    \"https://api.upscale.trade/positions/{accountId}/{asset}/chart-events\",\n    headers={\"Accept\":\"application/json\",\"Authorization\":\"Bearer YOUR_API_KEY\"},\n    timeout=30,\n)\nprint(response.status_code, response.text)\n```\n\n<a id=\"response-401\"></a>\n\n## Ответ 401\n\n**401**  — Неавторизовано\n\n<a id=\"response-403\"></a>\n\n## Ответ 403\n\n**403**  — Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`).\n\n<a id=\"response-404\"></a>\n\n## Ответ 404\n\n**404**  — Нет аккаунта с этим идентификатором или нет рынка для этого тикера.\n\n<a id=\"response-429\"></a>\n\n## Ответ 429\n\n**429**  — Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`.\n\n<a id=\"response-default-charteventspaginatedresponse\"></a>\n\n## Ответ default · ChartEventsPaginatedResponse\n\n**default** application/json — Ответ\n\nСхема: ChartEventsPaginatedResponse\n\nТип: object\n\nОбязательные поля: data, totalCount\n\nТипы обязательных полей: data (object[]; обязательно), totalCount (number; обязательно)\n\n- data (object[]; обязательно)\n\ndata пример: [\n  {\n    \"asset\": \"BTC\",\n    \"direction\": \"long\",\n    \"eventName\": \"open\",\n    \"executedAt\": 1767225599,\n    \"price\": \"1000000000\",\n    \"size\": \"1000000000\"\n  }\n]\n\ndata.Тип: object[]\n\ndata.Запрошенная страница маркеров графика, сначала самые новые.\n\ndata.[]Тип: object\n\ndata.[]Обязательные поля: asset, direction, eventName, executedAt, price, size\n\ndata.[]Типы обязательных полей: asset (string; обязательно), direction (string · enum; обязательно), eventName (string · enum; обязательно), executedAt (number; обязательно), price (string · int32; обязательно), size (string · int32; обязательно)\n\n- data.[]asset (string; обязательно)\n\ndata.[]asset пример: BTC\n\ndata.[]asset.Тип: string\n\ndata.[]asset.Тикер базового актива рынка, на котором произошло событие.\n\n- data.[]direction (string · enum; обязательно)\n\ndata.[]direction пример: long\n\ndata.[]direction.Тип: string · enum\n\ndata.[]direction.Направление позиции, к которой относится событие.\n\ndata.[]direction.Допустимые значения: [\"long\",\"short\"]\n\n- data.[]eventName (string · enum; обязательно)\n\ndata.[]eventName пример: open\n\ndata.[]eventName.Тип: string · enum\n\ndata.[]eventName.Что обозначает маркер: `open` — для первого увеличения позиции, `increase` — для последующих, `decrease` — для частичного закрытия, `close` — для полного и `liquidation` — для ликвидации.\n\ndata.[]eventName.Допустимые значения: [\"open\",\"increase\",\"decrease\",\"close\",\"liquidation\"]\n\n- data.[]executedAt (number; обязательно)\n\ndata.[]executedAt пример: 1767225599\n\ndata.[]executedAt.Тип: number\n\ndata.[]executedAt.Когда произошло событие, временная метка Unix в секундах.\n\n- data.[]price (string · int32; обязательно)\n\ndata.[]price пример: 1000000000\n\ndata.[]price.Тип: string · int32\n\ndata.[]price.Цена, по которой было исполнено событие, fp9 в необработанном виде — обменённая сумма в котируемой валюте, делённая на обменённую сумму в базовом активе.\n\ndata.[]price.format: int32\n\ndata.[]price.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- data.[]size (string · int32; обязательно)\n\ndata.[]size пример: 1000000000\n\ndata.[]size.Тип: string · int32\n\ndata.[]size.Абсолютный размер, перемещённый событием, в единицах базового актива, fp9 в необработанном виде.\n\ndata.[]size.format: int32\n\ndata.[]size.pattern: ^(?:-?[1-9][0-9]*|0)$\n\n- totalCount (number; обязательно)\n\ntotalCount пример: 0\n\ntotalCount.Тип: number\n\ntotalCount.Общее количество событий в запрошенном диапазоне по всем страницам.\n\nПример\n\n\n\n```json\n{\n  \"data\": [\n    {\n      \"asset\": \"BTC\",\n      \"direction\": \"long\",\n      \"eventName\": \"open\",\n      \"executedAt\": 1767225599,\n      \"price\": \"1000000000\",\n      \"size\": \"1000000000\"\n    }\n  ],\n  \"totalCount\": 0\n}\n```","text":"Получить события позиции для индикаторов графика по тикеру События позиции аккаунта на одном рынке внутри временного диапазона, сначала самые новые — маркеры, которые отрисовывает график. - Возвращаются только увеличения, закрытия, принудительные закрытия и ликвидации; изменения финансирования и маржи не являются событиями графика. - Диапазон задаётся в целых секундах через `executedFrom` и `executedTo`, обе границы включительно. - Ограничено фазой, в которой аккаунт находится в данный момент. GET /positions/{accountId}/{asset}/chart-events Trading accountId Идентификатор торгового аккаунта. Должен принадлежать вызывающей стороне. string · uuid asset Тикер базового актива рынка, как возвращается `GET /v2/markets`. string executedFrom Исполнено с, временная метка Unix в секундах (включительно) number executedTo Исполнено по, временная метка Unix в секундах (включительно) number limit Размер страницы: сколько событий вернуть. integer offset Сколько событий пропустить перед страницей. integer 401 Неавторизовано 403 Аккаунт принадлежит другому пользователю (`account_access_denied`), или запрос аутентифицирован с помощью API-ключа, тогда как `api_trading` отключён на аккаунте (`api_trading_not_enabled`). 404 Нет аккаунта с этим идентификатором или нет рынка для этого тикера. 429 Превышен лимит частоты запросов API-ключа (`api_key_rate_limit_exceeded`). `Retry-After` указывает, когда вернуться; тело содержит бакет (`read` / `write`), окно, которое сработало, его лимит и `retryAt`. default Ответ data Requested page of chart markers, newest first. object[] totalCount Total number of events in the requested range, across all pages. number","api":{"title":"Публичный API Upscale","version":"d796ac9","documentation":"https://docs.upscale.trade/ru/developers","playgroundServer":"https://api.upscale.trade"}}