API v1
Stable

REST API documentation

A public REST API for browsing the Guess How Much? dataset. Read endpoints are open; write endpoints use bearer tokens issued via magic link.

Fast

p99 < 120ms across all read endpoints, served from edge.

Versioned

Stable v1 contract. Breaking changes ship under /v2 only.

Open

Read access requires no key. Generous 600 req/min limit.

Base URL

https://api.guesshowmuch.app/v1

Authentication

Public read endpoints are unauthenticated. Write endpoints require a bearer token from the magic-link flow.

curl https://api.guesshowmuch.app/v1/restaurants \
  -H "Authorization: Bearer ghm_live_3a9f...e71"

Endpoints

GET
/v1/restaurants

List approved restaurants. Supports city, suburb, price filters.

GET
/v1/restaurants/:id

Get a single restaurant with its comments and votes.

POST
/v1/restaurants

Submit a new listing for moderation. No auth required.

PATCH
/v1/restaurants/:id

Update a listing. Owner or moderator only.

DELETE
/v1/restaurants/:id

Remove a listing. Moderator/admin only.

POST
/v1/restaurants/:id/vote

Cast an upvote or downvote. Stored per-device.

POST
/v1/restaurants/:id/flag

Flag for outdated info. Auto-hide at 3 flags.

GET
/v1/hot-deals

Active time-bounded specials with countdown metadata.

GET
/v1/community/posts

Community feed posts.

POST
/v1/community/posts

Create a post (member+).

POST
/v1/admin/import

Bulk CSV import. Admin only.

Sample response

GET /v1/restaurants/r-001

{
  "id": "r-001",
  "name": "Hungry Tum Tum",
  "dish": "Pad See Ew + Thai Tea",
  "price": 11.50,
  "currency": "AUD",
  "suburb": "West End",
  "city": "Brisbane",
  "location": { "lat": -27.483, "lng": 153.008 },
  "votes": { "up": 142, "down": 7 },
  "verifiedAt": "2026-04-22T08:30:00Z",
  "featured": true,
  "tags": ["Thai", "Lunch"]
}

Webhooks

restaurant.approved

Fires when a moderator approves a submission.

restaurant.flagged

Fires when flag count crosses the auto-hide threshold.

hotdeal.expired

Fires when a time-limited deal ends.

post.created

Fires when a community post is published.

Status

API
Operational
Webhooks
Operational
Image CDN
Operational