Back to records
Developer APIRoblox-ready

Build With Exist Counts

A clean JSON API for SAB exist counts, search, rarity lists, source metadata, mutations, traits, wiki links, and Roblox image assets. Keys are tied to registered Roblox place IDs so real games can use the API without anonymous spam hammering the site.

Free
60/min + 2,500/day
Supporter
600/min + 25,000/day
Advanced
Free
Plan
Free

Developer Keys

Sign in with Roblox to create an API key. Keys are bound to Roblox place IDs. Free keys get 60/min + 2,500/day. Supporter keys get 600/min + 25,000/day. Advanced value fields are free.

Sign in with Roblox

Endpoints

GET/api/v1/exists?placeId=...

All brainrots, with optional q, rarity, limit, offset, includeUnknown=false, and value fields when matched.

GET/api/v1/exists/{slug}?placeId=...

One brainrot, including exists, estimates, LGC/Robux value, Garama market anchor, mutations, traits, image, and source module.

GET/api/v1/search?q=noobini&placeId=...

Search by name, rarity, mutation, trait, or module.

GET/api/v1/rarities/secret?placeId=...

All rows in a rarity bucket.

GET/api/v1/roblox/exists?key=...&placeId=...&limit=500

Roblox-friendly list response for loading all brainrots into a server Script.

GET/api/v1/roblox/exists/{slug}?key=...&placeId=...

Small flat response with exists, wiki links, and Roblox image asset fields when mirrored.

GET/api/v1/meta?placeId=...

Totals, modules, source revision, and endpoint map.

Roblox Example

Put the request in a server Script, not a LocalScript, so your API key is not exposed to players.

local HttpService = game:GetService("HttpService")

print("SAB ping test starting")
local ping = HttpService:GetAsync("https://sabexistcount.vercel.app/api/v1/roblox/ping")
print("Ping body:", ping)

local API_KEY = "YOUR_API_KEY"
local PLACE_ID = tostring(game.PlaceId)
local url = "https://sabexistcount.vercel.app/api/v1/roblox/exists?limit=500&placeId=" .. PLACE_ID .. "&key=" .. HttpService:UrlEncode(API_KEY)

print("SAB API list request starting")

local ok, response = pcall(function()
  return HttpService:RequestAsync({
    Url = url,
    Method = "GET"
  })
end)

if not ok then
  warn("SAB API request crashed:", response)
  return
end

print("Status:", response.StatusCode)
print("Body:", response.Body)

local data = HttpService:JSONDecode(response.Body)
if data.ok then
  print("Loaded brainrots:", data.count, "of", data.total)
  for _, item in ipairs(data.items) do
    print(item.name, item.exists or "Not Known", item.robloxImage or "No Roblox image yet")
  end
else
  warn("SAB API error:", data.error, data.message)
end

JavaScript Example

const response = await fetch("https://sabexistcount.vercel.app/api/v1/exists/noobini-pizzanini?placeId=YOUR_PLACE_ID", {
  headers: { "x-sab-api-key": "YOUR_API_KEY" }
});
const data = await response.json();
console.log(data.item.exists);