{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/coinrebate-vip/json-schema/coinrebate-vip-agent-route-response-schema.json",
  "title": "AgentRouteResponse",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/coinrebate-vip-openapi.json#/components/schemas/AgentRouteResponse",
  "type": "object",
  "required": [
    "version",
    "timestamp",
    "disclaimer",
    "docs",
    "openapi",
    "recommended",
    "all_exchanges"
  ],
  "properties": {
    "version": {
      "type": "string"
    },
    "timestamp": {
      "type": "string",
      "format": "date-time"
    },
    "disclaimer": {
      "type": "string"
    },
    "docs": {
      "type": "string",
      "format": "uri"
    },
    "openapi": {
      "type": "string",
      "format": "uri"
    },
    "recommended": {
      "nullable": true,
      "allOf": [
        {
          "$ref": "#/$defs/ExchangeEntry"
        }
      ]
    },
    "all_exchanges": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ExchangeEntry"
      }
    },
    "compliance_notice": {
      "type": "string"
    }
  },
  "$defs": {
    "ExchangeEntry": {
      "type": "object",
      "required": [
        "slug",
        "name",
        "type",
        "ccxt_id",
        "fee_discount",
        "referral_code",
        "signup_url",
        "kyc_required"
      ],
      "properties": {
        "slug": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string",
          "enum": [
            "CEX",
            "DEX"
          ]
        },
        "ccxt_id": {
          "type": "string"
        },
        "fee_discount": {
          "type": "string"
        },
        "referral_code": {
          "type": "string"
        },
        "signup_url": {
          "type": "string",
          "format": "uri"
        },
        "kyc_required": {
          "type": "boolean"
        },
        "reason": {
          "type": "string"
        },
        "fees": {
          "$ref": "#/$defs/ExchangeFeeSnapshot"
        }
      }
    },
    "ExchangeFeeSnapshot": {
      "type": "object",
      "required": [
        "spot",
        "futures",
        "savings_example",
        "data_source",
        "fetched_at"
      ],
      "properties": {
        "spot": {
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/FeeDetail"
            }
          ]
        },
        "futures": {
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/FeeDetail"
            }
          ]
        },
        "savings_example": {
          "type": "string"
        },
        "data_source": {
          "type": "string",
          "enum": [
            "live",
            "partial",
            "fallback"
          ]
        },
        "fetched_at": {
          "type": "string",
          "format": "date-time"
        }
      }
    },
    "FeeDetail": {
      "type": "object",
      "required": [
        "maker",
        "taker",
        "maker_after_rebate",
        "taker_after_rebate"
      ],
      "properties": {
        "maker": {
          "type": "number"
        },
        "taker": {
          "type": "number"
        },
        "maker_after_rebate": {
          "type": "number"
        },
        "taker_after_rebate": {
          "type": "number"
        }
      }
    }
  }
}