For developers

Content API

Read-only access to travel vaccination advice, infectious diseases and sources on vaxy.app. Static JSON files, no authentication.

Overview

The Vaxy Content API is not a runtime server: each deploy generates static JSON alongside existing HTML and Markdown pages. Data comes from verified sources (LCR, WHO, RVP, RIVM where applicable).

Base URL

All endpoints live under the locale path:

https://vaxy.app/en/travel/{slug}.json

Endpoints

  • GET /{locale}/travel.json

    List of countries with LCR travel advice

  • GET /{locale}/travel/{slug}.json

    Travel vaccination advice per country

  • GET /{locale}/travel/diseases.json

    List of infectious diseases with travel advice

  • GET /{locale}/travel/diseases/{slug}.json

    Disease profile and country links

  • GET /{locale}/data/vaccinations.json

    Vaccine catalog (expanding)

Locale

Locale is in the path (nl, en, de, fr, es). Names and LCR strings follow the locale; disease profile body text is nl or en only for now (see data.profileInLanguage). Markdown mirrors use the same route with .md.

Response fields

  • schemaVersion — contract version (currently 1)
  • inLanguage — locale of this file (path + localized fields)
  • canonicalUrl — HTML page for humans
  • markdownUrl — Markdown mirror for LLMs
  • alternateLocales — links to other languages
  • lastUpdated — last content update
  • data — payload (countries/diseases: lcrUrl links to LCR; diseases: profileInLanguage is the language of profile.blocks)

Attribution

Link to the original source via data.lcrUrl (LCR) where available. Medical content supports personal health admin only; Vaxy is not a healthcare provider.

Build validation

Empty vaccinations.json and openapi.json are exempt. Each populated vaccination entry requires sourceUrl.

OpenAPI

Machine-readable specification:

openapi.json

Example

Live URLs:

curl "https://vaxy.app/en/travel/thailand.json"

Not medical advice. Always verify current LCR or clinician guidance before travel.