{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.compareratesusdtoinr.com/rates.schema.json",
  "title": "compareratesusdtoinr.com live rates",
  "description": "Live USD->INR money-transfer rate comparison snapshot. Refreshed about every 10 minutes. Informational only, not financial advice. Documentation: https://www.compareratesusdtoinr.com/llms.txt",
  "type": "object",
  "required": ["base", "quote", "corridor", "updated_at", "refresh_seconds", "amounts", "default_amount", "by_amount", "provider_count"],
  "properties": {
    "corridor": { "type": "string", "description": "Transfer corridor, e.g. 'USD-INR'." },
    "base": { "type": "string", "description": "Send (source) currency, ISO 4217. Always 'USD'." },
    "quote": { "type": "string", "description": "Receive (target) currency, ISO 4217. Always 'INR'." },
    "updated_at": { "type": "string", "format": "date-time", "description": "Snapshot time, ISO-8601 UTC." },
    "refresh_seconds": { "type": "integer", "description": "Approximate refresh cadence in seconds (600 = ~10 minutes)." },
    "license": { "type": "string", "description": "License / terms URL governing reuse of this data." },
    "source": { "type": "string", "description": "Data source and provenance." },
    "disclaimer": { "type": "string", "description": "Usage disclaimer for the figures." },
    "amounts": { "type": "array", "items": { "type": "number" }, "description": "USD send amounts that have a precomputed ranking (keys of by_amount)." },
    "default_amount": { "type": "number", "description": "Default USD send amount shown on the site (1000)." },
    "amount_sent": { "type": "number", "description": "Legacy: the default USD send amount." },
    "provider_count": { "type": "integer", "description": "Number of providers in the default ranking." },
    "by_amount": {
      "type": "object",
      "description": "Rankings keyed by USD send amount (string keys: '100','250','500','1000','2500','5000','10000'). Each value is a providers array sorted best-first by 'received'.",
      "additionalProperties": { "type": "array", "items": { "$ref": "#/$defs/provider" } }
    },
    "providers": { "type": "array", "items": { "$ref": "#/$defs/provider" }, "description": "Legacy: the default-amount ranking, sorted best-first by 'received'." }
  },
  "$defs": {
    "provider": {
      "type": "object",
      "required": ["name", "rate", "fee", "received"],
      "properties": {
        "name": { "type": "string", "description": "Provider name, e.g. 'Xoom', 'Wise'." },
        "rate": { "type": "number", "description": "Exchange rate applied, in INR per 1 USD." },
        "fee": { "type": "number", "description": "Transfer fee, in USD." },
        "received": { "type": "number", "description": "Amount the recipient receives, in INR, after fee and exchange-rate margin, for the given USD send amount." },
        "speed": { "type": ["string", "null"], "description": "Indicative delivery speed, if available." },
        "source": { "type": ["string", "null"], "description": "Data source identifier for this quote." },
        "stale": { "type": ["boolean", "null"], "description": "True if this provider's quote is older than the rest of the snapshot." },
        "logo": { "type": ["string", "null"], "description": "Provider logo URL, if available." }
      }
    }
  }
}
