---
title: "Bulk Operations"
description: "Move many bots at once with strict rate limits."
canonical: "https://developers.fnlb.net/docs/bulk-operations"
markdown: "/docs/bulk-operations.md"
---

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

# Bulk Operations

Bulk routes move **device auth** for many bots at once. They are separate from [GET /bots](/api?method=GET&path=/bots) and have **much lower** [rate limits](/docs/rate-limits.md#api).

## Import

[POST /bots/bulk-import](/api?method=POST&path=/bots/bulk-import) creates up to **100** bots in one request. Needs `bots.write`.

Each entry in `bots` includes:

- `accountId`, `deviceId`, `secret` (Epic device auth)
- optional `nickname` (1–16 characters; a random name is generated if omitted)

Optional `parent` sets one category id for every imported bot. The category must belong to your account.

```json
{
  "parent": "66c4b21ecaed451e9f6444d3842954a7",
  "bots": [
    {
      "accountId": "…",
      "deviceId": "…",
      "secret": "…",
      "nickname": "Lobby 1"
    }
  ]
}
```

Limits: **10** requests per 10 minutes with an API token (**50** with OAuth2). Each call still respects your account bot cap.

Managed categories may allow at most **one** extra bot per category when importing; exceeding that returns `limit_exceeded`.

## Export

[POST /bots/bulk-export](/api?method=POST&path=/bots/bulk-export) returns device auth for **all** bots on the account. No OAuth2 scope is required beyond a valid API token or session.

```json
{
  "deleteAfterExport": false
}
```

When `deleteAfterExport` is `true`, bots are removed from FNLB after their secrets are returned. Use that only when you are migrating or backing up intentionally.

Response items look like:

```json
{
  "accountId": "…",
  "deviceId": "…",
  "secret": "…",
  "nickname": "Lobby 1"
}
```

Limits: **2** exports per 10 minutes with an API token (**5** with OAuth2).

<Warning>
  Export responses contain live secrets. Store them encrypted. Never log the response body in analytics or client-side code.
</Warning>

## When to use bulk

- Migrating from another panel or spreadsheet of device auths
- Backing up before a large account change
- Seeding a new category before [self-hosting](/self-hosting-guide) or the [SDK](/docs/sdk-node.md)

For day-to-day changes, prefer [POST /bots](/api?method=POST&path=/bots) and [PATCH /bots/{botId}](/api?method=PATCH&path=/bots/{botId}).
