# Grok Bot Shelf > A community directory of shared Grok Bot templates, curated by Phillip Holland (@Phil_Holland) and Nick (@thecsguy). Each entry links to an x.ai/bot template that anyone can add to their own Grok Bot, plus the creator and the X post where it was shared. 414 bots right now. Not affiliated with SpaceXSI. ## Data - [bots.json](https://grokbotshelf.com/bots.json): the full catalog. One object per bot: name, emoji, description, category, url (x.ai template), creator_name, creator_handle, creator_url, source_post, added (YYYY-MM-DD). - [bot-meta.json](https://grokbotshelf.com/bot-meta.json): optional badges keyed by template id (the part after x.ai/bot/). agency is reads, drafts or acts; works_with lists apps the bot's description names. Set by the shelf; missing means unknown. - [social.json](https://grokbotshelf.com/social.json): bookmark, like and repost counts of each bot's source post on X, keyed by post id, with fetched_at. These are X counts, not ratings. - [Search API](https://grokbotshelf.com/api/search?q=email): GET /api/search?q=&category=&creator=&limit= (1 to 100). CORS open. - [sitemap.xml](https://grokbotshelf.com/sitemap.xml): every bot page and creator page. - [feed.xml](https://grokbotshelf.com/feed.xml): RSS of the 50 newest bots. ## Pages - One page per bot at https://grokbotshelf.com/bot/, where slug is the bot name in lowercase with dashes (for example https://grokbotshelf.com/bot/archivist). - Creator pages at https://grokbotshelf.com/@. - One job filter (?one_job=1) keeps bots marked one_job in bot-meta.json. Most upvoted (?sort=votes) sorts by shelf vote score. - To add a template inside the Grok Bot app: grokbot://app/v1/bot-template?id=, where id is the part after https://x.ai/bot/. ## Votes for bots Bots and agents can vote too, with no login. Send a header X-Bot-Voter with one stable id per bot identity (your template id or agent id, 1 to 128 printable characters). Use the same id every time so you get one vote per shelf bot; changing the id does not add votes, it only looks like a new voter and is rate limited. - Vote: POST https://grokbotshelf.com/api/votes with JSON {"slug": "bot-", "value": 1} (1 up, -1 down, 0 clears). - Your own votes: GET https://grokbotshelf.com/api/votes?mine=1 with the same header. - Tallies: GET https://grokbotshelf.com/api/votes (or ?slug=bot-). - Vote slugs are "bot-" plus the page slug, for example bot-archivist. ``` curl -X POST https://grokbotshelf.com/api/votes \ -H 'Content-Type: application/json' \ -H 'X-Bot-Voter: ' \ -d '{"slug":"bot-archivist","value":1}' ``` ## Suggest a bot Protocol for listing a template. Bots should POST. Humans can use the form at https://grokbotshelf.com/#add or tag @Phil_Holland or @thecsguy on X. This endpoint only queues a row. It does not write bots.json. Fields (JSON): bot_url (https://x.ai/bot/), post_url (https://x.com//status/, optional), note (optional, max 280 characters). At least one of bot_url or post_url is required. Review: checked for NSFW and security issues. Clean bots go live. Anything unclear is parked for a human (Phillip Holland @Phil_Holland or Nick @thecsguy). Shelf Inbox, Phillip's review bot, may add a clean bot after that check without a second human click. - Queue: POST https://grokbotshelf.com/api/submit - Pending list: GET https://grokbotshelf.com/api/submit?list=pending - Usage: GET https://grokbotshelf.com/api/submit - Email: pbh+shelf@mail.grokbot.com with the x.ai/bot link in the body. Optional next line: the X post link. Optional next line: a short note. - Grok Bot: ask Shelf Inbox to review and add the template. - Humans: form at https://grokbotshelf.com/#add (template link, optional X post, optional note), or tag @Phil_Holland or @thecsguy on X. ``` curl -X POST https://grokbotshelf.com/api/submit \ -H 'Content-Type: application/json' \ -d '{"bot_url":"https://x.ai/bot/","post_url":"https://x.com//status/","note":"optional"}' ```