{"openapi":"3.1.0","info":{"title":"Symbiotic Partner API","version":"3.1.0","description":"REST API for Symbiotic partner integrations: points data plus the\nnetwork, vault, operator and curator registries behind it.\n\n## Design principles\n\n- **No pagination.** All list endpoints return the full dataset.\n- **Points are decimal-less strings.** The number of decimal places\n  varies by points type; Symbiotic points use 48."},"servers":[{"url":"/api/v1","description":"Current host, under the public API prefix."}],"tags":[{"name":"partner","description":"Partner API — used by external integrations to query points data and entity registries."}],"paths":{"/entities/networks":{"get":{"summary":"Get all networks with their metadata.","tags":["partner"],"responses":{"200":{"description":"List of networks, address and metadata.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerEntity"}}}}},"default":{"description":"Partner error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/entities/vaults":{"get":{"summary":"Get all approved vaults with their type, collateral, curator, total supply, TVL and metadata.","tags":["partner"],"responses":{"200":{"description":"List of approved vaults with address, vault type, collateral, curator, current total supply, TVL and metadata.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerVault"}}}}},"default":{"description":"Partner error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/entities/operators":{"get":{"summary":"Get all operators with their metadata.","tags":["partner"],"responses":{"200":{"description":"List of operators, address and metadata.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerEntity"}}}}},"default":{"description":"Partner error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/entities/curators":{"get":{"summary":"Get all curators with their metadata and curated vaults.","tags":["partner"],"responses":{"200":{"description":"List of curators, id, metadata and vault addresses.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerCurator"}}}}},"default":{"description":"Partner error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/points/receiver/{address}/current":{"get":{"summary":"Get current points for a receiver, broken down by vault.","tags":["partner"],"parameters":[{"in":"path","name":"address","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"required":true,"description":"EVM address (hex, with 0x prefix). Lowercased in responses."}],"responses":{"200":{"description":"Current points for the receiver, per vault.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerPointsByVault"}}}}},"default":{"description":"Partner points error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/points/vault/{address}/current":{"get":{"summary":"Get current points for a vault, broken down by receiver.","tags":["partner"],"parameters":[{"in":"path","name":"address","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"required":true,"description":"EVM address (hex, with 0x prefix). Lowercased in responses."}],"responses":{"200":{"description":"Current points for the vault, per receiver.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerPointsByReceiver"}}}}},"default":{"description":"Partner points error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/points/vault/{address}/{blockNumber}":{"get":{"summary":"Get historical points for a vault at a block, by receiver type.","tags":["partner"],"parameters":[{"in":"path","name":"address","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"required":true,"description":"EVM address (hex, with 0x prefix). Lowercased in responses."},{"in":"path","name":"blockNumber","schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Block number. The closest available block is used if no exact match exists.","example":21000000},"required":true,"description":"Block number. The closest available block is used if no exact match exists."}],"responses":{"200":{"description":"Historical points for the vault, per receiver type.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerPointsByReceiverType"}}}}},"default":{"description":"Partner points error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/points/total/current":{"get":{"summary":"Get current total points, broken down by vault.","tags":["partner"],"responses":{"200":{"description":"Current total points, per vault.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerPointsByVault"}}}}},"default":{"description":"Partner points error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/points/total/{blockNumber}":{"get":{"summary":"Get historical total points at a block, broken down by vault.","tags":["partner"],"parameters":[{"in":"path","name":"blockNumber","schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Block number. The closest available block is used if no exact match exists.","example":21000000},"required":true,"description":"Block number. The closest available block is used if no exact match exists."}],"responses":{"200":{"description":"Historical total points, per vault.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/partnerPointsByVault"}}}}},"default":{"description":"Partner points error response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}},"/points/receiver/{address}/{blockNumber}":{"get":{"summary":"Deprecated: historical points for a receiver.","description":"This endpoint is deprecated and is no longer supported.","tags":["partner"],"deprecated":true,"parameters":[{"in":"path","name":"address","schema":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"required":true,"description":"EVM address (hex, with 0x prefix). Lowercased in responses."},{"in":"path","name":"blockNumber","schema":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Block number. The closest available block is used if no exact match exists.","example":21000000},"required":true,"description":"Block number. The closest available block is used if no exact match exists."}],"responses":{"410":{"description":"Deprecated endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/partnerPointsError"}}}}}}}},"components":{"schemas":{"partnerEntity":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"meta":{"$ref":"#/components/schemas/metadata"}},"required":["address","meta"],"additionalProperties":false},"metadata":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string","format":"uri"},"tags":{"type":"array","items":{"type":"string"}},"links":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":["name","type","url"],"additionalProperties":false}}},"required":["name"],"additionalProperties":false},"partnerPointsError":{"type":"object","properties":{"errorCode":{"type":"string","enum":["noData","noResultsFound","anErrorOccurred","pageNotFound","ooops"]},"errorMessage":{"type":"string","minLength":1}},"required":["errorCode","errorMessage"],"additionalProperties":false},"partnerVault":{"type":"object","properties":{"address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"vaultType":{"type":"string","enum":["pre-deposit","v1","v2"]},"collateral":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"curatorId":{"type":"string","description":"Lowercased metadata slug identifier.","example":"p2p"},"totalSupply":{"type":"string","pattern":"^\\d+$"},"tvl":{"type":"number"},"meta":{"$ref":"#/components/schemas/metadata"}},"required":["address","vaultType","collateral","totalSupply","tvl","meta"],"additionalProperties":false},"partnerCurator":{"type":"object","properties":{"id":{"type":"string","description":"Lowercased metadata slug identifier.","example":"p2p"},"meta":{"$ref":"#/components/schemas/metadata"},"vaults":{"type":"array","items":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"}}},"required":["id","meta","vaults"],"additionalProperties":false},"partnerPointsByVault":{"type":"object","properties":{"points_type":{"type":"string","minLength":1},"last_block":{"type":"integer","minimum":0,"maximum":9007199254740991},"total_points":{"type":"string","pattern":"^\\d+$"},"items":{"type":"array","items":{"type":"object","properties":{"vault_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"points":{"type":"string","pattern":"^\\d+$"}},"required":["vault_address","points"],"additionalProperties":false}}},"required":["points_type","last_block","total_points","items"],"additionalProperties":false},"partnerPointsByReceiver":{"type":"object","properties":{"points_type":{"type":"string","minLength":1},"last_block":{"type":"integer","minimum":0,"maximum":9007199254740991},"total_points":{"type":"string","pattern":"^\\d+$"},"items":{"type":"array","items":{"type":"object","properties":{"receiver_address":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"EVM address (hex, with 0x prefix). Lowercased in responses.","example":"0x7f39c581f595b53c5cb19bd0b3f8da6c935e2ca0"},"points":{"type":"string","pattern":"^\\d+$"}},"required":["receiver_address","points"],"additionalProperties":false}}},"required":["points_type","last_block","total_points","items"],"additionalProperties":false},"partnerPointsByReceiverType":{"type":"object","properties":{"points_type":{"type":"string","minLength":1},"last_block":{"type":"integer","minimum":0,"maximum":9007199254740991},"total_points":{"type":"string","pattern":"^\\d+$"},"items":{"type":"array","items":{"type":"object","properties":{"receiver_type":{"type":"string","minLength":1},"points":{"type":"string","pattern":"^\\d+$"}},"required":["receiver_type","points"],"additionalProperties":false}}},"required":["points_type","last_block","total_points","items"],"additionalProperties":false}}}}