> ## Documentation Index
> Fetch the complete documentation index at: https://docs.oceanx.trade/llms.txt
> Use this file to discover all available pages before exploring further.

# Market overview

> Native all-chain Lighthouse scalar observations across 5m/1h/6h/24h. Economic route volume is counted once; transactions and swap legs remain separate. Protocol/launchpad breakdowns are not collapsed into these aggregate metrics. Requires md.read. No query parameters. The cached producer must be at most 45 seconds old. No third-party call is made per request.



## OpenAPI

````yaml https://www.oceanx.trade/api/v1/openapi.json get /api/v1/market/overview
openapi: 3.1.0
info:
  title: OceanX Developer API
  version: 1.0.0
  description: >-
    Public API for the OceanX trading platform. Currently in beta and free to
    use while in beta.


    This spec covers the **spot quote** domain. The wallet **tracker** and
    **perps** domains are documented at https://docs.oceanx.trade/api/overview
    and are not yet described here.
  contact:
    url: https://docs.oceanx.trade
  termsOfService: https://www.oceanx.trade/legal/terms
  license:
    name: Proprietary
    url: https://www.oceanx.trade/legal/terms
servers:
  - url: https://www.oceanx.trade
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Router
    description: >-
      Read-only Raptor route quotes and public Solana transaction status. Build
      and execution remain separately gated.
  - name: Market Data
    description: Read-only OceanX market context sourced and cached by VM producers.
  - name: Spot
    description: >-
      Executable Solana swap quotes off OceanX's own router, and the exit
      checker that reports whether a whole position can be sold.
  - name: Callouts
    description: >-
      Public token callouts — user-posted token calls with live click/volume
      attribution stats. Read-only.
paths:
  /api/v1/market/overview:
    get:
      tags:
        - Market Data
      summary: Market overview
      description: >-
        Native all-chain Lighthouse scalar observations across 5m/1h/6h/24h.
        Economic route volume is counted once; transactions and swap legs remain
        separate. Protocol/launchpad breakdowns are not collapsed into these
        aggregate metrics. Requires md.read. No query parameters. The cached
        producer must be at most 45 seconds old. No third-party call is made per
        request.
      operationId: getMarketOverview
      responses:
        '200':
          description: >-
            Fresh scalar observations; partial/unavailable scalars are
            permitted.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed per window.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left.
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Unix seconds when the window resets.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricObservation'
        '400':
          description: Query parameters are not supported.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing, malformed or revoked API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The key is valid but lacks the required scope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limited. Honour `Retry-After`.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Requests allowed per window.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests left.
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Unix seconds when the window resets.
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: >-
            The routing engine or rate-limit storage is unavailable. Retry with
            backoff; no upstream work was admitted when the limiter failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - bearerAuth: []
components:
  schemas:
    MetricObservation:
      type: object
      required:
        - version
        - stream
        - watermark
        - metrics
        - evidence
      description: >-
        Unsequenced REST observation. Source watermarks are evidence, never
        contiguous transport sequences. Missing scalars have null values; each
        scalar has its own status, coverage and expiry.
      properties:
        version:
          type: string
          const: oceanx-data-v02.1
        stream:
          type: 'null'
        watermark:
          type: 'null'
        evidence:
          type: object
          required:
            - methodVersion
            - sourceWatermarks
            - baselineVersion
            - volumeConvention
          properties:
            methodVersion:
              type: string
            sourceWatermarks:
              type:
                - object
                - 'null'
              additionalProperties:
                type: string
            baselineVersion:
              type:
                - string
                - 'null'
            volumeConvention:
              type:
                - string
                - 'null'
        metrics:
          type: array
          items:
            type: object
            required:
              - key
              - status
              - value
              - unit
              - reason
              - provenance
            properties:
              key:
                type: object
                required:
                  - chain
                  - metric
                  - window
                properties:
                  chain:
                    type: string
                  token:
                    type: string
                  metric:
                    type: string
                  window:
                    type: string
                    enum:
                      - 5m
                      - 1h
                      - 6h
                      - 24h
                      - 1d
              status:
                type: string
                enum:
                  - known
                  - partial
                  - stale
                  - unavailable
              value:
                type:
                  - string
                  - 'null'
                description: >-
                  Exact decimal or unsigned integer string. JSON monetary
                  numbers are never emitted.
              unit:
                type: string
                enum:
                  - usd
                  - native
                  - decimal
                  - percent
                  - count
              reason:
                type:
                  - string
                  - 'null'
              provenance:
                type: object
                required:
                  - source
                  - method
                  - methodVersion
                  - eventTime
                  - observedTime
                  - sourcePosition
                  - finality
                  - coverage
                  - confidence
                  - staleAfter
                properties:
                  source:
                    type: string
                  method:
                    type: string
                  methodVersion:
                    type: string
                  eventTime:
                    type:
                      - integer
                      - 'null'
                    format: int64
                  observedTime:
                    type: integer
                    format: int64
                  sourcePosition:
                    type: 'null'
                    description: >-
                      These aggregate observations do not invent a single
                      block/slot position.
                  finality:
                    type: string
                    const: observed
                  confidence:
                    type: 'null'
                  staleAfter:
                    type: integer
                    format: int64
                    description: >-
                      Producer-bound expiry in milliseconds. Retrieval does not
                      renew it.
                  coverage:
                    type: object
                    required:
                      - start
                      - end
                      - completeness
                      - reason
                    properties:
                      start:
                        type:
                          - integer
                          - 'null'
                        format: int64
                      end:
                        type:
                          - integer
                          - 'null'
                        format: int64
                      completeness:
                        type: string
                        enum:
                          - complete
                          - partial
                          - unknown
                      reason:
                        type:
                          - string
                          - 'null'
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              description: Stable machine-readable code. Branch on this, not the message.
              example: no_route
            message:
              type: string
              description: Human-readable detail. May change.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An OceanX API key, created in the app under Settings → Developer API.
        Send it as `Authorization: Bearer ox_live_…`. These endpoints require
        the `md.read` scope, which is on every key by default.

````