{"openapi":"3.1.0","info":{"title":"Studio Loco Read-only API","version":"1.0.0","description":"Mainnet Meteora DLMM reads. No signing, transaction submission, private Recorder access or DLMM Pro. All timestamps are Unix milliseconds. Null metrics mean unavailable. Indexed metrics are not chain-verifiable executable quotes."},"servers":[{"url":"https://studioloco.cfd/api/public/loco/v1"}],"paths":{"/capabilities":{"get":{"operationId":"capabilities","summary":"Feature truth and request limits","responses":{"200":{"description":"Observed mainnet data with provenance","content":{"application/json":{"schema":{"type":"object","required":["ok","data","meta"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Capabilities"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/pools":{"get":{"operationId":"listPools","summary":"Meteora indexed pools (bounded pagination)","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":20,"default":1}},{"name":"perPage","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":25,"default":10}},{"name":"query","in":"query","required":false,"schema":{"type":"string","maxLength":80}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["tvl","volume_24h","fee_24h","fee_tvl_ratio_24h","bin_step"],"default":"tvl"}},{"name":"direction","in":"query","required":false,"schema":{"type":"string","enum":["asc","desc"],"default":"desc"}}],"responses":{"200":{"description":"Observed mainnet data with provenance","content":{"application/json":{"schema":{"type":"object","required":["ok","data","meta"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/PoolList"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/pools/{address}":{"get":{"operationId":"getPool","summary":"Indexed metadata for one pool","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"}}],"responses":{"200":{"description":"Observed mainnet data with provenance","content":{"application/json":{"schema":{"type":"object","required":["ok","data","meta"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Pool"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/positions/{address}":{"get":{"operationId":"getPosition","summary":"Confirmed PositionV2/pool snapshot with mint validation","parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"}},{"name":"pool","in":"query","required":true,"schema":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"}}],"responses":{"200":{"description":"Observed mainnet data with provenance","content":{"application/json":{"schema":{"type":"object","required":["ok","data","meta"],"properties":{"ok":{"const":true},"data":{"$ref":"#/components/schemas/Position"},"meta":{"$ref":"#/components/schemas/Meta"}}}}}},"400":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"502":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"Typed error; no fixture fallback","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Meta":{"type":"object","required":["apiVersion","sdkVersion","cluster","source","observedAt"],"properties":{"apiVersion":{"const":"1"},"sdkVersion":{"type":"string"},"cluster":{"const":"mainnet-beta"},"source":{"enum":["meteora-index","solana-confirmed","studio-loco"]},"observedAt":{"type":"integer","minimum":1,"maximum":9007199254740991},"slot":{"type":"integer","minimum":0,"maximum":9007199254740991},"mintSlot":{"type":"integer","minimum":0,"maximum":9007199254740991}}},"Error":{"type":"object","required":["ok","error"],"properties":{"ok":{"const":false},"error":{"type":"object","required":["code","message","retryable"],"properties":{"code":{"type":"string"},"message":{"type":"string","maxLength":400},"retryable":{"type":"boolean"}}}}},"Pool":{"type":"object","required":["address","name","tokenX","tokenY","tvlUsd","currentPrice","volume24hUsd","fees24hUsd","binStep","blacklisted"],"properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"name":{"type":"string","maxLength":160},"tokenX":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"symbol":{"type":["string","null"],"maxLength":80},"decimals":{"type":["integer","null"],"minimum":0,"maximum":18}}},"tokenY":{"type":"object","required":["address","symbol","decimals"],"properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"symbol":{"type":["string","null"],"maxLength":80},"decimals":{"type":["integer","null"],"minimum":0,"maximum":18}}},"tvlUsd":{"type":["number","null"],"minimum":0},"currentPrice":{"type":["number","null"],"minimum":0,"description":"Indexed current_price supplied by Meteora; not an executable quote"},"volume24hUsd":{"type":["number","null"],"minimum":0},"fees24hUsd":{"type":["number","null"],"minimum":0},"binStep":{"type":["integer","null"],"minimum":1,"maximum":65535},"blacklisted":{"type":["boolean","null"]}}},"PoolList":{"type":"object","required":["pools","page","perPage","total","hasMore","dropped"],"properties":{"pools":{"type":"array","maxItems":25,"items":{"$ref":"#/components/schemas/Pool"}},"page":{"type":"integer","minimum":1,"maximum":20},"perPage":{"type":"integer","minimum":1,"maximum":25},"total":{"type":["integer","null"],"minimum":0},"hasMore":{"type":"boolean","description":"Another indexed page exists; API supports pages up to 20"},"dropped":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Malformed upstream rows excluded from this page"}}},"Position":{"type":"object","required":["address","pool","owner","mintX","mintY","decimalsX","decimalsY","lowerBinId","upperBinId","activeBinId","binStep","inRange"],"properties":{"address":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"pool":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"owner":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"mintX":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"mintY":{"type":"string","pattern":"^[1-9A-HJ-NP-Za-km-z]{32,44}$","description":"Base58 encoded 32-byte Solana address"},"decimalsX":{"type":"integer","minimum":0,"maximum":18},"decimalsY":{"type":"integer","minimum":0,"maximum":18},"lowerBinId":{"type":"integer","minimum":-351639,"maximum":351639},"upperBinId":{"type":"integer","minimum":-351639,"maximum":351639},"activeBinId":{"type":"integer","minimum":-351639,"maximum":351639},"binStep":{"type":"integer","minimum":1,"maximum":65535},"inRange":{"type":"boolean"}}},"Capabilities":{"type":"object","required":["name","readOnly","features","limits","exclusions"],"properties":{"name":{"const":"Studio Loco"},"readOnly":{"const":true},"features":{"type":"array","items":{"type":"string"}},"limits":{"type":"object","properties":{"maxPage":{"const":20},"maxPerPage":{"const":25},"maxRangeBins":{"const":69},"timeoutMs":{"const":15000}},"required":["maxPage","maxPerPage","maxRangeBins","timeoutMs"]},"exclusions":{"type":"array","items":{"type":"string"}}}}}}}