MeowStreets Play free in your browser

The MeowStreets API

Tools, sheets, bots and userscripts read the city through the API, with a key you make yourself. A key only ever reads: there is no way to train, fight, buy or do anything else with one. It shows a tool what you could already see on the pages, and nothing more.

Never give a tool your password. Give it a key, at the lowest level it needs, and revoke the key when you stop using the tool. Asking for a player's password breaks the terms.

Keys

Make a key under Account in the game. Name it after the tool you are giving it to, pick its level, type your password, and copy the key: it is shown once, and the city keeps only a fingerprint of it, so a lost key cannot be shown again, only replaced. You may hold 5 keys. Revoking one stops it at once. Changing your password does not revoke your keys. Resetting it from an emailed link, recovering the account with a recovery code, or staff signing the account out everywhere revokes them all.

LevelReads
PublicWho owns the key, any cat's page, any crew's page, and the city.
SelfPublic, and your own cat: bars, battle stats, cash, status, cooldowns and Mews.
CrewSelf, and your crew's desk (the roster, chain, contracts, jobs running and the treasury's balance), if the crew's leader has opened it under Management, API access.

Calling it

Every route is a GET under https://meowstreets.com/api/v1/ with the key in a header. Never put a key in the address, where it ends up in logs.

curl https://meowstreets.com/api/v1/me \
  -H "Authorization: Bearer ms_your_key_here"

An answer is JSON: {"ok": true, "data": {…}, "at": 1762300000000}, where at is the server's clock. A refusal is {"ok": false, "error": {"code": "…", "message": "…"}}. Every time is milliseconds since 1970, UTC, and a time that has passed or does not apply is null. Any website may call the API from a browser, because the key is the whole credential.

Keep track of a cat or a crew by its id, never its name. A cat may change its name, and the name it gives up is anyone's to take; previous_names on a cat says what it was called before.

Routes

RouteLevelReturns
/v1/keyPublicThe key itself: its name, level, owner (id and name) and the rate limit.
/v1/cityPublicThe server time, how many cats have the city open, and when the day (and every crew chain) ends at 00:00 UTC.
/v1/cat/<id>PublicWhat a cat's page shows anyone: name and the names it went by before, level, crew and rank, status, when it last did anything (in the page's own words, such as 3 hours ago), home, companion, the record, and its place in the city's ranking as the Players list prints it.
/v1/crew/<id>PublicWhat a crew's page shows anyone: leader, standing, best chain, members and the perks it holds.
/v1/meSelfYour own cat: bars with when each is full, battle stats, cash and bank, status, cooldowns, gym, home, crew and unread Mews.
/v1/me/mewsSelfYour Mews, newest first, a page at a time. Takes lane and before as the Mews page does.
/v1/crewCrewYour crew's desk: the roster with each cat's status, last action, today's chain links, donations and jobs; the chain; respect, standing and the treasury's balance; the jobs running and who is on them; this week's contracts. Only once the leader has opened it.

Limits

A cat's keys share 60 reads a minute between them, however many keys and tools there are, and one address may make 300 reads a minute whoever's keys it holds. One read a minute of /v1/me is enough for any timer: each bar comes with full_at, so count down from that instead of asking again. Reading never changes your cat or gives it anything, so polling more often is no help in play.

Errors

CodeStatusMeans
key_missing401No Authorization: Bearer header.
key_invalid401Not a key the city knows, or one that was revoked.
suspended403The key's owner is suspended.
key_level403The key's level does not reach the route.
crew_none404The key's cat is not in a crew.
crew_closed403The crew's leader has not opened the desk to keys.
not_found404No such route, cat or crew.
bad_request400The request could not be read.
rate_limited429Over 60 reads a minute for the cat, or 300 for the address. Wait for Retry-After.
method405Anything but GET.
server_error500Something broke on our side.

The rules

Abuse is a breach of the terms like any other, and can cost the account. Questions and requests go to support@meowstreets.com or the API thread in the game's Discord.