Credits & Info
What is hailsDotGO?
hailsDotGO is a fan-made toolkit for Pokémon GO players: raid counters, DPS calculations, PvP IV rankings, a full shiny Pokémon dex, a personal shiny collection tracker, a Trainer Directory, and a live Raid Finder for coordinating remote raids with other players.
The site is not affiliated with Niantic, The Pokémon Company, or Nintendo.
Data Sources
- PoGoAPI: Pokémon stats, moves, type effectiveness, shiny availability, CP multipliers
- LeekDuck via pokemon-go-api: current raid bosses
- PokeMiners: mined costume art for the shiny dex, served from our own cache
- WatWowMap Masterfile: costume and form names behind the costume picker
- Dittobase: cross-checking costume names and release events
- snacknap via pokemon-go-api: Max Battles
- LeekDuck via ScrapedDuck: current and upcoming event data, full event details, and event images, from LeekDuck
- PokéAPI: Pokémon sprites, Pokédex flavor text, genus, legendary/mythical flags, in-game cries, and official localized Pokémon names
- Open-Meteo: current weather data used to determine Pokémon GO weather boosts
- Pokémon Showdown: trainer class and named character sprites for the Classic avatar set
- Dreamstone Mysteries (dsmyst): GBA-style trainer sprites for the Dreamstone avatar set
- pokeemerald-expansion (Rom Hacking Hideout): FRLG-style trainer sprites for the pokeemerald-expansion avatar set
- pret/pokeplatinum: native Gen 4 Diamond/Pearl/Platinum trainer sprites for the Platinum avatar set
Project
- Built with Go, chi, and TypeScript
- Hosted on hails.cc
- Open source: github.com/Hailey-Ross/hailsDotGO
- Documentation: github.com/Hailey-Ross/hailsDotGO/wiki
Public API
The following endpoints are publicly accessible and return game data as JSON. Two limits apply per IP: a per-endpoint request rate limit and an aggregate bandwidth cap across all endpoints in this table combined.
| Endpoint | Description | Rate Limit |
|---|---|---|
GET /api/data | All game data in one payload (Pokémon, moves, raids, shinies, type chart, CP multipliers) | 10 / 2 min per IP |
GET /api/raids | Current raid bosses by tier | 10 / 2 min per IP |
GET /api/maxbattles | Current Max Battle bosses by tier | 10 / 2 min per IP |
GET /api/events | Current and upcoming events (LeekDuck via ScrapedDuck) | 10 / 2 min per IP |
GET /api/events/{id} | Full details for one event (sanitized HTML from LeekDuck) | 30 / 2 min per IP |
GET /api/pokemon | Pokémon base stats list | 10 / 2 min per IP |
GET /api/moves | Fast and charged move data | 10 / 2 min per IP |
Bandwidth limit: 15 MB total across all endpoints per 5-minute window. Exceeding this triggers a 30-minute block.
All responses include Cache-Control: public, max-age=300. Game data refreshes every 6 hours; events every 30 minutes; raid bosses every 4 hours on Mountain Time.
Community Data
These endpoints return per-user profile data. No rate limit applies, but profile-scoped endpoints respect privacy settings and return an empty result rather than an error when data is not visible.
| Endpoint | Description |
|---|---|
GET /api/awards | Full awards catalog with names, descriptions, and icons |
GET /api/awards/of/{username} | Awards earned by a specific user |
GET /api/shinies/of/{username} | A user's public shiny collection; empty array if their profile is private or they have hidden their collection in Settings |
Private API
The private API is intended for trusted server-side consumers. It exposes the same data as the public API with no rate limiting, but requires an account with API access granted by the site superadmin.
| Endpoint | Description |
|---|---|
GET /api/private/data | All game data (same as public) |
GET /api/private/raids | Current raid bosses (same as public) |
GET /api/private/maxbattles | Current Max Battle bosses (same as public) |
GET /api/private/events | Events feed (same as public) |
GET /api/private/events/{id} | Full event detail (same as public) |
GET /api/private/pokemon | Pokémon base stats (same as public) |
GET /api/private/moves | Move data (same as public) |
POST /api/refresh | Force an immediate refresh of all cached game data (rate-limited to 2 per 10 minutes globally) |
Authentication uses your session cookie. Contact the site operator if you need access.
Usage Notes
- All endpoints return
application/json. - Exceeding the public rate limit returns
429 Too Many Requests. - Private endpoints return
403 Forbiddenwithout a valid API-access session. - This is an unofficial fan-made toolkit; endpoints may change without notice.
A running log of updates and improvements.
Empty your Pokemon box from the app
- Clear your whole Pokemon box in one go from the app, instead of removing entries one at a time. Your shiny collection is not affected
Pokemon pictures now come from this site
- Every Pokemon image is served from here instead of being loaded from an outside host, so browsing the shiny dex or your box no longer tells anyone else which Pokemon you are looking at
- They are also cached far longer, so pages that show a lot of Pokemon load quicker on a repeat visit
Your box now shows the right form
- A Pokemon saved in a particular form now shows that form's artwork instead of the ordinary one, so a Crowned Sword Zacian no longer looks like a Hero of Many Battles
- The same fix applies where your Pokemon are ranked against a raid boss, and in the app
Raid bosses now come and go on time
- When an event suspends the seasonal 5 star, Shadow or Mega raids, those bosses now leave the raids page for as long as the event runs
- Legendary Mega raid bosses now appear on the grid even when no event page happens to name them
- The raids page updates the moment a rotation opens or closes, including on a tab you left open
More raids, and more of them dated
- Armored Mewtwo now gets a full card with its CP range and counters instead of just a name
- 1 star and 3 star raids now follow the event schedule like the higher tiers, so an event that dates them shows the dates
- Up Next now shows the next day of a multi day raid event rather than skipping to the following week
- Bosses announced only in an event's write up, such as Mega Staraptor at Super Mega Raid Day, now reach the grid
- Raid bosses with a regional or special form in their name, and Primal Kyogre and Primal Groudon, no longer come up blank
The whole raid schedule, not just the next rotation
- Up Next now lists every dated raid rotation we know about, laid out as a calendar, instead of only the very next one per tier
- Every day of a multi day raid event now appears, so Mega Raichu X and Mega Raichu Y show up on Friday 4 September
- Mega raid bosses now show the CP you will actually catch, taken from the base Pokemon rather than the Mega
- A raid rotation headed with a range of dates now runs for the whole range instead of its first day
- A boss appearing on two different days now shows the right day and links to the right event
- Raids limited to particular venues, such as the LEGO Store raids, are no longer listed as if you could do them anywhere
- Event pages are re read four times as often while an event is running, so a roster change reaches the site sooner
- A boss is no longer listed twice when an event repeats a rotation that is already running across that day
- When a raid starts before we have the boss details, every boss of that rotation is named instead of only some of them
A clearer answer on deleting your account
- The privacy page now says exactly what happens when an account is deleted, including the 90 day window that lets a deletion made by mistake be undone
- Ask for your data to be erased outright with no waiting period and it is done that way instead
Form names now appear in your language
- Regional and alternate form names in the app are now translated instead of always showing in English
- Pa'u Oricorio, Pom-Pom Oricorio and the striped Basculin now show with their proper spelling
Editing an award no longer clears the rest of it
- Changing one field on an award or a feedback option now leaves the other fields alone instead of blanking them
Pokedex entries in the app
- The app's Pokedex details now come from this site instead of an outside service, so tapping a card no longer tells anyone else which Pokemon you are looking at
- Pokedex entries now appear in your own language rather than always in English
Tag requests sent back for changes no longer jump the queue
- The staff tag request queue now lists requests waiting on staff first, instead of putting ones already sent back to the requester at the top
Raids announced only on an event page now show up
- Current Raids now reads the raid line up out of an event's own page, so bosses like the Mega Ascension Megas appear instead of being missed
- Events that run a different line up each day now show the right bosses for the day
Raid bosses appear sooner after a rotation
- Current Raids now refreshes ten times a day instead of six, so a new boss shows up within a couple of hours of the game announcing it rather than up to four
- When a rotation starts before its boss details are available, the site now keeps checking every few minutes instead of waiting for the next scheduled refresh
Screenshot scanning no longer guesses your appraisal
- Screenshot scans no longer invent a star rating. If the stars cannot be read for certain, your own appraisal is left as you set it
Event reminders in the app
- Set up to five reminders on any event in the app, in your own timezone. They follow the event if it is rescheduled, and go away if it is cancelled
Max CP in the app is right past level 45
- The app read a level table that stopped at 45, so anything above it came out around 6% low. It now reaches level 51, Best Buddy included
Mega raid counter numbers add up
- Estimates against a Mega boss used its ordinary form's defence, which read about a third too high. They now use the Mega's own
Current Raids follows the real rotation
- Bosses appear and disappear with their actual rotation, each showing how long it has left on your own clock, with an “Up next” strip for what follows
Text in any script no longer breaks a form
- Reports, translator applications, custom pronouns and rating comments now accept Japanese, Thai, Hindi and emoji instead of being turned away for length
More of the app works without the website
- Bug reports, following, blocking, trainer feedback, awards and supporter tags all work in the app now
- Trainer settings, the directory, profiles, signing up and password reset are native too, so you are no longer sent out to a web page
Costumes in the app, picked instead of typed
- Browse every costume a Pokémon can wear, each with its shiny picture, instead of having to know the exact name
Report a player from the app
- Player reports can be filed from the app, into the same queue staff already use
Raid counters were naming the wrong Pokémon
- The counter list under every boss was in the wrong order and missing several of the strongest attackers. Fixed here, on the DPS compare tab, and when scoring your own Pokémon
Site links can open in the Android app
- Tapping a pogo.hails.app link can go straight to the app instead of the browser. An existing install needs a reinstall before it takes effect
Event listings cleaned up
- Names with an ampersand, oversized pictures, duplicated GO Pass rewards, footnote styling and the layout on a phone are all fixed
Seven costumes added
- Two new Pikachu costumes, plus five the site could not previously see at all: the Malaysia, Singapore, Philippines and Taiwan anniversary wigs, and Psyduck in a swim ring
- Event costumes the game will not confirm are now listed for a person to look at, rather than dropped in silence
Your Pokémon now have a home, and the Raids page uses them
- New My Pokémon page: add one by hand, or save it from the IV Calculator as before
- Open a raid boss and your own Pokémon are ranked against it above the general counter list, with shadow counted properly
Counter damage figures were wrong for most raid bosses
- Shadow, Alolan, Hisuian, Galarian and Mega bosses were scored against a placeholder defence stat, so their damage and survival numbers were often out by more than half. The order of the list was never affected
Accounts can be deleted, not only suspended
- An account can now be removed outright, for erasure requests and spam signups. Other trainers' history and strikes are left standing
Event details that were quietly missing are back
- GO Battle League events opened to a blank panel, and any event still running elsewhere in the world lost its details hours early. Both fixed
See which shinies are coming, and when
- An announced shiny appears on the checklist greyed out with its release date, and switches itself on that day
The shiny list no longer falls behind
- My Collection now carries all 1025 species with their release status, so a new shiny turns up the day it is released instead of waiting for a site update. Shiny Solgaleo added
- A “Show unreleased” tickbox reveals what is coming. The checklist and Missing tab still show only what you can catch today
Paldean Tauros, all three breeds
- Combat, Blaze and Aqua each have their own card. Fancy and Poke Ball Vivillon moved to unreleased, since their shinies have never been catchable
A faster checklist
- Searching your collection is near instant even when it is very full, and Evolve now offers any Pokémon in the game rather than only ones already listed
Costume suggestions work on a phone
- Tap the Costume box to browse every costume that Pokémon can wear, with pictures. Searching matches the names events use too, so “Professor Willow's assistant” finds “Willow's Lab Coat”
My Collection has a new look
- All four tabs use the same card grid, and tapping a card edits that entry in a small pop up
Catch dates stay put
- Dates were read back in the wrong timezone and drifted a day earlier every time you edited anything else. Both fixed, though an entry you edited before this may need its date setting back once
Shiny collections sort by Pokédex number
- Costumed shinies were piling up at the front of the grid and regional forms landed somewhere past 1000. They now sit with their species
A new home: pogo.hails.app
- Same tools, same account, same data, tidier name. Old pogo.hails.live links forward automatically and the calendar feed keeps working
A Wiki link in the sidebar
- Goes straight to the project documentation, and opens in a new tab
Event suggestions from the live schedule
- The event box on a shiny suggests events as they actually happen, with current and upcoming ones first
The app can manage your shinies
- List, add, edit, evolve and remove, against the same collection you see here, with the right costume and form artwork throughout
Add events to your calendar
- Subscribe the Events page to Google, Apple or any calendar app, filtered by the event types you care about, or add a single event on its own. Times come through correctly wherever you are
Unown, letter by letter
- Every form from A to Z plus the exclamation and question marks, each ticked, counted and searched on its own, with its own artwork
Every Vivillon pattern is its own card
- All 20 patterns, each with its own artwork, and hovering one names the real world region it comes from
- Scatterbug and Spewpa can be tagged with a pattern, which carries through to the matching Vivillon when you evolve
Tap a shiny to see the story behind it
- Opens it larger with everything the trainer recorded about it, and you can now set the catch date yourself instead of having the day you added it recorded
Costume art now comes from us
- Sprites are cached and served from here rather than a third party, and costume data is read from the game's own files
- Four costumes had been showing the wrong artwork for months and are corrected. 49 more costumes added, including the Visor set, the World Championships caps and the GO Fest 2025 goggles
More alternate forms
- Dusk Mane and Dawn Wings Necrozma, Crowned Zacian and Zamazenta, Black and White Kyurem, Resolute Keldeo, Lycanroc, Wormadam, Toxtricity, Oricorio, Basculin and Wash Rotom all have their own cards
- The add screen no longer runs off the page when a Pokémon has extra forms to preview
Shared costumes render everywhere
- Party Hat, Flower Crown, Cherry Blossom and the rest now show on every Pokémon that actually received them, and the picker only suggests costumes a species really has
Alternate battle forms added
- Therian Tornadus, Thundurus and Landorus, the three Deoxys formes, Origin Giratina, Dialga and Palkia, and Sky Shaymin
Event tags brought up to date
- Every season from launch onwards is in the suggestions, in order
Smarter screenshot scanning
- A scan no longer needs the appraisal screen, because the level arc is read directly
- Lucky, shadow and purified dust discounts are recognised automatically, a nicknamed Pokémon is identified from its candy, and a misread CP is rescued by the arc instead of returning nothing
Regional forms are now first class
- Alolan, Galarian, Hisuian and Paldean forms have their own cards and sprites, with a region selector on every entry, and evolving follows the right line
21 missing shinies added
- Including the complete Scorbunny and Sobble lines, Aegislash, Diancie, Mr. Rime and Ursaluna
Password reset by email
- The login page links to a reset form. Completing a reset signs you out everywhere, so an old or stolen session cannot survive it
Email confirmation at signup
- New accounts get a confirmation link. Nothing is locked while it is unconfirmed, the banner is only a nudge
Trainer cards open full profiles
- Clicking a card in the directory opens that trainer's profile page instead of a popup
Report a bug from the sidebar
- The red bug button opens a report that becomes a private conversation with staff. You get a reference number, and can mark it resolved, reopen it, or rate how it was handled
Report a player
- A report flag sits beside trainer names and on every profile. Reports go privately to moderators, and the reported player is never told who filed it
Searching finds the whole evolution line
- Searching “Deino”, “Zweilous” or “Hydreigon” returns all three, and branching families like Eevee work too
Translations survive updates
- Pending and approved translations are kept across site updates, and a reworded English string now archives the old translation instead of dropping it
Sidebar redesign
- Every link has an icon, grouped into Tools and Account, with the page you are on clearly marked
1,419 new trainer avatars
- Every game generation, Let's Go, Masters EX, GO player avatars, the Team GO Rocket leaders and a full Pokémon Platinum set
- The picker searches by type, role, gender, region and generation
Better screenshot reading
- CP, name, HP and stardust are read by a neural engine, so the white CP font and the dust cost work over busy backgrounds, and the status bar clock is no longer mistaken for CP
Fixed My Box failing to load
- The box tab reported “Failed to load data” because its web routes were missing
Evolve a shiny in place
- Charmander becomes Charmeleon and on through the line, with a picker for branching families like Eevee and Slowpoke
Sidebar user section
- Your username opens your profile instead of logging you out, with Social, Friends and Logout below it
Shiny grids on profiles
- Six per row with more room to breathe, shrinking to two on a narrow screen, and sorted by Pokédex number when expanded
IV Calculator layout
- Laid out to match the DPS and raid pages, and the status buttons no longer read “undefined”
IV Calculator arrives
- New page at /iv: enter CP, HP and stardust cost to find every possible IV spread for any Pokémon
- Logged in trainers can save results to a personal Pokémon box, or scan a screenshot to fill the form in
IV Calculator fixes
- Valid inputs no longer fail with “Failed to load data”, every dust bracket now includes its final half level, and regional forms use their own base stats rather than the wrong species'
- Added a Lucky, Shadow and Purified selector that normalises the dust cost for you, and raised the CP limit to 50,000 for Megas
Scanner brought in line with the mobile app
- CP is read twice and the arc scanned when the text cannot be read, names come from the caught footer or the Mega Energy line, and status is inferred from the dust cost when the words are off screen
- Extracted values appear in an editable card so you can correct a misread without uploading again, and your trainer level is taken from your settings
- A scan also tries to read the appraisal stars, leaving the field editable when it cannot
Connections page
- A new page with Friends, Followers and Following tabs, reachable from any trainer's profile
Rank, badges and awards always visible
- These show on profiles and in the directory whatever your privacy setting, which now only hides your trainer name, pronouns and location
- Awards appear as pills, and hovering one shows who granted it and any note they left
Desktop layout
- The sidebar stays visible on desktop, content fills the width beside it, and the calculators use two columns
- Shinydex removed, with shiny browsing consolidated into My Collection
Logout confirmation
- Clicking logout now asks before it signs you out