Static files and dumps
Courmap publishes everything as files. There is no server to run.
Weekly data releases
Section titled “Weekly data releases”Each weekly release is tagged data-<version> on GitHub Releases, where <version> is the ISO year and week (2026.43). The newest one is marked latest, so https://github.com/courmap/courmap/releases/latest/download/<file> always works.
| File | Contents |
|---|---|
courmap-<version>.sqlite.gz |
The SQLite dump: every work, provider ID, projection, sequence, alias and group. What offline mode and the Sonarr proxy read. |
courmap-<version>.json.gz |
The same data as JSON: meta, works, sequences, groups. |
meta.json |
The data version, build information, counts, and dumps: this release’s tag and each dump’s URL and SHA-256. |
SHA256SUMS |
Checksums of every other file, in sha256sum -c format. |
DATA_LICENSE |
ODbL 1.0 and DbCL 1.0, the license of the data. |
LICENSE |
Apache-2.0, the license of the code. |
ATTRIBUTION.md |
The sources the data builds on. |
Dumps are gzip, so any language can open them. Verify a download with:
sha256sum -c SHA256SUMS --ignore-missingStatic shards
Section titled “Static shards”The same data, split into small JSON files for remote mode, under https://data.courmap.com/v1/:
| Path | Contents |
|---|---|
/v1/meta.json |
The data version, build information, counts and dump links. |
/v1/works/<id>.json |
One work: exactly the record lookup returns, without data_version. |
/v1/refs/<provider>/<shard>.json |
Provider ID to the sorted list of work ids. shard is the ID divided by 1000, rounded down; IMDb IDs use the digits after tt. |
/v1/sequences/<id>.json |
One absolute sequence. |
/v1/groups/<id>.json |
One release group. |
/v1/groups.json |
Every release group, for resolvers. |
/v1/aliases/<prefix>.json |
The alias index, split by the first two characters of each normalized alias: [[alias, [work ids]], ...]. Letters a-z and digits stay as they are; any other character becomes _ and six hex digits. |
/v1/aliases/grams/<0-255>.json |
The trigram set for fuzzy title matching: { trigram: [prefixes] }. |
Caching contract
Section titled “Caching contract”meta.jsonis served withCache-Control: max-age=300.- Every other file is immutable within a data version and served with
max-age=3600, stale-while-revalidate=86400. A new version overwrites the files, andmeta.jsonis written last, so a client never sees a half-published version. - Clients poll
meta.jsonat most hourly and refetch other files only whendata_versionchanges. - Every file allows cross-origin
GETandHEAD, so browsers can read the data from any site.
This product uses the TMDB API but is not endorsed or certified by TMDB.