Lighter Updown API

The updown API from Lighter — 1 operation(s) for updown.

Operations 1

GET /api/v1/upDownCandles upDownCandles #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/lighter:lighter-updown-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

lighter-updown-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lighter Updown API
  version: "1.0"
servers:
- url: https://mainnet.zklighter.elliot.ai/
tags:
- name: updown
paths:
  /api/v1/upDownCandles:
    get:
      summary: upDownCandles
      operationId: upDownCandles
      tags:
      - updown
      description: Get the OHLC candles (1s = the exact price observations, or 30s) of an up/down market series (symbol + duration, e.g. btc/5m) in a bounded time range (at most 24h), oldest first. Pass next_cursor as start_timestamp to page forward; live candles are on the up_down_candle/// websocket channel.
      parameters:
      - name: symbol
        in: query
        description: ' market series: underlying (case-insensitive) ...'
        required: true
        schema:
          type: string
      - name: duration
        in: query
        description: ' ... and market duration, e.g. 30s or 5m'
        required: true
        schema:
          type: string
      - name: resolution
        in: query
        description: ' 1s candles are the observations themselves'
        required: false
        schema:
          type: string
          enum:
          - 1s
          - 30s
          default: 1s
      - name: start_timestamp
        in: query
        description: ' inclusive bucket start, seconds'
        required: true
        schema:
          type: integer
          format: int64
          minimum: 0
          maximum: 5000000000
      - name: end_timestamp
        in: query
        description: ' inclusive, seconds; at most 24h after start_timestamp'
        required: true
        schema:
          type: integer
          format: int64
          minimum: 0
          maximum: 5000000000
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          format: int64
          default: '1000'
          minimum: 1
          maximum: 3600
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespGetUpDownCandles'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResultCode'
components:
  schemas:
    RespGetUpDownCandles:
      type: object
      properties:
        code:
          type: integer
          format: int32
          example: '200'
        message:
          type: string
        candles:
          type: array
          items:
            $ref: '#/components/schemas/UpDownCandle'
          description: ' ascending by timestamp'
        next_cursor:
          type: integer
          format: int64
          example: '0'
          description: ' start_timestamp of the next page; 0 when the range is exhausted'
      title: RespGetUpDownCandles
      required:
      - code
      - candles
    ResultCode:
      type: object
      properties:
        code:
          type: integer
          format: int32
          example: '200'
        message:
          type: string
      title: ResultCode
      required:
      - code
    UpDownCandle:
      type: object
      properties:
        symbol:
          type: string
          example: btc
        duration:
          type: string
          example: 5m
        resolution:
          type: string
          example: 30s
        timestamp:
          type: integer
          format: int64
          example: '1789551600'
          description: ' bucket start, unix seconds'
        open:
          type: string
          example: '115342.123456789012345678'
          description: ' exact provider prices, decimal strings'
        high:
          type: string
          example: '115350.5'
        low:
          type: string
          example: '115300.25'
        close:
          type: string
          example: '115340.123456789012345678'
        provider:
          type: string
          example: chainlink
          description: ' provider feed of the last observation of the candle'
        feed_id:
          type: string
          example: '0x0002ee6757e8822c00d273bc340fc24c9cafe123a4ff2ea1dbdb31944bc7d95f'
      title: UpDownCandle
      required:
      - symbol
      - duration
      - resolution
      - timestamp
      - open
      - high
      - low
      - close
      - provider
      - feed_id
x-provenance:
  method: harvested
  publisher: Lighter
  source: https://apidocs.lighter.xyz/openapi/page.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)