One token, one listing, and the reason a wrong bot id answers 404.
Every /api/v1 request carries the bot’s token in the Authorization header.
POST /api/v1/bots/1092194789458481202/stats HTTP/1.1Host: picked.ggAuthorization: picked_live_9f2c...Content-Type: application/json
Bearer is optional:
Authorization: Bearer picked_live_9f2c...
Both are accepted because the libraries that already post to several lists send
both, and a developer adding this list should not have to find out which one we
wanted.
It is created by the owner for one listing and can only ever act on that
listing. The id in the URL has to be the bot the token belongs to.
A mismatch answers 404, not 403. A 403 would confirm that the other bot
exists to somebody holding an unrelated token, which is a lookup service we
are not interested in running.
Generate a new token on the bot’s edit page. The old one stops working the
moment the new one is created — there is no grace period, so deploy the new
value before you rotate if the bot is live.We store only a hash of the token. That is the reason we cannot show it to you a
second time, and the reason a database dump does not hand anybody a working
credential.
Treat it exactly like your Discord bot token: environment variable, not source
control. Anyone holding it can post a server count and read your vote log —
they cannot edit your listing, delete it, or touch your account.
Sign in, change the listing’s text, or reach the moderation panel.
Retrieve a voter’s name, avatar or profile. The vote endpoints return ids and
timestamps, and nothing else.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Picked.gg API","description":"Post server counts, publish commands, read votes and receive vote webhooks from picked.gg.","colors":{"primary":"#3f6b00","light":"#b6f24a","dark":"#3f6b00"},"logo":{"light":"https://mintcdn.com/discord-bot-list/ejs7hyHiUJZbewnI/logo/light.png?fit=max\u0026auto=format\u0026n=ejs7hyHiUJZbewnI\u0026q=85\u0026s=b3c2ca9e1350b7d8f5788bd130b50b97","dark":"https://mintcdn.com/discord-bot-list/ejs7hyHiUJZbewnI/logo/dark.png?fit=max\u0026auto=format\u0026n=ejs7hyHiUJZbewnI\u0026q=85\u0026s=d2165dccd4ae3b8dad03991888f1535f","href":"https://picked.gg"},"favicon":"https://mintcdn.com/discord-bot-list/KJaZKDpHL7K-BdvD/favicon.png?fit=max\u0026auto=format\u0026n=KJaZKDpHL7K-BdvD\u0026q=85\u0026s=e99fa65cbfdd7473cb2e59955ce475cb","appearance":{"default":"dark"},"background":{"color":{"light":"#f5f6f8","dark":"#07090c"}},"navbar":{"links":[{"href":"https://picked.gg","label":"Site"}],"primary":{"type":"button","label":"List Your Bot","href":"https://picked.gg/submit"}},"footer":{"socials":{"website":"https://picked.gg"}},"fonts":{"heading":{"family":"Space Grotesk","weight":700},"body":{"family":"Inter","weight":400}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"discord-bot-list","hasAudioNarration":false,"actualSubdomain":"discord-bot-list","customDomains":["docs.picked.gg"],"gitSource":{"type":"github","owner":"quadey","repo":"picked.gg","deployBranch":"main","contentDirectory":"api-docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6abe2597d34a93f1d1a189e4","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"default","tag":"API Reference","count":5},{"language":"default","tag":"Guides","count":4},{"language":"default","tag":"Getting Started","count":3},{"language":"default","tag":"Bot","count":2},{"language":"default","tag":"Votes","count":2},{"language":"default","tag":"Public","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":"html.dark #topbar-cta-button .bg-primary-dark{background-color:#b6f24a}html.dark #topbar-cta-button .text-white,html.dark #topbar-cta-button .text-white\\/90{color:#0a0f02}.mdx-content table td{min-width:0}.mdx-content table td code{white-space:nowrap}:root{--dur-base: 220ms;--dur-page: 450ms;--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1)}@media (prefers-reduced-motion: no-preference){@keyframes doc-enter{from{opacity:0;transform:translateY(14px)}}@keyframes doc-reveal{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}#header,.mdx-content>:nth-child(-n+6){animation:doc-enter var(--dur-page) var(--ease-out-expo) backwards}.mdx-content>:nth-child(2){animation-delay:40ms}.mdx-content>:nth-child(3){animation-delay:80ms}.mdx-content>:nth-child(4){animation-delay:120ms}.mdx-content>:nth-child(5){animation-delay:160ms}.mdx-content>:nth-child(6){animation-delay:200ms}.card{transition:transform var(--dur-base) var(--ease-out-expo),\n border-color var(--dur-base) var(--ease-out-expo)}.card:hover{transform:translateY(-2px)}@supports (animation-timeline: view()){.mdx-content>:nth-child(n+7){animation:doc-reveal linear both;animation-timeline:view();animation-range:entry 0% entry 30%}}}"}],"page":{"pagePath":"authentication","slug":"/authentication","pageMetadata":{"title":"Authentication","description":"One token, one listing, and the reason a wrong bot id answers 404.","href":"/authentication"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"One token, one listing, and the reason a wrong bot id answers 404.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Every `,_jsx(_components.code,{children:`/api/v1`}),` request carries the bot’s token in the `,_jsx(_components.code,{children:`Authorization`}),` header.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`POST`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` /api/v1/bots/1092194789458481202/stats `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`HTTP`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`/`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1.1`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Host`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` picked.gg`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` picked_live_9f2c...`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Content-Type`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` application/json`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Bearer`}),` is optional:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer picked_live_9f2c...`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Both are accepted because the libraries that already post to several lists send\nboth, and a developer adding this list should not have to find out which one we\nwanted.`}),`\n`,_jsx(Heading,{level:`2`,id:`the-token-identifies-a-bot-not-a-user`,children:`The Token Identifies a Bot, Not a User`}),`\n`,_jsx(_components.p,{children:`It is created by the owner for one listing and can only ever act on that\nlisting. The id in the URL has to be the bot the token belongs to.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`A mismatch answers `,_jsx(_components.strong,{children:`404`}),`, not 403. A 403 would confirm that the other bot\nexists to somebody holding an unrelated token, which is a lookup service we\nare not interested in running.`]})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Situation`}),_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Body`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`No `,_jsx(_components.code,{children:`Authorization`}),` header`]}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Missing or malformed Authorization header.`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Token we do not know`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Invalid token.`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Valid token, different bot in the URL`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Bot not found.`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Bot id that is not a Discord snowflake`}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Bot not found.`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`rotating`,children:`Rotating`}),`\n`,_jsx(_components.p,{children:`Generate a new token on the bot’s edit page. The old one stops working the\nmoment the new one is created — there is no grace period, so deploy the new\nvalue before you rotate if the bot is live.`}),`\n`,_jsx(_components.p,{children:`We store only a hash of the token. That is the reason we cannot show it to you a\nsecond time, and the reason a database dump does not hand anybody a working\ncredential.`}),`\n`,_jsx(Heading,{level:`2`,id:`storing-it`,children:`Storing It`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Treat it exactly like your Discord bot token: environment variable, not source\ncontrol. Anyone holding it can post a server count and read your vote log —\nthey cannot edit your listing, delete it, or touch your account.`})}),`\n`,_jsx(Heading,{level:`2`,id:`what-a-token-cannot-do`,children:`What a Token Cannot Do`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Read or write any other bot.`}),`\n`,_jsx(_components.li,{children:`Sign in, change the listing’s text, or reach the moderation panel.`}),`\n`,_jsx(_components.li,{children:`Retrieve a voter’s name, avatar or profile. The vote endpoints return ids and\ntimestamps, and nothing else.`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Authentication","description":"One token, one listing, and the reason a wrong bot id answers 404.","href":"/authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"The Token Identifies a Bot, Not a User","slug":"the-token-identifies-a-bot-not-a-user","depth":2,"children":[]},{"title":"Rotating","slug":"rotating","depth":2,"children":[]},{"title":"Storing It","slug":"storing-it","depth":2,"children":[]},{"title":"What a Token Cannot Do","slug":"what-a-token-cannot-do","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"discord-bot-list","siteName":"Picked.gg API","title":"Authentication - Picked.gg API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-30T19:38:12.399Z","originalFileLocation":"authentication.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"One token, one listing, and the reason a wrong bot id answers 404.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Picked.gg API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication - Picked.gg API\">\u003cmeta data-mint-head property=\"og:description\" content=\"One token, one listing, and the reason a wrong bot id answers 404.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Picked.gg API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.picked.gg/authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://discord-bot-list.mintlify.site/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Authentication\u0026amp;description=One+token%2C+one+listing%2C+and+the+reason+a+wrong+bot+id+answers+404.\u0026amp;theme=19a5af8f0aff01bf5002c367\u0026amp;signature=71aa25ebf50eb23a6c149755d1a8a4936ddbe98c472b003c53d524a5451e84de\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Authentication - Picked.gg API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"One token, one listing, and the reason a wrong bot id answers 404.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://discord-bot-list.mintlify.site/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Authentication\u0026amp;description=One+token%2C+one+listing%2C+and+the+reason+a+wrong+bot+id+answers+404.\u0026amp;theme=19a5af8f0aff01bf5002c367\u0026amp;signature=71aa25ebf50eb23a6c149755d1a8a4936ddbe98c472b003c53d524a5451e84de\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/discord-bot-list/WTUM4iwY_nK2wmqu/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Picked.gg API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3f6b00\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.picked.gg/authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/authentication.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.picked.gg/#organization\",\"name\":\"Picked.gg API\",\"url\":\"https://docs.picked.gg\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/discord-bot-list/ejs7hyHiUJZbewnI/logo/light.png?fit=max\u0026auto=format\u0026n=ejs7hyHiUJZbewnI\u0026q=85\u0026s=b3c2ca9e1350b7d8f5788bd130b50b97\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.picked.gg#website\",\"name\":\"Picked.gg API\",\"url\":\"https://docs.picked.gg\",\"publisher\":{\"@id\":\"https://docs.picked.gg/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.picked.gg/authentication#webpage\",\"url\":\"https://docs.picked.gg/authentication\",\"name\":\"Authentication\",\"description\":\"One token, one listing, and the reason a wrong bot id answers 404.\",\"dateModified\":\"2026-09-30T19:38:12.399Z\",\"isPartOf\":{\"@id\":\"https://docs.picked.gg#website\"},\"breadcrumb\":{\"@id\":\"https://docs.picked.gg/authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.picked.gg/authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Getting Started\",\"item\":\"https://docs.picked.gg\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication\",\"item\":\"https://docs.picked.gg/authentication\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.picked.gg/authentication#article\",\"headline\":\"Authentication\",\"name\":\"Authentication\",\"description\":\"One token, one listing, and the reason a wrong bot id answers 404.\",\"url\":\"https://docs.picked.gg/authentication\",\"mainEntityOfPage\":{\"@id\":\"https://docs.picked.gg/authentication#webpage\"},\"dateModified\":\"2026-09-30T19:38:12.399Z\",\"publisher\":{\"@id\":\"https://docs.picked.gg/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.picked.gg#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Picked.gg API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Picked.gg API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/authentication.md","siteName":"Picked.gg API","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Picked.gg API","description":"Post your server count, publish your commands, and check whether somebody voted — in about five minutes.","href":"/index"},{"title":"Authentication","href":"/authentication"},{"title":"Errors and Rate Limits","description":"Five status codes, what each one means here, and how to back off.","href":"/errors"}]},{"group":"API Reference","pages":[{"group":"Bot","pages":[{"title":"Post the Server Count","deprecated":null,"version":null,"openapi":"/openapi.json post /api/v1/bots/{id}/stats","href":"/api-reference/bot/post-the-server-count"},{"title":"Publish the Commands","deprecated":null,"version":null,"openapi":"/openapi.json put /api/v1/bots/{id}/commands","href":"/api-reference/bot/publish-the-commands"}]},{"group":"Votes","pages":[{"title":"Check a User Vote","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/bots/{id}/check","href":"/api-reference/votes/check-a-user-vote"},{"title":"Recent Votes","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/bots/{id}/votes","href":"/api-reference/votes/recent-votes"}]},{"group":"Public","pages":[{"title":"Vote Count Badge","deprecated":null,"version":null,"openapi":"/openapi.json get /api/v1/bots/{id}/widget","href":"/api-reference/public/vote-count-badge"}]}]},{"group":"Guides","pages":[{"title":"Official Libraries","href":"/guides/libraries"},{"title":"Autoposting Your Server Count","href":"/guides/autoposting"},{"title":"Vote Webhook","href":"/guides/vote-webhook"},{"title":"Vote Rewards","href":"/guides/vote-rewards"}]}]},"basePath":"","title":"Authentication - Picked.gg API","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":[],"chunks":[]}