Skip to content

Add justdiscord.org - #112

Merged
MattIPv4 merged 5 commits into
botblock:masterfrom
umutxyp:add-justdiscord-org
Aug 16, 2026
Merged

Add justdiscord.org#112
MattIPv4 merged 5 commits into
botblock:masterfrom
umutxyp:add-justdiscord-org

Conversation

@umutxyp

@umutxyp umutxyp commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

Adds JustDiscord as a list.

A Discord directory covering servers, bots, emojis, stickers and packs. Ownership is verified through Discord itself — a server's owner via OAuth guilds with MANAGE_GUILD, a bot's developer by inviting the application to the verification server and having it answer a challenge — and ranked order comes from votes, ratings and written reviews. Sponsored placements are sold separately, are labelled wherever they appear, and do not change any ranked position.

API

Documented at https://justdiscord.org/docs/introduction. /api/v0 deliberately follows the conventional bot-list shape so existing libraries work unchanged:

api_post POST /api/v0/bots/:id/statsserver_count, shard_count, shards
vote check GET /api/v0/bots/:id/check?userId=…{"voted": 1}
voting_data GET /api/v0/bots/:id/votes
api_all GET /api/v1/listings?kind=bot (public, rate limited)
webhooks https://justdiscord.org/docs/webhooks

Fields left null, and why

  • view_bot / bot_widget — listing pages resolve by an owner-chosen slug (/bots/<slug>), not by application id, and there is no widget image. Neither can be built from a bot id alone. Happy to add view_bot in a follow-up if id-based lookup is added upstream on our side.
  • api_getGET /api/v0/bots/:id/stats exists but is scoped to the listing's own token, so it can't be used to look up an arbitrary bot.
  • owners — the schema pattern requires the legacy name#0000 (id) discriminator format, which no current Discord username has.

npx jest passes locally (39/39).

Copilot AI lite review requested due to automatic review settings August 15, 2026 01:30

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds JustDiscord (justdiscord.org) to the bot-list dataset so BotBlock can recognize it as a supported directory/listing site with its API endpoints and capabilities.

Changes:

  • Introduces a new list definition for JustDiscord including API docs, stats POST endpoint, and public listings endpoint.
  • Declares supported feature flags and metadata (language(s), Discord invite, display/defunct status).

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

A Discord directory covering servers, bots, emojis, stickers and packs.

Ownership is verified through Discord — a server's owner via OAuth guilds
with MANAGE_GUILD, a bot's developer by inviting the application to the
verification server and having it answer a challenge — and ranked order
comes from votes, ratings and written reviews.

The API is documented at https://justdiscord.org/docs/introduction.
/api/v0 deliberately follows the conventional bot-list shape so existing
libraries work unchanged: POST /api/v0/bots/:id/stats takes server_count,
shard_count and shards, GET .../check?userId= answers {"voted": 1}, and
GET .../votes lists voters. /api/v1 is the site's own; the public
listings endpoint is used here for api_all.

view_bot, bot_widget and api_get are null: listing pages resolve by the
owner-chosen slug rather than the application id, there is no widget
image, and the per-bot GET is scoped to the listing's own token, so
none of them can be built from a bot id alone.

owners is null because the pattern requires the legacy discriminator
format, which no current Discord username has.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@umutxyp
umutxyp force-pushed the add-justdiscord-org branch from 9f46ca4 to e2129c2 Compare August 15, 2026 01:33
Listing pages resolve by an owner-chosen slug, so /bots/<application_id>
answered 404 and view_bot was left null when this was opened.

JustDiscord now resolves the id form: an id-shaped address that matches
no slug is looked up by application id and 308s to the canonical slug
page, subpath and language prefix carried over.

  /bots/774043716797071371          -> /bots/beatra
  /bots/774043716797071371/commands -> /bots/beatra/commands
  /tr/bots/774043716797071371       -> /tr/bots/beatra

The slug is still what is canonical — the id address is a permanent
alias, not a second page — so nothing gets indexed twice. It is live now.

api_get stays null: the per-bot GET is scoped to the listing's own
token and cannot answer for an arbitrary bot id.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@umutxyp

umutxyp commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Follow-up: `view_bot` is now set to `https://justdiscord.org/bots/:id\`.

It was null when this was opened because listing pages resolve by an owner-chosen slug and `/bots/<application_id>` answered 404. JustDiscord now resolves the id form — an id-shaped address that matches no slug is looked up by application id and 308s to the canonical slug page, with the subpath and language prefix carried over. Live now:

```
/bots/774043716797071371 -> 308 -> /bots/beatra (200)
/bots/774043716797071371/commands -> 308 -> /bots/beatra/commands
/tr/bots/774043716797071371 -> 308 -> /tr/bots/beatra
```

The slug stays canonical — the id address is a permanent alias, not a second page — so nothing is indexed twice. The same is in place for server listings by guild id.

`api_get` stays null: the per-bot GET is scoped to the listing's own token and cannot answer for an arbitrary bot id.

This was set to /api/v1/listings?kind=bot on the claim that it returns
every bot. It does not, and I should have checked before filing it.

The endpoint has no pagination at all — no offset, no cursor, no page
parameter. It answers with the top of a sort and stops there, capped at
50 rows a request. So it is a top-N endpoint, not an all-bots one, and
anything walking it expecting the full catalogue would silently get the
first page and believe it had everything.

Nulled rather than documented as partial: the field means all bots, and
a URL that answers with 50 of 8,000 is a wrong answer to the question
this field asks, not a partial one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@umutxyp

umutxyp commented Aug 15, 2026

Copy link
Copy Markdown
Contributor Author

Correction to my own earlier comment: I have set api_all back to null.

I filed it as /api/v1/listings?kind=bot describing it as an all-bots endpoint. It is not one — it has no pagination of any kind (no offset, no cursor, no page parameter), so it answers with the top of a sort and stops, capped at 50 rows per request. Anything walking it expecting the full catalogue would get the first page and believe it had everything, which is a worse failure than the field simply being absent.

view_bot is unaffected and still correct — /bots/<application_id> 308s to the canonical slug page, verified live.

Current state of the entry: api_post (+ api_field / api_shard_count / api_shards) and view_bot set; api_get, api_all, bot_widget, content, owners null.

Comment thread data/lists/justdiscord.org.json Outdated
"name": "JustDiscord",
"url": "https://justdiscord.org/",
"icon": "https://justdiscord.org/icon.png",
"language": "English, French, German, Spanish, Portuguese, Italian, Dutch, Polish, Czech, Swedish, Ukrainian, Russian, Turkish, Hindi, Indonesian, Vietnamese, Thai, Chinese, Japanese & Korean",

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a single language, the primary language for the site

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — set to English.

Comment thread data/lists/justdiscord.org.json Outdated
"view_bot": "https://justdiscord.org/bots/:id",
"bot_widget": null,
"content": null,
"owners": null,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a list of the Discord account of the folks that own/operate the bot list

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — set to umutxyp#0000 (518341959765458985). I had left it null because no current Discord username carries a discriminator; I see now that #0000 is the established convention here for those.

- language: single primary language, as with every other entry
- owners: the list operator's Discord account
@MattIPv4 MattIPv4 changed the title Add JustDiscord (justdiscord.org) Add justdiscord.org Aug 16, 2026
@MattIPv4
MattIPv4 merged commit 318f71a into botblock:master Aug 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants