All changes to the SuperGryd v1 API schema are documented here, newest first. Changes within v1 are additive only — existing fields are never removed or renamed without a major version bump. Build your parser to ignore unknown fields.
Soft-warning model for MICE / flight-only inputs replaces the previous 422 hard reject.
scope_flag — top-level string in every result. One of leisure, mice, flight-only, unknown. Inspect this field before showing output to clients.
scope_warning — top-level string | null. Human-readable explanation when scope_flag is mice or flight-only; null for leisure inputs.
MICE and flight-only inputs no longer return 422 rejected_non_leisure. They now return 200 with extracted segments and scope_flag set so callers can decide whether to surface the result. The 422 error code remains as a defensive fallback only.
Added schema_version diagnostic field to all responses.
schema_version — top-level string in every result object. Use this to confirm which schema a response was generated against when reporting issues.
Added auto-computed Google Maps directions URLs at trip and day level.
trip_maps_url — top-level string | null. Google Maps directions URL covering all geocodable activity stops across every day of the trip. Null if fewer than 2 stops found. Use for a "View full route" button.
days[].day_maps_url — string | null per day. Google Maps directions URL for that day's activity stops only. Null if fewer than 1 geocodable stop. Use for a "View Day N on Maps" button.
Initial public release of POST /api/v1/enrich.
Initial response schema — destination, duration_days, pax_summary, duration_action, inclusions, exclusions, transfers, city_heroes, days[].
days[].slots[] with slot_type, title, narrative, maps_link, dining_link, nearby_link, duration_mins, time_hint, source, is_mandatory, media[].
GET /api/v1/keys — returns active keys, usage counts, and wallet balance for the authenticated customer.