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

# Find your listings

Before you can call any listing-specific endpoint, you need that listing's ID. These endpoints let a script figure that out for itself instead of you copy-pasting IDs out of the dashboard.

You'll need an [API key](/api-quickstart). These endpoints only return what your key's account owns or manages - there's no way to browse other accounts' listings by user.

## Who am I?

```text
GET /api/v1/users/@me
```

`@me` is the only supported value - there's no general user-lookup endpoint. Returns the account the key belongs to.

```json
{
  "user": {
    "id": "a1b2c3d4-...",
    "fluxerId": "123456789",
    "username": "jack",
    "displayName": null,
    "avatar": "abc123",
    "role": "user",
    "createdAt": "2026-01-04T12:00:00.000Z"
  }
}
```

## What do I own?

```text
GET /api/v1/users/@me/bots
GET /api/v1/users/@me/servers
```

Each returns every listing the key's account owns or co-manages, with a `role` field so you can tell the two apart.

```json
{
  "bots": [
    { "id": "...", "fluxerBotId": "1473704049217327447", "name": "My Bot", "role": "owner", "..." : "..." }
  ]
}
```

`role` is `"owner"` or `"developer"` for bots, `"owner"` or `"admin"` for servers.

**`JavaScript`**

```javascript title="JavaScript"
const headers = { Authorization: `Bearer ${process.env.FLUXERLIST_KEY}` };

const me = await fetch("https://fluxerlist.com/api/v1/users/@me", { headers }).then((r) => r.json());
const { bots } = await fetch("https://fluxerlist.com/api/v1/users/@me/bots", { headers }).then((r) => r.json());

console.log(`Logged in as ${me.user.username}, managing ${bots.length} bot(s)`);
for (const bot of bots) console.log(`- ${bot.name} (${bot.role}): ${bot.fluxerBotId}`);
```

**`Python`**

```python title="Python"
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['FLUXERLIST_KEY']}"}

me = requests.get("https://fluxerlist.com/api/v1/users/@me", headers=headers).json()
bots = requests.get("https://fluxerlist.com/api/v1/users/@me/bots", headers=headers).json()["bots"]

print(f"Logged in as {me['user']['username']}, managing {len(bots)} bot(s)")
for bot in bots:
    print(f"- {bot['name']} ({bot['role']}): {bot['fluxerBotId']}")
```

## Looking up any listing

Once you have an ID, `GET /api/v1/bots/{id}` and `GET /api/v1/servers/{id}` return the same public fields shown on that listing's page - for **any** approved bot or server, not just your own. Any valid key can call these; there's no ownership check, since it's the same information anyone visiting the listing page can already see.

```text
GET /api/v1/bots/{id}
GET /api/v1/servers/{id}
```

`{id}` accepts a bot's Fluxer bot ID, FluxerList UUID, or listing slug (servers use the Fluxer guild ID). Useful for pulling fresh listing data - vote count, member count, tags - into your own site or bot without scraping the page.

## Related

#### [Check a vote](/check-a-vote)

See if a specific user has voted, once you have a listing ID.

#### [Embed a stat badge](/stat-badges)

Turn a listing ID into a live README badge.