# T-Invest API: Найти инструмент и узнать его цену

Сценарий из mcp-everything. Актуально на 2026-10-24.

Получить идентификатор бумаги по тикеру, последнюю цену и свечи для графика.

1. Найди инструмент: POST /tinkoff.public.invest.api.contract.v1.InstrumentsService/FindInstrument с query — тикером или названием (например, SBER). Для торговли передай apiTradeAvailableFlag = true. Сохрани uid инструмента.
2. Последняя цена: POST /tinkoff.public.invest.api.contract.v1.MarketDataService/GetLastPrices с instrumentId — массивом uid (или тикер_класс, например SBER_TQBR).
3. Свечи: POST /tinkoff.public.invest.api.contract.v1.MarketDataService/GetCandles с instrumentId, from и to в UTC и interval, например CANDLE_INTERVAL_HOUR.
4. Стакан, если нужен, — POST /tinkoff.public.invest.api.contract.v1.MarketDataService/GetOrderBook с depth.

```bash
API=https://invest-public-api.tbank.ru/rest/tinkoff.public.invest.api.contract.v1
curl -X POST "$API.InstrumentsService/FindInstrument" -H "Authorization: Bearer $TINVEST_TOKEN" \
  -H 'Content-Type: application/json' -d '{"query": "SBER", "apiTradeAvailableFlag": true}'

curl -X POST "$API.MarketDataService/GetLastPrices" -H "Authorization: Bearer $TINVEST_TOKEN" \
  -H 'Content-Type: application/json' -d '{"instrumentId": ["SBER_TQBR"]}'
```

## Базовые URL

- Боевой (REST): `https://invest-public-api.tbank.ru/rest`
- Тестовый (REST, песочница): `https://sandbox-invest-public-api.tbank.ru/rest`
- Боевой (gRPC): `invest-public-api.tinkoff.ru:443`
- Тестовый (gRPC, песочница): `sandbox-invest-public-api.tinkoff.ru:443`

## Авторизация

Тип: Bearer-токен

Токен выпускается в настройках профиля Т-Инвестиций (https://www.tbank.ru/invest/settings/). Функция «Подтверждение сделок кодом» должна быть отключена. Токен показывается один раз, выпускать можно неограниченное количество. Виды токенов: Readonly (только чтение), Full-access (все методы), токен с доступом к конкретному счёту и Sandbox token (только для песочницы; для обычных методов вернёт ошибку). Токен передаётся в заголовке `Authorization` в формате `Bearer t.QtEo8ahkNFX4RTpbqp0u4z4GDZq27HzUp6AotJASBx7_DVqmqZMHfM2Cy7JmUjS80boI9eVg`, в gRPC — в metadata каждого запроса и стрима.

Срок жизни токена — три месяца с даты последнего использования. Неактуальный токен даёт ошибку:

```
"code": "40003"
"message": "authentication token is missing or invalid"
```

## Методы сценария

### POST /tinkoff.public.invest.api.contract.v1.InstrumentsService/FindInstrument — Найти инструмент

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `query` | body | string | да | Строка поиска |
| `instrumentKind` | body | v1InstrumentType | нет | Тип инструмента |
| `apiTradeAvailableFlag` | body | boolean | нет | Показывать только торговые инструменты |

### POST /tinkoff.public.invest.api.contract.v1.MarketDataService/GetCandles — Исторические свечи

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `from` | body | string | да | Начало периода по UTC |
| `to` | body | string | да | Окончание периода по UTC |
| `interval` | body | v1CandleInterval | да | Интервал свечей, например CANDLE_INTERVAL_1_MIN, CANDLE_INTERVAL_HOUR, CANDLE_INTERVAL_DAY |
| `instrumentId` | body | string | нет | figi, instrument_uid или ticker + '_' + class_code |
| `candleSourceType` | body | v1GetCandlesRequestCandleSource | нет | Источник свечей |
| `limit` | body | integer | нет | Максимальное количество свечей в ответе |

### POST /tinkoff.public.invest.api.contract.v1.MarketDataService/GetLastPrices — Цены последних сделок

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `instrumentId` | body | string | нет | Массив идентификаторов: figi, instrument_uid или ticker + '_' + class_code |
| `lastPriceType` | body | v1LastPriceType | нет | Тип цены |
| `instrumentStatus` | body | v1InstrumentStatus | нет | Статус инструмента |

### POST /tinkoff.public.invest.api.contract.v1.MarketDataService/GetOrderBook — Стакан по инструменту

| Параметр | Где | Тип | Обяз. | Описание |
|---|---|---|---|---|
| `depth` | body | integer | да | Глубина стакана |
| `instrumentId` | body | string | нет | figi, instrument_uid или ticker + '_' + class_code |

## Нюансы

- Для `PostOrder` и `PostStopOrder` обязателен `orderId` — ключ идемпотентности в формате UID до 36 символов; у `ReplaceOrder` новый ключ передаётся в `idempotencyKey`.
- Суммы и цены передаются не числом, а объектом Quotation/MoneyValue: целая часть в `units` (строка) и дробная в `nano`.
- Песочница работает почти со всеми теми же методами, но в ней недоступны `GetBrokerReport`, `GetDividendsForeignIssuer` и сервис стоп-заявок; для неё нужен отдельный Sandbox token.
- Сделки на сумму больше 30 000 000 рублей требуют подтверждения и через API недоступны.
- Лимиты считаются суммарно по всем счетам пользователя; с одного адреса рекомендуется не больше 50 запросов в секунду по всем счетам и токенам.
- Разработчикам публичного ПО нужно зарегистрировать название приложения через invest-public-api@tbank.ru.

## Другие сценарии

- [Посмотреть счета и портфель](https://mcp-everything.ru/integrations/t-invest/scenarios/posmotret-scheta-i-portfel.md)
- [Выставить заявку и проверить исполнение](https://mcp-everything.ru/integrations/t-invest/scenarios/vystavit-zayavku-i-proverit-ispolnenie.md)
- [Проверить робота в песочнице](https://mcp-everything.ru/integrations/t-invest/scenarios/proverit-robota-v-pesochnitse.md)
- [Выгрузить операции по счёту](https://mcp-everything.ru/integrations/t-invest/scenarios/vygruzit-operatsii-po-schetu.md)

---

Если этого недостаточно — официальная документация: https://developer.tbank.ru/invest/intro/intro/
Вся интеграция одним документом: https://mcp-everything.ru/integrations/t-invest.md
