{"openapi":"3.1.0","info":{"title":"Avalanche Protocol Loyalty & Migration Lab","description":"Precomputed Avalanche C-Chain cohort, migration, and retention analytics.","version":"0.1.0"},"paths":{"/api/health":{"get":{"summary":"Health","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/protocols":{"get":{"summary":"Protocols","operationId":"protocols_api_protocols_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/flows":{"get":{"summary":"Flows","operationId":"flows_api_flows_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"cohort_window","in":"query","required":false,"schema":{"type":"string","pattern":"^(daily|weekly|rolling_7d)$","default":"weekly","title":"Cohort Window"}},{"name":"lookahead","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Lookahead"}},{"name":"min_flow","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Min Flow"}},{"name":"protocols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protocols"}},{"name":"filters","in":"query","required":false,"schema":{"type":"string","pattern":"^(standard|off)$","default":"standard","title":"Filters"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/flows/{source_protocol}/{destination_protocol}/wallets":{"get":{"summary":"Flow Wallets","operationId":"flow_wallets_api_flows__source_protocol___destination_protocol__wallets_get","parameters":[{"name":"source_protocol","in":"path","required":true,"schema":{"type":"string","title":"Source Protocol"}},{"name":"destination_protocol","in":"path","required":true,"schema":{"type":"string","title":"Destination Protocol"}},{"name":"from","in":"query","required":true,"schema":{"type":"string","format":"date","title":"From"}},{"name":"to","in":"query","required":true,"schema":{"type":"string","format":"date","title":"To"}},{"name":"cohort_window","in":"query","required":false,"schema":{"type":"string","pattern":"^(daily|weekly|rolling_7d)$","default":"weekly","title":"Cohort Window"}},{"name":"lookahead","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Lookahead"}},{"name":"filters","in":"query","required":false,"schema":{"type":"string","pattern":"^(standard|off)$","default":"standard","title":"Filters"}},{"name":"segment","in":"query","required":false,"schema":{"anyOf":[{"type":"string","pattern":"^(migrated|expanded|loyal|churned)$"},{"type":"null"}],"title":"Segment"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/retention":{"get":{"summary":"Retention","operationId":"retention_api_retention_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"protocols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Protocols"}},{"name":"filters","in":"query","required":false,"schema":{"type":"string","pattern":"^(standard|off)$","default":"standard","title":"Filters"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/loyalty":{"get":{"summary":"Loyalty","operationId":"loyalty_api_loyalty_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"cohort_window","in":"query","required":false,"schema":{"type":"string","pattern":"^(daily|weekly|rolling_7d)$","default":"weekly","title":"Cohort Window"}},{"name":"lookahead","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Lookahead"}},{"name":"filters","in":"query","required":false,"schema":{"type":"string","pattern":"^(standard|off)$","default":"standard","title":"Filters"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/feeders-drains":{"get":{"summary":"Feeders Drains","operationId":"feeders_drains_api_feeders_drains_get","parameters":[{"name":"from","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"From"}},{"name":"to","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"To"}},{"name":"cohort_window","in":"query","required":false,"schema":{"type":"string","pattern":"^(daily|weekly|rolling_7d)$","default":"weekly","title":"Cohort Window"}},{"name":"lookahead","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Lookahead"}},{"name":"filters","in":"query","required":false,"schema":{"type":"string","pattern":"^(standard|off)$","default":"standard","title":"Filters"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/coverage":{"get":{"summary":"Coverage","operationId":"coverage_api_coverage_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":300,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}