> For the complete documentation index, see [llms.txt](https://lambdaplex-labs.gitbook.io/lambdaplex/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lambdaplex-labs.gitbook.io/lambdaplex/for-developers/api/exchange-info.md).

# Exchange Info

Exchange status and token info

## Get server time

> Returns the current server time in milliseconds since the Unix epoch.\
> \
> \*\*Weight:\*\* 1

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Exchange info","description":"Exchange status and token info"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/time":{"get":{"tags":["Exchange info"],"summary":"Get server time","description":"Returns the current server time in milliseconds since the Unix epoch.\n\n**Weight:** 1","operationId":"getServerTime","responses":{"200":{"description":"Current server time","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerTime"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"description":"Server error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"ServerTime":{"type":"object","description":"Current server time in milliseconds since the Unix epoch.","properties":{"serverTime":{"type":"integer","format":"int64","description":"Server time (ms since epoch)"}}},"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}}},"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}
```

## Gets the server's availability

> Returns 200 OK if the server is available.\
> \
> \*\*Weight:\*\* 1

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Exchange info","description":"Exchange status and token info"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/ping":{"get":{"tags":["Exchange info"],"summary":"Gets the server's availability","description":"Returns 200 OK if the server is available.\n\n**Weight:** 1","operationId":"getPing","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}}},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"description":"Server error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}},"schemas":{"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}}}}}
```

## Exchange metadata and symbol filters

> Returns exchange metadata for a single symbol or a list of symbols.\
> Exactly one of \`symbol\` or \`symbols\` may be provided. If neither is set, all symbols are returned.\
> \
> \
> \*\*Weight:\*\* 20

```json
{"openapi":"3.1.0","info":{"title":"Lambdaplex API","version":"1.0"},"tags":[{"name":"Exchange info","description":"Exchange status and token info"}],"servers":[{"url":"https://api.lambdaplex.io","description":"Generated server url"}],"security":[],"paths":{"/api/v1/exchangeInfo":{"get":{"tags":["Exchange info"],"summary":"Exchange metadata and symbol filters","description":"Returns exchange metadata for a single symbol or a list of symbols.\nExactly one of `symbol` or `symbols` may be provided. If neither is set, all symbols are returned.\n\n\n**Weight:** 20","operationId":"getExchangeInfo","parameters":[{"name":"symbol","in":"query","description":"Single trading pair symbol (mutually exclusive with `symbols`)","required":false,"schema":{"type":"string","maxLength":33,"minLength":3,"pattern":"^[A-Z0-9_]+-[A-Z0-9_]+$"}},{"name":"symbols","in":"query","description":"Multiple trading pair symbols (mutually exclusive with `symbol`).\nDefault style uses repeated query params, e.g. `?symbols=PLEX-HBAR,HBAR-USDC`.\n","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string","maxLength":33,"minLength":3,"pattern":"^[A-Z0-9_]+-[A-Z0-9_]+$"},"minItems":1,"uniqueItems":true}}],"responses":{"200":{"description":"ExchangeInfo for the requested symbols","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExchangeInfo"}}}},"400":{"description":"Bad Request — both 'symbol' and 'symbols' were provided, or input is invalid.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"description":"Server error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetail"}}}}}}}},"components":{"schemas":{"ExchangeInfo":{"type":"object","description":"Top-level exchange metadata","properties":{"exchangeSymbols":{"type":"array","description":"All symbols available on the exchange","items":{"$ref":"#/components/schemas/ExchangeSymbol","description":"All symbols available on the exchange","minItems":1,"uniqueItems":true},"minItems":1,"uniqueItems":true}}},"ExchangeSymbol":{"type":"object","description":"Metadata and filters for a trading pair","properties":{"symbol":{"type":"string","description":"Trading pair symbol","maxLength":33,"minLength":3,"pattern":"^[A-Z0-9_]+-[A-Z0-9_]+$"},"baseAsset":{"type":"string","description":"Base asset","maxLength":16,"minLength":1,"pattern":"^[A-Z0-9_]+$"},"quoteAsset":{"type":"string","description":"Quote asset","maxLength":16,"minLength":1,"pattern":"^[A-Z0-9_]+$"},"baseAssetPrecision":{"type":"integer","format":"int32","description":"Decimals for the base asset","minimum":0},"quoteAssetPrecision":{"type":"integer","format":"int32","description":"Decimals for the quote asset","minimum":0},"filters":{"type":"array","description":"Filters that apply to this symbol","items":{"$ref":"#/components/schemas/Filter","description":"Filters that apply to this symbol","minItems":1},"minItems":1},"status":{"type":"string","description":"Market lifecycle status","enum":["TRADING","CANCEL_ONLY","PAUSED"]}}},"Filter":{"discriminator":{"propertyName":"filterType","mapping":{"PRICE_FILTER":"#/components/schemas/PriceFilter","PERCENT_PRICE_BY_SIDE":"#/components/schemas/PercentPriceBySideFilter","LOT_SIZE":"#/components/schemas/LotSizeFilter","MIN_NOTIONAL":"#/components/schemas/MinNotionalFilter","DUST_ORDER_POLICY":"#/components/schemas/DustOrderPolicyFilter"}},"oneOf":[{"$ref":"#/components/schemas/PriceFilter"},{"$ref":"#/components/schemas/PercentPriceBySideFilter"},{"$ref":"#/components/schemas/LotSizeFilter"},{"$ref":"#/components/schemas/MinNotionalFilter"},{"$ref":"#/components/schemas/DustOrderPolicyFilter"}],"properties":{"filterType":{"type":"string"}},"required":["filterType"]},"PriceFilter":{"allOf":[{"$ref":"#/components/schemas/Filter"},{"type":"object","properties":{"minPrice":{"type":"number","description":"Minimum price"},"maxPrice":{"type":"number","description":"Maximum price; 0 disables the maximum price rule"},"tickSize":{"type":"number","description":"Smallest price increment"}}}],"description":"Price bounds and tick size for the symbol"},"PercentPriceBySideFilter":{"allOf":[{"$ref":"#/components/schemas/Filter"},{"type":"object","properties":{"bidMultiplierUp":{"type":"number","description":"Maximum buy-side price multiplier over the reference price"},"bidMultiplierDown":{"type":"number","description":"Minimum buy-side price multiplier under the reference price"},"askMultiplierUp":{"type":"number","description":"Maximum sell-side price multiplier over the reference price"},"askMultiplierDown":{"type":"number","description":"Minimum sell-side price multiplier under the reference price"},"avgPriceMins":{"type":"integer","format":"int32","description":"Minutes over which to average price; 0 means the current reference price is used","minimum":0}}}],"description":"Side-specific dynamic price band for limit orders"},"LotSizeFilter":{"allOf":[{"$ref":"#/components/schemas/Filter"},{"type":"object","properties":{"minQty":{"type":"number","description":"Minimum quantity"},"maxQty":{"type":"number","description":"Maximum quantity"},"stepSize":{"type":"number","description":"Smallest quantity increment"}}}],"description":"Quantity bounds and step for order sizes"},"MinNotionalFilter":{"allOf":[{"$ref":"#/components/schemas/Filter"},{"type":"object","properties":{"minNotional":{"type":"number","description":"Minimum notional value in quote asset"},"applyToMarket":{"type":"boolean","description":"Whether the filter applies to market orders"},"avgPriceMins":{"type":"integer","format":"int32","description":"Minutes over which to average price","minimum":0}}}],"description":"Minimum notional amount and settings"},"DustOrderPolicyFilter":{"allOf":[{"$ref":"#/components/schemas/Filter"},{"type":"object","properties":{"available":{"type":"boolean"},"indicativeAbsoluteMinNotionalUsd":{"type":"number"},"maxDustFeeBps":{"type":"integer","format":"int32"},"platformNetBps":{"type":"integer","format":"int32"},"quoteAndConsentRequired":{"type":"boolean"},"supportedOrderTypes":{"type":"array","items":{"type":"string"}},"supportedUserTypes":{"type":"array","items":{"type":"string"}}}}],"description":"Public capability metadata for opt-in dust-priced market orders; never an account eligibility claim"},"ProblemDetail":{"type":"object","properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer","format":"int32"},"detail":{"type":"string"},"instance":{"type":"string","format":"uri"},"properties":{"type":"object","additionalProperties":{}}}},"RateLimitError":{"type":"object","description":"Error response returned when a request is rate limited (HTTP 429)","properties":{"code":{"type":"string","description":"Error code indicating rate limiting"},"status":{"type":"integer","format":"int32","description":"HTTP status code"},"scope":{"type":"string","description":"Scope of the rate limit: 'rest' for HTTP endpoints, 'ws' for WebSocket handshake","enum":["rest","ws"]},"bucket":{"type":"string","description":"Bucket that triggered the limit (e.g. 'rest_weight', 'orders', 'ws_handshake')"},"keyType":{"type":"string","description":"Key type that was rate limited: 'ip' or 'api'","enum":["ip","api"]},"retryAfterSec":{"type":"number","format":"double","description":"Seconds until enough tokens are available to retry this request"}},"required":["bucket","code","keyType","retryAfterSec","scope","status"]}},"responses":{"RateLimited":{"description":"Too Many Requests - Rate limit exceeded.","headers":{"X-PLEX-USED-WEIGHT-API":{"description":"Current used weight for your API key this minute (if authenticated)","schema":{}},"Retry-After":{"description":"Number of seconds to wait before retrying","schema":{}},"X-PLEX-ORDER-COUNT":{"description":"Current order count for your API key (for order endpoints)","schema":{}},"X-PLEX-USED-WEIGHT-IP":{"description":"Current used weight for your IP this minute","schema":{}}},"content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}},"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}}}
```
