{
  "endpoints": {
    "DELETE /reports/{id}": "remove a report",
    "GET /app": "browsable concert listing with a report-a-problem button",
    "GET /calendar.ics": "the same, as a subscribable calendar",
    "GET /concerts": "concerts as JSON",
    "GET /genres": "genres carried by upcoming concerts",
    "GET /reports": "list every filed report",
    "GET /reports/{id}": "fetch one report",
    "GET /venues": "known venues",
    "POST /reports": "file a report; body {\"concert_id\": int, \"comment\": string}",
    "PUT /reports/{id}": "update a report's comment; body {\"comment\": string}"
  },
  "filters": {
    "added_since": "only concerts first seen after this time",
    "city": "city name",
    "depth": "how many graph hops to follow (default 3, max 6)",
    "expand": "subgenre (default) | fusion | influence | all | none. 'all' also follows fusion and influence edges, which spread far beyond the genre you asked for",
    "from": "YYYY-MM-DD or RFC3339; defaults to now",
    "genre": "repeatable or comma-separated; matches the genre and its subgenres",
    "limit": "max results (default and max 2000)",
    "q": "free text over title and artists",
    "to": "YYYY-MM-DD or RFC3339",
    "venue": "venue slug"
  },
  "service": "dkconcerts"
}
