{
  "currency": "USD",
  "unit": "credit",
  "generated_from": "https://directrate.dev/pricing",
  "tiers": [
    {
      "id": "free",
      "name": "Free",
      "monthly_credits": 250,
      "rate_limit_rps": 2,
      "price_usd_month": 0,
      "price_usd_year": null,
      "price_from_usd_month": null,
      "usd_per_1000_credits": null,
      "rollover": "none",
      "how_to_get": "sign in at https://directrate.dev/login and create a key"
    },
    {
      "id": "starter",
      "name": "Starter",
      "monthly_credits": 3000,
      "rate_limit_rps": 10,
      "price_usd_month": 29,
      "price_usd_year": 290,
      "price_from_usd_month": null,
      "usd_per_1000_credits": 9.67,
      "rollover": "none",
      "how_to_get": "email hello@directrate.dev"
    },
    {
      "id": "growth",
      "name": "Growth",
      "monthly_credits": 15000,
      "rate_limit_rps": 20,
      "price_usd_month": 99,
      "price_usd_year": 990,
      "price_from_usd_month": null,
      "usd_per_1000_credits": 6.6,
      "rollover": "none",
      "how_to_get": "email hello@directrate.dev"
    },
    {
      "id": "scale",
      "name": "Scale",
      "monthly_credits": 75000,
      "rate_limit_rps": 50,
      "price_usd_month": 349,
      "price_usd_year": 3490,
      "price_from_usd_month": null,
      "usd_per_1000_credits": 4.65,
      "rollover": "1 month",
      "how_to_get": "email hello@directrate.dev"
    },
    {
      "id": "enterprise",
      "name": "Enterprise",
      "monthly_credits": null,
      "rate_limit_rps": null,
      "price_usd_month": null,
      "price_usd_year": null,
      "price_from_usd_month": 1000,
      "usd_per_1000_credits": null,
      "rollover": "annual pool",
      "how_to_get": "email hello@directrate.dev"
    }
  ],
  "annual": "Annual billing = two months free; credits are still issued monthly.",
  "chain_weights": {
    "wyndham": {
      "shop": 6,
      "compset_hotel": 0.5,
      "compset_member_extra": 5.5,
      "calendar_night": 0.25
    },
    "bestwestern": {
      "shop": 5,
      "compset_hotel": 0.5,
      "compset_member_extra": 0.5,
      "calendar_night": 0.1
    },
    "radisson": {
      "shop": 3,
      "compset_hotel": 0.5,
      "compset_member_extra": 2.5,
      "calendar_night": 0.1
    },
    "choice": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.1
    },
    "melia": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.02
    },
    "ihg": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.1
    },
    "hilton": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.1
    },
    "hyatt": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.1
    },
    "marriott": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.1
    },
    "premierinn": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.1
    },
    "iprefer": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": 0.1
    },
    "booking": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": null
    },
    "expedia": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": null
    },
    "hotelscom": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": null
    },
    "ctrip": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": null
    },
    "agoda": {
      "shop": 1,
      "compset_hotel": 0.25,
      "compset_member_extra": null,
      "calendar_night": null
    }
  },
  "rules": {
    "cache_hit_multiplier": 0.25,
    "compset_min_credits_per_call": 1,
    "errors_billed": false,
    "not_found_billed": false,
    "credits_header": "X-Credits-Charged",
    "quota_checked_before_call": true,
    "text": [
      "A result served from a recent cache bills 0.25× the live price; max_age: 0 forces a live shop at full price.",
      "Errors, a hotel code the chain does not know (not_found), upstream timeouts and an OTA with no listing for the hotel cost nothing.",
      "/compset bills per hotel returned, with a minimum of 1 credit per call; error and not_found hotels are not counted.",
      "The quota is checked before a call is made, so a request that would exceed it is refused (429 quota_exceeded) rather than half-billed.",
      "Rate limits are an abuse guard per key, not a sold feature: 429 rate_limited comes with Retry-After.",
      "Every response states its own price in X-Credits-Charged — the number written to your usage."
    ]
  },
  "openapi": "https://api.directrate.dev/openapi.json"
}