philidor-io · Schema

GraphBreachResponse

CompanyFinanceDeFiRisk ManagementAnalyticsAPI

Properties

Name Type Description
data object
View JSON Schema on GitHub

JSON Schema

philidor-io-graph-breach-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/philidor-io/json-schema/philidor-io-graph-breach-response-schema.json",
  "title": "GraphBreachResponse",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/philidor-io-openapi.json#/components/schemas/GraphBreachResponse",
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "schemaVersion": {
          "type": "number",
          "enum": [
            2
          ],
          "description": "Authoritative breach document schema. Version 2 requires Morpho, Aave, and Spark blocks."
        },
        "observedAt": {
          "type": "string",
          "description": "Deprecated legacy alias of protocols[id=morpho].observedAt; use protocols[] exclusively.",
          "deprecated": true
        },
        "protocolId": {
          "type": "string",
          "description": "Deprecated legacy alias identifying protocols[id=morpho]; use protocols[] exclusively.",
          "deprecated": true
        },
        "source": {
          "type": "string",
          "enum": [
            "protocol_api"
          ],
          "description": "Deprecated legacy alias of protocols[id=morpho].source; use protocols[] exclusively.",
          "deprecated": true
        },
        "maturity": {
          "type": "string",
          "enum": [
            "preview"
          ],
          "description": "Deprecated legacy alias of protocols[id=morpho].maturity; use protocols[] exclusively.",
          "deprecated": true
        },
        "paramsAsOf": {
          "type": "string",
          "description": "Deprecated legacy alias of protocols[id=morpho].paramsAsOf; use protocols[] exclusively.",
          "deprecated": true
        },
        "shockPcts": {
          "type": "array",
          "items": {
            "type": "number"
          },
          "description": "Deprecated legacy alias of protocols[id=morpho].shockPcts; use protocols[] exclusively.",
          "deprecated": true
        },
        "coverage": {
          "type": "object",
          "properties": {
            "status": {
              "type": "string",
              "enum": [
                "full",
                "truncated",
                "interval_sampled",
                "unavailable"
              ]
            },
            "lowerBound": {
              "type": "boolean",
              "description": "Present only for point-in-time snapshots where omitted accounts can only add debt/loss. Omitted for all interval-sampled data."
            },
            "methodology": {
              "type": "string",
              "enum": [
                "largest-position-api-window",
                "top-holder-sample"
              ]
            },
            "reason": {
              "type": "string"
            },
            "accountsDiscovered": {
              "type": "number"
            },
            "accountsSampled": {
              "type": "number"
            },
            "accountsFetched": {
              "type": "number"
            }
          },
          "required": [
            "status",
            "methodology",
            "reason"
          ],
          "description": "Deprecated legacy alias of protocols[id=morpho].coverage; use protocols[] exclusively.",
          "deprecated": true
        },
        "chains": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "chainId": {
                "type": "number"
              },
              "marketsCovered": {
                "type": "number"
              },
              "totalBorrowUsd": {
                "type": "string"
              },
              "underwaterDebtUsd": {
                "type": "string"
              },
              "positionsTotal": {
                "type": "number"
              },
              "positionsFetched": {
                "type": "number"
              },
              "shocks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "shockPct": {
                      "type": "number"
                    },
                    "liquidatableLoUsd": {
                      "type": "string"
                    },
                    "liquidatableHiUsd": {
                      "type": "string"
                    },
                    "projectedBadDebtUsd": {
                      "type": "string",
                      "description": "Central estimate of supplier shortfall (bad debt) at this shock — the part of the liquidatable debt that becomes actual loss. Not a bound."
                    },
                    "unpricedDebtUsd": {
                      "type": "string",
                      "description": "Debt excluded from projectedBadDebtUsd because collateral valuation was incomplete. This is an abstention bucket, not projected loss."
                    }
                  },
                  "required": [
                    "shockPct",
                    "liquidatableLoUsd",
                    "liquidatableHiUsd"
                  ]
                }
              }
            },
            "required": [
              "chainId",
              "marketsCovered",
              "totalBorrowUsd",
              "underwaterDebtUsd",
              "shocks"
            ]
          },
          "description": "Deprecated legacy alias of protocols[id=morpho].chains; use protocols[] exclusively.",
          "deprecated": true
        },
        "topMarkets": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "marketKey": {
                "type": "string"
              },
              "chainId": {
                "type": "number"
              },
              "lltv": {
                "type": "string"
              },
              "totalBorrowUsd": {
                "type": "string"
              },
              "totalCollateralUsd": {
                "type": "string"
              },
              "positionCount": {
                "type": "number"
              },
              "coverage": {
                "type": "string",
                "enum": [
                  "full",
                  "truncated",
                  "interval_sampled"
                ]
              },
              "shocks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "shockPct": {
                      "type": "number"
                    },
                    "liquidatableLoUsd": {
                      "type": "string"
                    },
                    "liquidatableHiUsd": {
                      "type": "string"
                    },
                    "projectedBadDebtUsd": {
                      "type": "string",
                      "description": "Central estimate of supplier shortfall (bad debt) at this shock — the part of the liquidatable debt that becomes actual loss. Not a bound."
                    },
                    "unpricedDebtUsd": {
                      "type": "string",
                      "description": "Debt excluded from projectedBadDebtUsd because collateral valuation was incomplete. This is an abstention bucket, not projected loss."
                    }
                  },
                  "required": [
                    "shockPct",
                    "liquidatableLoUsd",
                    "liquidatableHiUsd"
                  ]
                }
              },
              "collateral": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "category": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "address",
                  "symbol",
                  "category"
                ]
              },
              "loan": {
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "address": {
                    "type": "string"
                  },
                  "symbol": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "category": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "address",
                  "symbol",
                  "category"
                ]
              },
              "oracle": {
                "type": "object",
                "properties": {
                  "address": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "address"
                ]
              },
              "liquidationIncentive": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "worstHealthFactor": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "marketHealthFactor": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "liquidationHistory": {
                "type": "object",
                "properties": {
                  "lastAt": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "count90d": {
                    "type": "number"
                  },
                  "badDebtUsd90d": {
                    "type": "string"
                  }
                },
                "required": [
                  "lastAt",
                  "count90d",
                  "badDebtUsd90d"
                ]
              },
              "whyNotLiquidated": {
                "type": "string",
                "enum": [
                  "healthy",
                  "unpriceable-collateral",
                  "actively-liquidated",
                  "collateral-exhausted",
                  "liquidator-incentive-below-cost",
                  "oracle-dependency"
                ]
              }
            },
            "required": [
              "marketKey",
              "chainId",
              "lltv",
              "totalBorrowUsd",
              "totalCollateralUsd",
              "positionCount",
              "coverage",
              "shocks"
            ]
          },
          "description": "Deprecated legacy alias of protocols[id=morpho].topMarkets; use protocols[] exclusively.",
          "deprecated": true
        },
        "topVaultExposures": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "vaultId": {
                "type": "string"
              },
              "vaultName": {
                "type": "string"
              },
              "chainId": {
                "type": "number"
              },
              "marketKey": {
                "type": "string"
              },
              "vaultSupplyUsd": {
                "type": "string"
              },
              "marketUnderwaterUsd": {
                "type": "string"
              },
              "marketTotalBorrowUsd": {
                "type": "string"
              }
            },
            "required": [
              "vaultId",
              "vaultName",
              "chainId",
              "marketKey",
              "vaultSupplyUsd",
              "marketUnderwaterUsd",
              "marketTotalBorrowUsd"
            ]
          },
          "description": "Deprecated legacy alias of protocols[id=morpho].topVaultExposures; use protocols[] exclusively. vaultSupplyUsd is an exposure ceiling, not a loss estimate.",
          "deprecated": true
        },
        "vaultBadDebt": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "vaultId": {
                "type": "string"
              },
              "vaultName": {
                "type": "string"
              },
              "chainId": {
                "type": "number"
              },
              "suppliedUsd": {
                "type": "string"
              },
              "shocks": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "shockPct": {
                      "type": "number"
                    },
                    "projectedBadDebtUsd": {
                      "type": "string"
                    },
                    "unpricedDebtUsd": {
                      "type": "string",
                      "description": "Debt excluded from the vault projection because borrower collateral valuation was incomplete."
                    }
                  },
                  "required": [
                    "shockPct",
                    "projectedBadDebtUsd"
                  ]
                }
              }
            },
            "required": [
              "vaultId",
              "vaultName",
              "chainId",
              "suppliedUsd",
              "shocks"
            ]
          },
          "description": "Deprecated legacy alias of protocols[id=morpho].vaultBadDebt; use protocols[] exclusively. This is a central estimate, not a bound.",
          "deprecated": true
        },
        "protocols": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "observedAt": {
                "type": "string"
              },
              "protocolId": {
                "type": "string",
                "enum": [
                  "morpho",
                  "aave",
                  "spark"
                ]
              },
              "source": {
                "type": "string",
                "enum": [
                  "protocol_api",
                  "onchain_rpc",
                  "unavailable"
                ]
              },
              "maturity": {
                "type": "string",
                "enum": [
                  "preview"
                ]
              },
              "paramsAsOf": {
                "type": "string",
                "description": "Point-in-time liquidation-parameter lineage. May coexist with an interval-sampled position sweep because it pins a separate durable input."
              },
              "sweepStartedAt": {
                "type": "string",
                "description": "Start of an interval-sampled position/account sweep."
              },
              "sweepCompletedAt": {
                "type": "string",
                "description": "Completion of an interval-sampled position/account sweep."
              },
              "shockPcts": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              },
              "coverage": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "full",
                      "truncated",
                      "interval_sampled",
                      "unavailable"
                    ]
                  },
                  "lowerBound": {
                    "type": "boolean",
                    "description": "Present only for point-in-time snapshots where omitted accounts can only add debt/loss. Omitted for all interval-sampled data."
                  },
                  "methodology": {
                    "type": "string",
                    "enum": [
                      "largest-position-api-window",
                      "top-holder-sample"
                    ]
                  },
                  "reason": {
                    "type": "string"
                  },
                  "accountsDiscovered": {
                    "type": "number"
                  },
                  "accountsSampled": {
                    "type": "number"
                  },
                  "accountsFetched": {
                    "type": "number"
                  }
                },
                "required": [
                  "status",
                  "methodology",
                  "reason"
                ]
              },
              "chains": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "chainId": {
                      "type": "number"
                    },
                    "marketsCovered": {
                      "type": "number"
                    },
                    "totalBorrowUsd": {
                      "type": "string"
                    },
                    "underwaterDebtUsd": {
                      "type": "string"
                    },
                    "positionsTotal": {
                      "type": "number"
                    },
                    "positionsFetched": {
                      "type": "number"
                    },
                    "shocks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "shockPct": {
                            "type": "number"
                          },
                          "liquidatableLoUsd": {
                            "type": "string"
                          },
                          "liquidatableHiUsd": {
                            "type": "string"
                          },
                          "projectedBadDebtUsd": {
                            "type": "string",
                            "description": "Central estimate of supplier shortfall (bad debt) at this shock — the part of the liquidatable debt that becomes actual loss. Not a bound."
                          },
                          "unpricedDebtUsd": {
                            "type": "string",
                            "description": "Debt excluded from projectedBadDebtUsd because collateral valuation was incomplete. This is an abstention bucket, not projected loss."
                          }
                        },
                        "required": [
                          "shockPct",
                          "liquidatableLoUsd",
                          "liquidatableHiUsd"
                        ]
                      }
                    }
                  },
                  "required": [
                    "chainId",
                    "marketsCovered",
                    "totalBorrowUsd",
                    "underwaterDebtUsd",
                    "shocks"
                  ]
                }
              },
              "topMarkets": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "marketKey": {
                      "type": "string"
                    },
                    "chainId": {
                      "type": "number"
                    },
                    "lltv": {
                      "type": "string"
                    },
                    "totalBorrowUsd": {
                      "type": "string"
                    },
                    "totalCollateralUsd": {
                      "type": "string"
                    },
                    "positionCount": {
                      "type": "number"
                    },
                    "coverage": {
                      "type": "string",
                      "enum": [
                        "full",
                        "truncated",
                        "interval_sampled"
                      ]
                    },
                    "shocks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "shockPct": {
                            "type": "number"
                          },
                          "liquidatableLoUsd": {
                            "type": "string"
                          },
                          "liquidatableHiUsd": {
                            "type": "string"
                          },
                          "projectedBadDebtUsd": {
                            "type": "string",
                            "description": "Central estimate of supplier shortfall (bad debt) at this shock — the part of the liquidatable debt that becomes actual loss. Not a bound."
                          },
                          "unpricedDebtUsd": {
                            "type": "string",
                            "description": "Debt excluded from projectedBadDebtUsd because collateral valuation was incomplete. This is an abstention bucket, not projected loss."
                          }
                        },
                        "required": [
                          "shockPct",
                          "liquidatableLoUsd",
                          "liquidatableHiUsd"
                        ]
                      }
                    },
                    "collateral": {
                      "type": "object",
                      "properties": {
                        "address": {
                          "type": "string"
                        },
                        "symbol": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "address",
                        "symbol",
                        "category"
                      ]
                    },
                    "loan": {
                      "type": [
                        "object",
                        "null"
                      ],
                      "properties": {
                        "address": {
                          "type": "string"
                        },
                        "symbol": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "category": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "address",
                        "symbol",
                        "category"
                      ]
                    },
                    "oracle": {
                      "type": "object",
                      "properties": {
                        "address": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "address"
                      ]
                    },
                    "liquidationIncentive": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "worstHealthFactor": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "marketHealthFactor": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "liquidationHistory": {
                      "type": "object",
                      "properties": {
                        "lastAt": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "count90d": {
                          "type": "number"
                        },
                        "badDebtUsd90d": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "lastAt",
                        "count90d",
                        "badDebtUsd90d"
                      ]
                    },
                    "whyNotLiquidated": {
                      "type": "string",
                      "enum": [
                        "healthy",
                        "unpriceable-collateral",
                        "actively-liquidated",
                        "collateral-exhausted",
                        "liquidator-incentive-below-cost",
                        "oracle-dependency"
                      ]
                    }
                  },
                  "required": [
                    "marketKey",
                    "chainId",
                    "lltv",
                    "totalBorrowUsd",
                    "totalCollateralUsd",
                    "positionCount",
                    "coverage",
                    "shocks"
                  ]
                }
              },
              "topVaultExposures": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "vaultId": {
                      "type": "string"
                    },
                    "vaultName": {
                      "type": "string"
                    },
                    "chainId": {
                      "type": "number"
                    },
                    "marketKey": {
                      "type": "string"
                    },
                    "vaultSupplyUsd": {
                      "type": "string"
                    },
                    "marketUnderwaterUsd": {
                      "type": "string"
                    },
                    "marketTotalBorrowUsd": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "vaultId",
                    "vaultName",
                    "chainId",
                    "marketKey",
                    "vaultSupplyUsd",
                    "marketUnderwaterUsd",
                    "marketTotalBorrowUsd"
                  ]
                }
              },
              "vaultBadDebt": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "vaultId": {
                      "type": "string"
                    },
                    "vaultName": {
                      "type": "string"
                    },
                    "chainId": {
                      "type": "number"
                    },
                    "suppliedUsd": {
                      "type": "string"
                    },
                    "shocks": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "shockPct": {
                            "type": "number"
                          },
                          "projectedBadDebtUsd": {
                            "type": "string"
                          },
                          "unpricedDebtUsd": {
                            "type": "string",
                            "description": "Debt excluded from the vault projection because borrower collateral valuation was incomplete."
                          }
                        },
                        "required": [
                          "shockPct",
                          "projectedBadDebtUsd"
                        ]
                      }
                    }
                  },
                  "required": [
                    "vaultId",
                    "vaultName",
                    "chainId",
                    "suppliedUsd",
                    "shocks"
                  ]
                }
              }
            },
            "required": [
              "observedAt",
              "protocolId",
              "source",
              "maturity",
              "shockPcts",
              "coverage",
              "chains",
              "topMarkets",
              "topVaultExposures",
              "vaultBadDebt"
            ]
          },
          "description": "Complete authoritative protocol set. Do not add legacy root totals: they duplicate protocols[id=morpho]. Morpho, Aave, and Spark are explicitly interval-sampled and make no point-in-time lower-bound claim."
        }
      },
      "required": [
        "observedAt",
        "protocolId",
        "maturity",
        "shockPcts",
        "chains",
        "topMarkets"
      ]
    }
  },
  "required": [
    "data"
  ]
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/philidor-io-graph-breach-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.