{
  "name": "TravelTime API",
  "slug": "traveltime",
  "website_url": "https://traveltime.com/",
  "vendor_description": "\"the leading location API for calculating travel times across driving, public transport, walking and cycling\"",
  "categories": [
    "routing"
  ],
  "summary": "TravelTime API is a REST-based travel time and location intelligence service, established in 2009, that calculates isochrones, many-to-many travel time matrices, routing, and geocoding across driving, walking, cycling, and public transport modes in 235 countries. It is used by property portals, job platforms, and commercial real estate firms, with customers including Rightmove, Zoopla, CBRE, JLL, and the NHS. Pricing is subscription-based with no published rates; a 2-week free trial is available, and paid tiers require a sales conversation. SDKs are available for Python, Node.js, Java, Ruby, and R, and the API is GDPR-compliant with a published SLA.",
  "capabilities": {
    "supported_actions": [
      "time-filter (travel time matrix)",
      "time-filter/fast (fast travel time matrix)",
      "time-filter/postcodes",
      "time-filter/postcode-districts",
      "time-filter/postcode-sectors",
      "time-map (isochrone)",
      "time-map/fast (fast isochrone)",
      "routes (directions with turn-by-turn)",
      "h3 (H3 grid catchment)",
      "h3/fast",
      "geohash",
      "geohash/fast",
      "geocoding/search",
      "geocoding/reverse",
      "distance-map",
      "map-info",
      "supported-locations",
      "map-tiles (raster display tiles)"
    ],
    "supported_regions": [
      "235 countries and territories globally for driving, walking, and cycling",
      "Public transit coverage: full (95%+ stops) in 80+ countries including UK, USA, Canada, Australia, France, Germany, Japan; partial in 90+ more",
      "Advanced traffic modeling in 31 countries including USA, UK, Canada, Australia, and most Western European nations; simpler congestion model elsewhere",
      "Fast endpoints (time-filter/fast, time-map/fast) available in 38 countries primarily developed nations",
      "Frozen traffic environments for 6 countries: UK, USA, Canada, Mexico, Australia, New Zealand",
      "Travel modes: driving, walking, cycling, public transport (including bus, coach, train, driving+train, cycling+public_transport combinations)"
    ],
    "supported_languages": [
      "English (turn-by-turn instruction language not explicitly documented; geocoding results support BCP47 language tags via Accept-Language header)"
    ],
    "input_types": [
      "origin/destination coordinates (latitude/longitude)",
      "departure time or arrival time (ISO 8601)",
      "transportation mode",
      "maximum journey time in seconds (up to 14400)",
      "location IDs (up to 2000 per request)",
      "address or postcode strings (geocoding)",
      "bounding box for geocoding",
      "level of detail for isochrone shape",
      "range / departure time window",
      "protocol buffers for matrix requests"
    ],
    "output_types": [
      "travel time in seconds",
      "distance in meters (driving/walking/cycling)",
      "distance breakdown by mode",
      "UK public transport fares",
      "route geometry / polyline",
      "turn-by-turn navigation steps",
      "isochrone polygon",
      "GeoJSON",
      "KML",
      "WKT (Well-Known Text)",
      "bounding boxes",
      "H3 grid cells",
      "Geohash cells",
      "geocoding results as GeoJSON FeatureCollection with confidence score",
      "unreachable locations array",
      "protocol buffers (matrix)",
      "raster map tiles (OSM Bright and Positron styles)"
    ],
    "webhooks_supported": false,
    "sandbox_available": false,
    "sdk_languages": [
      "Python",
      "Node.js / TypeScript",
      "Java",
      "Ruby",
      "R"
    ],
    "mcp_server_available": false
  },
  "integration": {
    "api_style": "rest",
    "base_url": "https://api.traveltimeapp.com/v4",
    "api_version": "v4",
    "versioning_scheme": "url",
    "stability": "ga",
    "deprecation_policy_url": null,
    "auth_methods": [
      "api_key"
    ],
    "auth_docs_url": "https://docs.traveltime.com/api/start/auth",
    "idempotency_supported": false,
    "error_format": "vendor-specific",
    "webhook_signing": null,
    "webhook_events_url": null,
    "rate_limit_requests": 60,
    "rate_limit_window": "minute",
    "sdk_packages": [
      {
        "package": "traveltimepy",
        "language": "Python",
        "official": true,
        "repo_url": "https://github.com/traveltime-dev/traveltime-python-sdk"
      },
      {
        "package": "traveltime-api",
        "language": "Node.js / TypeScript",
        "official": true,
        "repo_url": "https://github.com/traveltime-dev/traveltime-sdk-nodejs"
      },
      {
        "package": "com.traveltime:traveltime-sdk-java",
        "language": "Java",
        "official": true,
        "repo_url": "https://github.com/traveltime-dev/traveltime-sdk-java"
      },
      {
        "package": "travel_time",
        "language": "Ruby",
        "official": true,
        "repo_url": "https://github.com/traveltime-dev/traveltime-sdk-ruby"
      },
      {
        "package": "traveltimeR",
        "language": "R",
        "official": true,
        "repo_url": "https://github.com/traveltime-dev/traveltime-sdk-r"
      }
    ],
    "mcp_url": null,
    "quickstart_url": "https://docs.traveltime.com/api/start/travel-time-distance-matrix"
  },
  "pricing": {
    "pricing_model": "subscription",
    "has_published_pricing": false,
    "starting_price_usd": null,
    "price_basis": null,
    "free_tier_available": true,
    "free_tier_limit": "2-week trial; 60 hits/minute during trial, 5 hits/minute after trial on free plan",
    "free_tier_details": "2-week free trial at 60 hits/min (evaluation/internal use only, not for commercial or end-user deployment). After trial, a persistent Non-Paid Service plan remains available at 5 hits/min with medium-only level-of-detail for isochrones. Paid plans offer unlimited usage for a fixed annual fee.",
    "minimum_commitment": null,
    "self_serve_signup": true,
    "requires_sales_call": true,
    "requires_verification": true,
    "enterprise_plan_available": true,
    "price_points": []
  },
  "compliance": {
    "soc2": null,
    "hipaa": null,
    "gdpr": true,
    "iso_27001": null,
    "pci_dss": null,
    "sla_published": true,
    "sla_url": "https://traveltime.com/terms-of-service",
    "data_retention_policy_url": "https://traveltime.com/privacy-policy",
    "documented_rate_limits": "Free trial (2 weeks): 60 hits/min; Non-Paid (post-trial free): 5 hits/min; Paid plans: maximum 1,000 hits/min across all endpoints (per Fair Usage Policy in Terms of Service). A 'hit' = 1 isochrone, 1 route, or 1 matrix search.",
    "known_restrictions": [
      "Free trial is for internal/evaluation use only - not for end-user or commercial deployment",
      "Non-Paid (post-trial) plan rate-limited to 5 hits/min and restricted to medium level-of-detail for isochrones",
      "Cached data must be refreshed at least every 60 days; all cached data must be deleted upon agreement termination",
      "Attribution (TravelTime branding) required wherever Service Data is displayed",
      "Matrix: maximum 2,000 location IDs per request; maximum 10 searches per request",
      "Isochrone: maximum 10 searches per request; free/trial tier limited to medium level-of-detail",
      "Routes endpoint: departure_searches.arrival_location_ids limited to maximum 2 values per search",
      "Maximum journey time: 4 hours standard for matrix and isochrone (14,400 seconds); 12 hours for routes; 3 hours for fast matrix; 2 hours for protobuf matrix",
      "Fast endpoints available in only 38 countries",
      "Distance output limited to driving, walking, and cycling modes (not public transit)",
      "Map tiles not available with free API key - must contact TravelTime for access",
      "Paid plan pricing requires contacting sales - no published price card"
    ]
  },
  "developer": {
    "docs_url": "https://docs.traveltime.com",
    "api_reference_url": "https://docs.traveltime.com/api/reference/travel-time-distance-matrix",
    "openapi_spec_url": null,
    "postman_collection_url": null,
    "changelog_url": null,
    "status_page_url": "https://status.traveltime.com",
    "llms_txt_url": "https://docs.traveltime.com/llms.txt",
    "markdown_docs_url": null,
    "rendering": "static"
  },
  "adoption": {
    "launched_at": "2009-01-01",
    "ga_date": null,
    "github_stars": null,
    "github_stars_at": null,
    "notable_customers": [
      "Rightmove",
      "Zoopla",
      "Realtor",
      "CoStar Group",
      "CBRE",
      "JLL",
      "Stepstone Group",
      "Allegis Group",
      "BT Group",
      "Manpower Group",
      "Barratt Developments",
      "NHS"
    ]
  },
  "scores": {
    "agent_friendliness": 35,
    "pricing_transparency": 15,
    "setup_speed": 85,
    "docs_quality": 45,
    "procurement_friction": 40,
    "trust_readiness": 35,
    "best_for": [
      "Prototypes and side projects - free to start, no sales call",
      "AI agents and automation - an agent-ready surface (MCP / llms.txt)",
      "Teams needing broad API coverage out of the box"
    ],
    "avoid_if": [
      "You need transparent pricing up front",
      "You have strict compliance requirements"
    ]
  },
  "sources": [
    {
      "field": "categories (maps)",
      "url": "https://docs.traveltime.com/api/tiles/getting-started",
      "excerpt": "Tiles are not available by default or with the free API key. To gain authentication please contact us at hello@traveltime.com",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://docs.traveltime.com/api/overview/faqs",
      "excerpt": "We never offer transactional pricing models. Our licences always offer unlimited usage of the API for a fixed annual cost.",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing",
      "url": "https://traveltime.com/pricing",
      "excerpt": "Chat to our team about how fixed pricing can set your business free",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://docs.traveltime.com/api/overview/usage-limits",
      "excerpt": "The two week free trial is limited to a maximum of 60 hits per minute. After the two week free trial, a limit of 5 hits per minute applies.",
      "confidence": "high"
    },
    {
      "field": "free_tier_details",
      "url": "https://docs.traveltime.com/api/overview/usage-limits",
      "excerpt": "The two week free trial is limited to a maximum of 60 hits per minute, where a hit is defined as 1 isochrone, or 1 route, or 1 matrix search. After the two week free trial, a limit of 5 hits per minute applies.",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://traveltime.com/terms-of-service",
      "excerpt": "TravelTime shall use commercially reasonable efforts to maintain monthly uptime of 99%, unless otherwise specified in your service agreement.",
      "confidence": "high"
    },
    {
      "field": "gdpr",
      "url": "https://help.traveltime.com/en/articles/10411555-is-the-service-gdpr-compliant",
      "excerpt": "We are fully GDPR compliant. The request is processed in memory and nothing is written to disk except for performance monitoring purposes.",
      "confidence": "high"
    },
    {
      "field": "soc2 / hipaa / iso_27001 / pci_dss",
      "url": "https://traveltime.com/privacy-policy",
      "excerpt": "Payment information is never taken by us or transferred to us either through our website or otherwise.",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://docs.traveltime.com/api/overview/usage-limits",
      "excerpt": "The two week free trial is limited to a maximum of 60 hits per minute, where a hit is defined as 1 isochrone, or 1 route, or 1 matrix search. After the two week free trial, a limit of 5 hits per minute applies.",
      "confidence": "high"
    },
    {
      "field": "webhooks_supported",
      "url": "https://docs.traveltime.com/api/overview/faqs",
      "excerpt": "All of our endpoints are synchronous, but the majority of our SDKs offer asynchronous functionality.",
      "confidence": "high"
    },
    {
      "field": "self_serve_signup",
      "url": "https://traveltime.com/get-started",
      "excerpt": "Sign-up for a 2-week free trial of the TravelTime API. Built for developers.",
      "confidence": "high"
    },
    {
      "field": "requires_sales_call",
      "url": "https://help.traveltime.com/en/articles/9685030-licence-options",
      "excerpt": "To find out more about pricing and licence options, please contact [email protected]",
      "confidence": "high"
    },
    {
      "field": "vendor_description",
      "url": "https://traveltime.com/",
      "excerpt": "the leading location API for calculating travel times across driving, public transport, walking and cycling",
      "confidence": "high"
    },
    {
      "field": "categories (maps)",
      "url": "https://docs.traveltime.com/api/tiles/leaflet-example",
      "excerpt": "Map Tiles Leaflet | TravelTime API Documentation",
      "confidence": "high"
    },
    {
      "field": "pricing_model",
      "url": "https://traveltime.com/pricing-model",
      "excerpt": "Generate as many travel times as you need for a fixed price, with our anti-usage based pricing model.",
      "confidence": "high"
    },
    {
      "field": "has_published_pricing",
      "url": "https://help.traveltime.com/en/articles/9685030-licence-options",
      "excerpt": "To find out more about pricing and licence options, please contact [email protected]",
      "confidence": "high"
    },
    {
      "field": "free_tier_available",
      "url": "https://traveltime.com/terms-of-service",
      "excerpt": "Non-Paid Service: Complimentary access with restricted usage limits. TravelTime may withdraw offering anytime without notice.",
      "confidence": "high"
    },
    {
      "field": "free_tier_details",
      "url": "https://docs.traveltime.com/api/overview/usage-limits",
      "excerpt": "Trial: Medium (0) level of detail maximum; Unlimited: Medium (0); Free Restricted: Medium (0); Custom: Highest (2)",
      "confidence": "high"
    },
    {
      "field": "sla_published",
      "url": "https://traveltime.com/reliability",
      "excerpt": "99.99%+ API uptime across endpoints",
      "confidence": "high"
    },
    {
      "field": "gdpr",
      "url": "https://traveltime.com/privacy-policy",
      "excerpt": "This policy complies with the Data Protection Act 2018 (Act) accordingly incorporating the EU General Data Protection Regulation (GDPR).",
      "confidence": "high"
    },
    {
      "field": "soc2 / hipaa / iso_27001 / pci_dss",
      "url": "https://help.traveltime.com/en/articles/10411555-is-the-service-gdpr-compliant",
      "excerpt": "We are fully GDPR compliant. [No other compliance certifications mentioned in the article]",
      "confidence": "high"
    },
    {
      "field": "documented_rate_limits",
      "url": "https://traveltime.com/terms-of-service",
      "excerpt": "Paid tier: Maximum 1,000 hits per minute across all endpoints",
      "confidence": "high"
    },
    {
      "field": "sandbox_available",
      "url": "https://docs.traveltime.com/api/start/auth",
      "excerpt": "In order to authenticate with Travel Time JSON API, you will have to supply the Application Id and Api Key given to you via the headers X-Application-Id and X-Api-Key.",
      "confidence": "high"
    },
    {
      "field": "requires_sales_call",
      "url": "https://traveltime.com/pricing",
      "excerpt": "Chat to our team about how fixed pricing can set your business free",
      "confidence": "high"
    },
    {
      "field": "mcp_server_available",
      "url": "https://docs.traveltime.com/api/start/sdk",
      "excerpt": "NodeJS, Java, Python, Ruby, R — each SDK includes documentation and is available as open-source code on GitHub",
      "confidence": "medium"
    },
    {
      "field": "known_restrictions - map tiles gating",
      "url": "https://docs.traveltime.com/api/tiles/getting-started",
      "excerpt": "Tiles are not available by default or with the free API key. To gain authentication please contact us at hello@traveltime.com",
      "confidence": "high"
    },
    {
      "field": "supported_actions (map-tiles)",
      "url": "https://docs.traveltime.com/api/tiles/getting-started",
      "excerpt": "TravelTime provides raster tiles which can be accessed by adding tiles server URL to your project. Available styles: osm-bright and positron. Tiles can be zoomed up to level 22.",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://docs.traveltime.com/api/start/isochrones",
      "excerpt": "Base URL: https://api.traveltimeapp.com",
      "confidence": "high"
    },
    {
      "field": "api_version",
      "url": "https://docs.traveltime.com/api/overview/introduction",
      "excerpt": "TravelTime is a RESTful API, using HTTP requests for access. Endpoint paths include /v4/time-filter/fast, /v4/time-map/fast, /v4/routes indicating version 4.",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://docs.traveltime.com/api/start/sdk",
      "excerpt": "NodeJS: https://github.com/traveltime-dev/traveltime-sdk-nodejs, Java: https://github.com/traveltime-dev/traveltime-sdk-java, Python: https://github.com/traveltime-dev/traveltime-python-sdk, Ruby: https://github.com/traveltime-dev/traveltime-sdk-ruby, R: https://github.com/traveltime-dev/traveltime-sdk-r",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://docs.traveltime.com/api/sdks/ruby",
      "excerpt": "gem install travel_time",
      "confidence": "high"
    },
    {
      "field": "rate_limit_window",
      "url": "https://docs.traveltime.com/api/overview/usage-limits",
      "excerpt": "maximum of 60 hits per minute",
      "confidence": "high"
    },
    {
      "field": "sla_url",
      "url": "https://traveltime.com/terms-of-service",
      "excerpt": "TravelTime shall use commercially reasonable efforts to maintain monthly uptime of 99%, unless otherwise specified in your service agreement.",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://docs.traveltime.com/api/overview/usage-limits",
      "excerpt": "The two week free trial is limited to a maximum of 60 hits per minute, where a hit is defined as 1 isochrone, or 1 route, or 1 matrix search. After the two week free trial, a limit of 5 hits per minute applies.",
      "confidence": "high"
    },
    {
      "field": "starting_price_usd",
      "url": "https://traveltime.com/pricing-model",
      "excerpt": "Generate as many travel times as you need for a fixed price, with our anti-usage based pricing model. Discuss your API needs with our team to get a custom fixed price.",
      "confidence": "low"
    },
    {
      "field": "notable_customers",
      "url": "https://traveltime.com/about-us",
      "excerpt": "Allegis Group, BT Group, Carto, Manpower Group, Costar Group, JLL, Rightmove, GigSmart, StepStone",
      "confidence": "high"
    },
    {
      "field": "notable_customers",
      "url": "https://traveltime.com/case-study/isochrone-map-tool-case-study-zoopla",
      "excerpt": "3x Conversions: How Zoopla Transformed Search with TravelTime",
      "confidence": "high"
    },
    {
      "field": "stability",
      "url": "https://status.traveltime.com/",
      "excerpt": "All services online as of June 14, 2026. API V4 Endpoints: Time-filter: 99.962% uptime, Time-filter/fast: 99.997% uptime, Time-map: 100% uptime.",
      "confidence": "medium"
    },
    {
      "field": "error_format",
      "url": "https://docs.traveltime.com/api/reference/routes",
      "excerpt": "The documentation references an Error Handling section but does not detail specific HTTP status codes or JSON error structures on this page.",
      "confidence": "low"
    },
    {
      "field": "sdk_languages",
      "url": "https://docs.traveltime.com/api/start/sdk",
      "excerpt": "NodeJS: https://github.com/traveltime-dev/traveltime-sdk-nodejs, Java: https://github.com/traveltime-dev/traveltime-sdk-java, Python: https://github.com/traveltime-dev/traveltime-python-sdk, Ruby: https://github.com/traveltime-dev/traveltime-sdk-ruby, R: https://github.com/traveltime-dev/traveltime-sdk-r",
      "confidence": "high"
    },
    {
      "field": "known_restrictions - matrix caps",
      "url": "https://docs.traveltime.com/api/reference/travel-time-distance-matrix",
      "excerpt": "Maximum locations per request: 2,000 location IDs; Maximum searches per request: 10 searches (departure or arrival)",
      "confidence": "high"
    },
    {
      "field": "auth_methods",
      "url": "https://docs.traveltime.com/api/start/auth",
      "excerpt": "In order to authenticate with Travel Time JSON API, you will have to supply the Application Id and Api Key given to you via the headers X-Application-Id and X-Api-Key.",
      "confidence": "high"
    },
    {
      "field": "base_url",
      "url": "https://docs.traveltime.com/api/reference/routes",
      "excerpt": "Base URL: https://api.traveltimeapp.com/v4/routes",
      "confidence": "high"
    },
    {
      "field": "versioning_scheme",
      "url": "https://help.traveltime.com/en/articles/8508774-overview-of-the-api-endpoints",
      "excerpt": "Isochrone Core (/time-map/fast) and Custom (/time-map), Travel Time Matrix Core (/time-filter/fast) and Custom (/time-filter)",
      "confidence": "high"
    },
    {
      "field": "sdk_packages",
      "url": "https://docs.traveltime.com/api/sdks/python",
      "excerpt": "pip install traveltimepy",
      "confidence": "high"
    },
    {
      "field": "rate_limit_requests",
      "url": "https://docs.traveltime.com/api/overview/usage-limits",
      "excerpt": "The two week free trial is limited to a maximum of 60 hits per minute, where a hit is defined as 1 isochrone, or 1 route, or 1 matrix search. After the two week free trial, a limit of 5 hits per minute applies.",
      "confidence": "high"
    },
    {
      "field": "requires_verification",
      "url": "https://docs.traveltime.com/api/start/isochrones",
      "excerpt": "Once you've verified your email and logged in, you'll land on your new TravelTime account dashboard where API credentials become accessible.",
      "confidence": "high"
    },
    {
      "field": "data_retention_policy_url",
      "url": "https://traveltime.com/privacy-policy",
      "excerpt": "TravelTime retains information for 6 years after the contract between us ends or is terminated to comply with UK tax authority requirements for record-keeping.",
      "confidence": "high"
    },
    {
      "field": "free_tier_limit",
      "url": "https://traveltime.com/get-started",
      "excerpt": "free API usage for 2 weeks",
      "confidence": "high"
    },
    {
      "field": "launched_at",
      "url": "https://traveltime.com/about-us",
      "excerpt": "Founded by Charlie Davies and Peter Lilley in 2009 with the core concept that time is a better measure of geography and location proximity than distance.",
      "confidence": "high"
    },
    {
      "field": "notable_customers",
      "url": "https://traveltime.com/case-studies",
      "excerpt": "Realtor, Rightmove, The Stepstone Group, CBRE, CoStar Group, Barratt Developments, Jitty, NASGP, Clarity, Brigad, Vertis",
      "confidence": "high"
    },
    {
      "field": "quickstart_url",
      "url": "https://docs.traveltime.com/",
      "excerpt": "Travel Time Matrix: /api/start/travel-time-distance-matrix, Isochrone: /api/start/isochrones, Routes: /api/start/routes",
      "confidence": "high"
    },
    {
      "field": "idempotency_supported",
      "url": "https://docs.traveltime.com/api/reference/routes",
      "excerpt": "No async patterns or idempotency details are mentioned in the provided content.",
      "confidence": "high"
    }
  ],
  "fields_not_found": [
    "soc2",
    "hipaa",
    "iso_27001",
    "pci_dss",
    "minimum_commitment",
    "supported_languages (turn-by-turn instruction languages not documented)",
    "sandbox_available (confirmed absent from docs)",
    "webhooks_supported (confirmed synchronous-only)",
    "deprecation_policy_url",
    "starting_price_usd",
    "price_basis",
    "ga_date",
    "error_format_details",
    "webhook_events_url",
    "mcp_url",
    "idempotency_keys"
  ],
  "source_confidence": "high",
  "last_verified_at": "2026-06-14T00:00:00.000Z",
  "contribute": {
    "note": "This data is crowd-editable. Suggest corrections or leave a review via these endpoints - no auth required, requests are rate-limited, and every submission is reviewed before it goes live. For a field edit, {field} is any key in this response and a citation is required.",
    "endpoints": [
      {
        "action": "review",
        "label": "Leave a review or comment",
        "method": "POST",
        "url": "https://apio.sh/api/feedback/traveltime",
        "example_body": {
          "kind": "review",
          "rating": 5,
          "body": "Your experience with this API…"
        }
      },
      {
        "action": "field_edit",
        "label": "Suggest a correction to a field (cite a source)",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/traveltime/{field}",
        "example_body": {
          "value": "corrected value",
          "citations": [
            {
              "url": "https://source.example/page",
              "excerpt": "supporting quote"
            }
          ],
          "note": "what changed and why"
        }
      },
      {
        "action": "new_api",
        "label": "Suggest a new API to add",
        "method": "POST",
        "url": "https://apio.sh/api/suggest/api",
        "example_body": {
          "value": {
            "name": "Acme API",
            "website_url": "https://acme.example"
          },
          "citations": [
            {
              "url": "https://acme.example"
            }
          ]
        }
      },
      {
        "action": "token",
        "label": "Optional - raise your rate limit",
        "method": "GET",
        "url": "https://apio.sh/api/feedback/token"
      }
    ]
  }
}