✈
    TravelmodeDevelopers
    🔎/
    🔑Manage API Keys
    Feature
    🌦️Weather🛂Visa🧩Platform🧭Trips🤖Agent Runs📅Events

    Visa Intelligence API · v1

    📖Overview🧪API Reference (Try It)
    Guides
    🚀Getting Started🔐Authentication & Scopes⏱️Rate Limits🔔Changes & Webhooks⚠️Errors
    ⬇️Download openapi.yaml
    Developers / Visa

    Visa Intelligence API

    Deterministic visa requirements, the official-source document catalog, and a change-detection feed with webhooks under a single versioned /v1 surface.

    Production base URLhttps://api.travelmode.ai
    Versionv1
    Specopenapi.yaml

    🧪 Open the API Reference

    Browse every endpoint, search the schema, and call production with the built-in Authorize / Try It console.

    🚀 Getting Started

    Make your first visa check and read the response.

    Guides

    🚀

    Getting Started

    Make your first visa check and read the response.

    🔐

    Authentication & Scopes

    API keys, the per-endpoint scopes, and the customer-vs-key model.

    ⏱️

    Rate Limits

    Per-key hourly quota and the throttling headers.

    🔔

    Changes & Webhooks

    Poll the change feed or subscribe with signed webhooks.

    ⚠️

    Errors

    Every error code, status, and example envelope.

    Travelmode Visa Intelligence API

    Last verified: 2026-06-20 (Task #389 — Visa Intelligence API docs).

    This directory holds the public contract for the Visa Intelligence feature of the Travelmode developer platform. The OpenAPI spec is the source of truth; the markdown guides below add narrative guidance and worked examples.

    Status: v1. The public surface covers deterministic requirement checks, the published rule set, the official-source catalog (sources + documents), and a change-detection feed with customer-managed webhooks. The Visa feature is published in the developer portal at /developers/visa on the deployed app (e.g. https://travelmode.ai/developers/visa). Typed client SDKs are auto-generated from this spec — see sdks/typescript/ and sdks/python/.

    Admin-only routes under /api/admin/visa/** are intentionally not documented here — this directory covers only the customer-facing /v1/visa/** surface.

    Hosted developer portal

    Every file in this directory is published under the Visa feature of the portal, e.g. https://travelmode.ai/developers/visa:

    URLWhat it serves
    /developers/visaVisa feature overview (this README).
    /developers/visa/<slug>Each markdown guide (getting-started, authentication, rate-limits, changes-webhooks, errors).
    /developers/visa/referenceInteractive OpenAPI 3.1 reference (Stoplight Elements) with built-in Authorize and Try It panels.
    /developers/visa/openapi.yamlCanonical YAML spec, served raw.
    /developers/visa/openapi.jsonSame spec, JSON-encoded for tooling.

    The portal is a Next.js route under app/developers/ that reads this directory at runtime via the feature registry (app/developers/lib/features/). There is no separate publish step: the moment a change to openapi.yaml or any *.md file lands on main and the deploy build runs (npm run build), the live portal serves the new content. The deploy build also runs npm run check:openapi, which fails the deploy if any feature spec is invalid — so a broken spec never reaches production.

    Files

    FileWhat it contains
    openapi.yamlOpenAPI 3.1 spec — every Visa path, schema, error code, header, and example. Validated by npm run check:openapi.
    getting-started.mdFirst request, base URL, auth quickstart, first visa check.
    authentication.mdAPI keys, scopes, customer-vs-master-key model.
    rate-limits.mdPer-key hourly quota, headers, 429 handling.
    changes-webhooks.mdPolling the change feed and subscribing with signed webhooks.
    errors.mdEvery error code, status, and example envelope.

    Quick links

    • Auth: X-Visa-Intel-Key: vsk_live_... (or Authorization: Bearer) — see authentication.md.
    • Error envelope: flat { error, code, details?, requiredScope?, retryAfter? } — see errors.md.
    • Scopes: visa:check, visa:changes, visa:sources, visa:health — see authentication.md.
    • Snapshots (/v1/visa/sources/{cc}/snapshots) are admin-cookie gated, not API-key gated — see authentication.md.
    • Customer self-serve key management and onboarding: docs/visa-intel-customer-onboarding.md.

    Validating the spec

    npm run check:openapi
    

    check:openapi parses every feature's OpenAPI YAML through @apidevtools/swagger-parser, which dereferences $refs and runs the standard OpenAPI 3.x structural validator. The validator runs as part of npm run check.