# govoss-catalog > Union catalogue of government open source software, harvested first-hand from > 19 national, municipal and international catalogues across 16 countries and > bodies. 3,054 active entries (3,553 rows in /entries.json, set-aside > ones included and flagged). Generated 2026-09-23T16:40:54Z. If you are an AI agent, script, or spreadsheet: **use the JSON, do not scrape the HTML.** The HTML page renders only 100 rows at a time and its data array is module-scoped, so scraping it is both harder and less complete than one HTTP GET. ## Endpoints (static files, CORS open, no auth, no rate limit) GET /entries.json all 3553 rows, one array, structured fields 499 carry excluded:true with an exclude_reason (fork, CI plumbing, no description...). Filter on `excluded` for the 3054-entry catalogue. GET /meta.json category enum, sources, licences, counts, known gaps GET /by-product.json inverted index: proprietary product -> alternatives GET /by-category/.json one file per category, keys listed below GET /by-country/.json one file per country, codes listed below. NOTE: the code is the country of the CATALOGUE that listed the software, NOT the tier of government that published it. There is no municipal/regional/national distinction in this data. An entry listed by several catalogues appears under each. GET /v1/entries.json versioned alias - pin this GET /status.json freshness, last run, per-source counts, change log GET / the human page These also redirect to /entries.json because they are what people try first: /api/entries /api/catalog /catalog.json /data.json ## Answering "what can we stop paying for?" /by-product.json is keyed by proprietary product name. 244 entries carry mappings covering 314 products. Two GETs answer a whole licence inventory. /products.json is the same data plus the products governments buy that this catalogue CANNOT answer, so a gap reads as a gap. /products.html is the human view of both. Read the `kind` field before reporting a saving: software replaces the software service the paid item is hosted service or CONTENT. A CMS does not replace hosting; an LMS does not produce training content. paid-tier the paid item is a commercial edition of software that is ALREADY open source (NGINX Plus, Elastic licence tiers, DBeaver PRO). Often the cheapest win: no migration, just a renewal you stop. `confidence` is strong | partial | adjacent. Do not treat adjacent as a saving. An empty array means NOT MAPPED, not "no European alternative exists". A row carrying `inherited_from` is the core's mapping, taken by a variant (below); /by-product.json lists the core only, with its variant_count. ## Variants: one software, several governments' versions variant_of {id, name, via, evidence} - this entry is a version of that one. via = publiccode (the publisher's isBasedOn) or curated (checked by hand; evidence says what was checked). Never inferred from names. variants on the core: the entries that are versions of it. variant_count len(variants). NOT the same claim as catalogue_count, which counts catalogues listing the SAME software. Count software, not deployments: skip entries whose variant_of is set. ## Honesty flags you should carry into anything you publish translated_from ~74% of descriptions are MACHINE TRANSLATIONS from de/it/fr/fi/sv. description_original holds the source wording. categories_inferred true = category inferred by keyword rules, not declared upstream link_dead repository URL confirmed gone over 2+ consecutive checks merged_from how many catalogue records were merged into this entry licence_spdx null where the upstream string was not a real SPDX id ("GPLv3+", "MIT licence"). Use `licence` for the raw string. generated_at build time. The weekly run harvests and publishes itself; a hand redeploy between runs is possible, so trust generated_at over the deploy date. ## Categories (19) case-workflow Case & Workflow Management 367 documents Documents & Records 306 web-content Content & Web Publishing 281 collaboration Collaboration & Communication 333 data-analytics Data, Analytics & Visualisation 621 geospatial Geospatial & Mapping 203 identity-security Identity, Access & Security 205 citizen-services Citizen Services & Participation 135 finance-procurement Finance, Procurement & Accounting 98 hr-workforce HR & Workforce 22 crm-service CRM & Service Desk 111 dev-tools Developer Tools & Platform 416 infrastructure Infrastructure & Operations 188 integration Integration, APIs & Data Exchange 87 learning-knowledge Learning & Knowledge 98 health-social Health & Social Care 11 environment-transport Environment, Energy & Transport 25 office Office & Productivity 103 registers Registers & Reference Data 16 ## Sources FR/sill 670 IT/developers-italia 537 DE/openCode 464 DK/os2 298 GLOBAL/dpg 254 BE/iMio 236 NL/code.overheid.nl 198 BG/governmentbg 193 SE/offentligkod 167 CH/swiss 164 DE/opensource.muenchen.de 142 PT/arte 92 CA/code.open.canada.ca 67 TW/code.gov.tw 57 FI/avoinkoodi 54 SE/digg 44 FR/awesome-codegouvfr 19 EU/code.europa.eu 11 IE/ogcio 5 ## Countries (16) The country of the CATALOGUE that listed the software, NOT the tier of government that published it. This data carries no municipal/regional/national distinction, so /by-country/NL.json is "what code.overheid.nl lists", ministries included — it cannot answer "what do Dutch LOCAL governments publish". Entries listed by several catalogues appear under each code, so these sum to more than the active total. FR 679 DE 602 IT 537 GLOBAL 254 DK 213 BG 180 CH 164 NL 120 BE 101 SE 79 CA 66 TW 57 FI 54 PT 39 EU 11 IE 2 ## Known gaps Absence is a finding. Categories where the European commons appears to have nothing: - social media scheduling / management - SMS / mass notification platforms - mobile field data collection - digital signage Not replaceable by software at all: - managed hosting (Pantheon, WP Engine) — a CMS does not replace hosting - training content subscriptions (LinkedIn Learning, Pluralsight, GO1) — an LMS does not produce course content Unresolved national catalogues: IE, PT, CY Pending an API key: NL The EU's own aggregate catalogue is deliberately NOT a source: its pager, facets and search all ignore query strings, so only 20 of its 1,084 solutions are reachable.