> ## Documentation Index
> Fetch the complete documentation index at: https://docs.liftx.io/llms.txt
> Use this file to discover all available pages before exploring further.

# TradingView integration

> Send chart alerts or Pine signals to Liftx while retaining Liftx position and protection management.

<Warning>
  TradingView execution is in preview and awaits production activation. A **Prepared** setup can generate private messages and scripts, but does not enable trading. Keep alerts disabled while Liftx reports execution unavailable. See [availability](/availability).
</Warning>

TradingView sends an HTTPS POST to Liftx when an alert fires. The message describes an intent: open a position, modify an identified position, or terminate selected positions. Liftx authenticates the restricted key, checks its fixed market and permissions, records the command, then hands execution to its existing trading owners. SL, SLx and TP remain managed by Liftx.

```text theme={null}
TradingView condition
        ↓
JSON webhook + restricted Liftx TradingView key
        ↓
Authentication → immutable command receipt → Liftx position lifecycle
        ↓
Exchange orders, protection management and reconciliation
```

An alert can reach Liftx without an open Liftx browser. Pine does not receive execution feedback, and the TradingView broker emulator is not a view of the linked exchange account. Use Activity and actual positions to verify outcomes.

## Choose an authoring method

| Method | Use it for | Position selection |
| - | - | - |
| [Ordinary JSON alerts](/integrations/tradingview/ordinary-alerts) | Price or indicator conditions without Pine code; a fixed opening configuration and coordinated exit condition | Each OPEN creates a new lifecycle; EXIT selects this setup's positions or the explicitly authorized market |
| [Pine `alert()`](/integrations/tradingview/pine) | Continuous custom signal logic, explicit lifecycle references and complete dynamic command messages | Exact position reference, strategy group or explicitly authorized market group |
| [Strategy order-fill alerts](/integrations/tradingview/strategy-alerts) | An existing Pine strategy deliberately emits Liftx intent from emulator order events | Complete per-order Liftx envelope; no generic buy/sell translation |
| [External API controller](/api/position-request) | Workflows requiring current positions, exact modification state, execution confirmation or coordinated multi-market decisions | Current canonical state and API position identities |

## One reusable key, one market, successive positions

One running Pine alert can reuse its key for many OPEN/terminate cycles. No pre-created Liftx position or Liftx UUID is needed. Every new lifecycle gets a fresh client reference; follow-up commands identify that lifecycle.

Each TradingView setup currently pins **one exchange link, one canonical instrument, one source identity and one binding revision**. A BTC setup and an ETH setup use separate keys. Two independent strategies on the same market should also use separate setups. Rotating a credential retains its setup's namespace; creating a new strategy requires a new setup.

The chart feed is input to the signal. It does not select the execution exchange, account, spot/futures market or quantity unit. Liftx never guesses a market from `BTCUSDT`, `{{ticker}}` or `{{exchange}}`.

## What is supported

* Full canonical opening configuration: direction, OPEN rows/grids, margin mode and leverage where supported, SL, SLx, TP and rearrangement.
* Repeated independent lifecycles with single-position or multiple-position admission policy.
* Exact-position termination and explicit strategy/market group termination.
* Advanced exact-position protection modifications with current canonical state and unchanged OPEN rows.
* Durable identities, duplicate receipts, deadlines and ordering fences.

State-dependent modification, confirmed-flat reversal and portfolio coordination require API feedback. Bulk modification, a universal multi-market TradingView key, arbitrary exchange-order calls and Pine reads of Liftx positions are not provided. See [scenario coverage](/integrations/tradingview/scenarios).

## Connection details

| Field | Value |
| - | - |
| Webhook URL | `https://hooks.liftx.io/v1/tradingview/events` |
| Method | POST, sent by TradingView |
| Content type | Valid JSON; `application/json; charset=utf-8` is accepted |
| Authentication | Dedicated restricted Liftx TradingView key in top-level `token` |
| Payload | Exactly one top-level `alert` or `command` object |
| Account access | Pro or active trial, including supported paid-grace entitlement |
| Usage | Unmetered, subject to security, admission capacity and exchange limits |

Do not put an ordinary API key, login password or exchange credential in a TradingView message. The restricted key is still sensitive: anyone possessing it may attempt its authorized actions. TradingView's [credentials guidance](https://www.tradingview.com/support/solutions/43000722015-using-credentials-for-webhooks/) cautions against credentials in webhook messages; this integration uses a deliberately restricted capability and does not imply provider endorsement.

Start with [create a TradingView setup](/integrations/tradingview/setup), then choose [ordinary alerts](/integrations/tradingview/ordinary-alerts) or [Pine](/integrations/tradingview/pine).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.