Developers
Your krogat map, on your site
One read-only JSON endpoint and one iframe. Both show only what is already public on krogat: a member’s current ratings that aren’t private. Nothing needs a key.
Embed a map
Paste this where the map should go, with your username. It shows your rated places as score pins (or a list), and every place links back to its krogat page. Signed in, you can copy it ready-made from Settings.
<iframe src="https://krogat.com/embed/u/{username}" width="100%" height="480"
style="border:0;border-radius:16px" loading="lazy" title="{username} on krogat"></iframe>Ratings API
GET https://krogat.com/api/public/v1/users/{username}/ratings?limit=50&offset=0- limit
- 1–100, default 50.
- offset
- Default 0. Follow
pagination.nextuntil it’s null. - Order
- Highest score first, then most recent visit.
- Scores
- The member’s own 1–10 rating, as they gave it. Not a krogat aggregate.
- CORS
- Open (
Access-Control-Allow-Origin: *), so you can call it from a browser. - Caching
- Responses are cached for up to 15 minutes; new ratings show up after that.
- Limits
- 60 requests a minute per IP. Over that you get
429; wait a minute. - 404
- Unknown username, or an account that approves its followers (its ratings aren’t public).
Example response
{
"user": { "username": "anna", "display_name": "Anna", "is_tastemaker": true, "url": "https://krogat.com/u/anna" },
"ratings": [
{
"score": 9.5,
"visited_on": "2026-08-14",
"would_return": "yes",
"restaurant": {
"name": "Example Bistro", "slug": "example-bistro", "neighbourhood": "Södermalm",
"cuisine_tags": ["french"], "lat": 59.3151, "lng": 18.0712,
"url": "https://krogat.com/r/example-bistro"
}
}
],
"pagination": { "total": 128, "limit": 50, "offset": 0, "next": "https://krogat.com/api/public/v1/users/anna/ratings?limit=50&offset=50" }
}Ground rules
- No notes, photos, companions or private ratings are ever in the API.
- Link back to the restaurant’s krogat page when you show a score.
- Don’t present a member’s scores as someone else’s, or as a krogat rating.