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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.ton.org/feedback

```json
{
  "path": "/ecosystem/api/toncenter/get-api-key",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Get your TON Center API key

export const Image = ({src, darkSrc, alt = '', darkAlt, href, target, height = 342, width = 608, noZoom = false, center = false}) => {
  const isSVG = src.match(/\.svg(?:[#?].*?)?$/i) !== null;
  const shouldInvert = isSVG && !darkSrc;
  const shouldCreateLink = href !== undefined;
  const minPx = 9;
  const maxPx = 608;
  const expectedPx = `a number or a string with a number that is greater than ${minPx - 1} and less than or equal to ${maxPx}`;
  const createInvalidPropCallout = (title, received, expected) => {
    return <Danger>
        <span className="font-bold">
          Invalid <code>{title.toString()}</code> passed!
        </span>
        <br />
        <span className="font-bold">Received: </span>
        {received.toString()}
        <br />
        <span className="font-bold">Expected: </span>
        {expected.toString()}
        {}
      </Danger>;
  };
  const checkValidDimensionValue = value => {
    switch (typeof value) {
      case "string":
      case "number":
        const num = Number(value);
        return Number.isSafeInteger(num) && num >= minPx && num <= maxPx;
      default:
        return false;
    }
  };
  let callouts = [];
  if (height && !checkValidDimensionValue(height)) {
    callouts.push(createInvalidPropCallout("height", height, expectedPx));
  }
  if (width && !checkValidDimensionValue(width)) {
    callouts.push(createInvalidPropCallout("width", width, expectedPx));
  }
  if (callouts.length !== 0) {
    return callouts;
  }
  const heightPx = Number(height);
  const widthPx = Number(width);
  const shouldCenter = center === "true" || center === true ? true : false;
  const shouldNotZoom = noZoom === "true" || noZoom === true ? true : false;
  const images = <>
      <img className="block dark:hidden" src={src} alt={alt} {...height && ({
    height: heightPx
  })} {...width && ({
    width: widthPx
  })} {...(shouldCreateLink || shouldInvert || shouldNotZoom) && ({
    noZoom: "true"
  })} />
      <img className={`hidden dark:block ${shouldInvert ? "invert" : ""}`} src={darkSrc ?? src} alt={darkAlt ?? alt} {...height && ({
    height: heightPx
  })} {...width && ({
    width: widthPx
  })} {...(shouldCreateLink || shouldInvert || shouldNotZoom) && ({
    noZoom: "true"
  })} />
    </>;
  if (shouldCreateLink) {
    if (shouldCenter) {
      return <div style={{
        display: "flex",
        justifyContent: "center"
      }}>
          <a href={href} target={target ?? "_self"}>
            {images}
          </a>
        </div>;
    }
    return <a href={href} target={target ?? "_self"}>
        {images}
      </a>;
  }
  if (shouldCenter) {
    return <div style={{
      display: "flex",
      justifyContent: "center"
    }}>{images}</div>;
  }
  return images;
};

To interact with TON Center's API at higher rate limits, you'll need to generate an API key via the official [Telegram bot](https://t.me/toncenter).

## Open the TON Center bot

Open the [`@toncenter`](https://t.me/toncenter) bot in Telegram. Click **Start** to begin the setup.

<Image src="/resources/images/ton-center/api-key/start-bot.png" darkSrc="/resources/images/ton-center/api-key/start-bot.png" alt="Start Bot" />

## Open the API keys manager

Once the bot greets you, press **Manage API Keys**.

<Image src="/resources/images/ton-center/api-key/manage-api-keys.png" darkSrc="/resources/images/ton-center/api-key/manage-api-keys.png" alt="Manage API Keys" />

## Choose a subscription plan

Click **Manage** to open your current subscription details. The default API subscription is the free one.

<Image src="/resources/images/ton-center/api-key/subscriptions.png" darkSrc="/resources/images/ton-center/api-key/subscriptions.png" alt="Subscriptions" />

<Image src="/resources/images/ton-center/api-key/subscriptions2.png" darkSrc="/resources/images/ton-center/api-key/subscriptions2.png" alt="Subscriptions" />

You'll see different tiers available:

* **Free** – 10 requests/sec, 1 token per network
* **Plus** – 25 requests/sec, 3 tokens per network (2.5 TON/month)
* **Advanced** – 100 requests/sec, 10 tokens per network (25 TON/month)
* **Enterprise** – Tailored rate limits, priority support

<Tabs>
  <Tab title="Free">
    <Image src="/resources/images/ton-center/api-key/plan-free.png" darkSrc="/resources/images/ton-center/api-key/plan-free.png" alt="Free Plan" />
  </Tab>

  <Tab title="Plus">
    <Image src="/resources/images/ton-center/api-key/plan-plus.png" darkSrc="/resources/images/ton-center/api-key/plan-plus.png" alt="Plus Plan" />
  </Tab>

  <Tab title="Advanced">
    <Image src="/resources/images/ton-center/api-key/plan-advanced.png" darkSrc="/resources/images/ton-center/api-key/plan-advanced.png" alt="Advanced Plan" />
  </Tab>

  <Tab title="Enterprise">
    <Image src="/resources/images/ton-center/api-key/plan-enterprise.png" darkSrc="/resources/images/ton-center/api-key/plan-enterprise.png" alt="Enterprise Plan" />
  </Tab>
</Tabs>

## (optional) Upgrade your plan

To upgrade:

* Select your desired plan in the bot interface and click **Purchase Subscription**.

* You'll be shown payment instructions like the following:

  <Image src="/resources/images/ton-center/api-key/payment.png" darkSrc="/resources/images/ton-center/api-key/payment.png" alt="Payment" />

* Send the **exact amount** of TON to the address provided.

* Your subscription will upgrade automatically once the transaction is confirmed.

## Create your API key

After subscribing (or staying on Free), click **Create API Key** to generate your key.

Once created, your token will appear in the list and can be used in all authenticated requests.

<Image src="/resources/images/ton-center/api-key/create-key.png" darkSrc="/resources/images/ton-center/api-key/create-key.png" alt="Create API Key" />

<Image src="/resources/images/ton-center/api-key/create-key2.png" darkSrc="/resources/images/ton-center/api-key/create-key2.png" alt="Create API Key" />

<Image src="/resources/images/ton-center/api-key/create-key3.png" darkSrc="/resources/images/ton-center/api-key/create-key3.png" alt="Create API Key" />

<Image src="/resources/images/ton-center/api-key/create-key4.png" darkSrc="/resources/images/ton-center/api-key/create-key4.png" alt="Create API Key" />

## Get help

* General help: [`@toncenter_help_bot`](https://t.me/toncenter_help_bot)
* Support for enterprise and custom plans: [`@toncenter_support`](https://t.me/toncenter_support)
