Feeds & API

Everything Has Things knows about Kingston is available as an open feed, covering the next 60 days. No key, no sign-up, CORS enabled. If you build something with these, we would rather you did than not.

City feeds

Every city site publishes the same four feeds, so montreal.hasthings.com/feeds/events.csv is Montréal's. City pages announce them with <link rel="alternate">, so feed readers and calendar apps can find them from the page address.

API

Parameters for /api/events

night
YYYY-MM-DD — one night. Nights run to 5 AM, so a 1 AM show belongs to the evening before.
date
YYYY-MM-DD — one calendar date, midnight to midnight, America/Toronto.
from, to
ISO 8601 instants. Use one time selector at a time.
category
music film comedy dj-party theatre art talk other. One name or a comma-separated set (category=music,comedy); other stands for every kind without a filter of its own.
venue, neighbourhood
Venue slug; neighbourhood display name.
tag
Tag slug — a genre, a series, or a provider such as rickshaw-theatre. Items carry their tags.
size, minImportance, bands
notable (importance 20 and up: club and theatre nights) or big (40 and up: arenas, festivals, sold-out shows); or a number 0–100. Importance is computed from the room's size, how many independent sources list the event, and whether it sold out — never from taste.
status
scheduled sold-out postponed cancelled
sort, dir
time title venue neighbourhood category age status importance; asc or desc.
limit, offset
Default 100, maximum 500. The envelope carries total and nextOffset.

The API is scoped by hostname. There is no ?city= parameter, because kingston.hasthings.com already says which city you mean. Unknown or malformed parameters return a 400 with a reason.

Limits and caching

Responses are cached at the edge: feeds for 15 minutes, API answers for 5 minutes, and both may be served stale for a while after that. Polling more often than that gets you the same bytes. There is no rate limit today beyond that cache; if a client makes the site slow for people, that client gets blocked, so identify yourself with a User-Agent that says who you are.

Licence and attribution

The listing metadata in these feeds — titles, times, venues, categories, tags and links — is published under CC BY 4.0. Use it, reshape it, republish it; credit it as “Data: Has Things (hasthings.com)” and, where you can, keep the link to the venue or seller each row carries. Every JSON envelope repeats this in a license block and every item names its sources.

The forecast is not ours and travels under its own terms. /api/events, /api/events/<slug> and /feeds/events.json all carry a weather block beside the events — the whole city's nights on the list endpoints, and just the nights one event runs on when you ask for that event — with a source naming Open-Meteo and its CC BY 4.0 terms. Join it to events on nightDate; the outdoors field is what says whether the weather bears on one, and it sits on each occurrence rather than on the event, because a run can be in one room on Friday and another on Saturday. Keep the attribution “Weather data by Open-Meteo.com” with anything you publish from it.

What the bulk feeds deliberately leave out: descriptions, posters and images. Those belong to the venues and ticketing platforms that wrote them, and their terms do not allow us to hand them on in bulk. The single-event API endpoint mirrors the event page, description included, for display only. Has Things is a directory of pointers, not a copy of anyone's catalogue; if you need the full listing, follow the link.

Venue calendars