> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ninjatrader.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ninjatrader.com/_mcp/server.

# Authentication & Access

The Marketplace API is available to NinjaTrader **vendors**. Getting set up is a two-part process: become a vendor, then enable API access.

## Getting Vendor Access

1. Open the [NinjaTrader Ecosystem vendor portal](https://ecosystem.ninjatrader.com/). On first login you'll either be granted access or rejected — either way, send your NinjaTrader username to [Vendor Support](https://vendor-support.ninjatrader.com/s/contactsupport?language=en_US) to have your account enabled as a vendor.
2. To automate licensing with the **Ecosystem API**, create a Tradovate account at [account.tradovate.com](https://account.tradovate.com), then ask Vendor Support to enable Ecosystem API access for that Tradovate username.

## Servers

| Environment | Base URL                                    |
| ----------- | ------------------------------------------- |
| Production  | `https://ecosystemapi.ninjatrader.com/v1`   |
| Development | `https://ecosystemapi-d.ninjatrader.com/v1` |

## Authentication

The API uses **Bearer token** authentication. The token expires every **90 minutes** and has this form:

```text
Bearer {userId} {userName} {accessToken}
```

Send it in the `Authorization` header on every request.

To find your bearer token from the vendor portal: open the portal in Google Chrome, press **F12** to open developer tools, select the **Network** tab, refresh the page, find the `me` request, open its **Headers**, and copy the value of the `Authorization` header.

## Rate Limit

The API allows **100 requests per minute**. Exceeding that limit returns `HTTP 429` (Too Many Requests) — back off and retry.