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

# Service health



## OpenAPI

````yaml /openapi.yaml get /v1/health
openapi: 3.1.0
info:
  title: Lucidblock Positions API
  version: 0.1.0
  summary: >-
    Read-only Solana DeFi positions with explicit coverage and sourced USD
    values.
  description: >
    For a Solana wallet, returns the lending, liquidity, staking, vault and
    perpetual positions found by

    verified protocol adapters, with exact per-leg amounts, sourced USD values
    and explicit coverage.


    Conventions: amounts (`amount_raw`) are non-negative base-10 integer
    strings; `amount` and every USD

    value are decimal strings; unknown values are `null`, never `"0"`. Times are
    ISO 8601 UTC with second

    precision. Addresses are base58 and case-sensitive. Absence of a position is
    trustworthy only for

    protocols whose coverage status is `complete`. Totals cover the supported
    universe only; they are not

    total wallet net worth.


    Every `/v1/*` response that passed the rate limiter carries
    `RateLimit-Limit`, `RateLimit-Remaining`

    and `RateLimit-Reset`; a 429 adds `Retry-After`. Every response carries
    `X-Request-Id`.


    While `PRIVATE_API_TOKEN` is configured (private alpha), every `/v1/*` route
    except `/v1/health`

    requires `Authorization: Bearer <token>`.


    Snapshots carry display metadata (names, symbols, first-party logo URLs
    under /assets/v1/, provenance)

    and a trademark notice: protocol and token names and logos belong to their
    owners and are shown for

    identification only (14-metadata.md). Metadata never changes ids, amounts or
    totals.
  license:
    name: Proprietary
servers:
  - url: https://api.lucidblock.xyz
    description: Production (private alpha until the v1 release gate)
security:
  - {}
  - AccessToken: []
tags:
  - name: meta
  - name: positions
  - name: catalogue
paths:
  /v1/health:
    get:
      tags:
        - meta
      summary: Service health
      operationId: getHealth
      responses:
        '200':
          description: Service up (status ok or degraded)
          headers:
            X-Request-Id:
              $ref: '#/components/headers/XRequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
        '503':
          description: D1 unreachable (same body shape, status down)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Health'
      security:
        - {}
components:
  headers:
    XRequestId:
      schema:
        type: string
  schemas:
    Health:
      type: object
      required:
        - status
        - service
        - version
        - environment
        - time
        - db
        - rpc
      properties:
        status:
          type: string
          enum:
            - ok
            - degraded
            - down
        service:
          type: string
          const: lucidblock
        version:
          type: string
        environment:
          type: string
          enum:
            - local
            - production
        release_status:
          $ref: '#/components/schemas/ReleaseStatus'
        time:
          $ref: '#/components/schemas/Timestamp'
        db:
          type: string
          enum:
            - ok
            - error
        rpc:
          type: object
          additionalProperties: false
          required:
            - configured_urls
            - keyed_endpoint
          properties:
            configured_urls:
              type: integer
            keyed_endpoint:
              type: boolean
        jobs:
          type: object
          required:
            - queued
            - running
            - oldest_queued_age_s
            - last_finished_at
          properties:
            queued:
              type: integer
            running:
              type: integer
            oldest_queued_age_s:
              type:
                - integer
                - 'null'
            last_finished_at:
              type:
                - string
                - 'null'
        prices:
          type: object
          required:
            - sol_usd_status
            - sol_usd_age_s
            - sources
          properties:
            sol_usd_status:
              type:
                - string
                - 'null'
            sol_usd_age_s:
              type:
                - integer
                - 'null'
            sources:
              type: array
              items:
                $ref: '#/components/schemas/PriceSourceStatus'
        budget:
          type: object
          required:
            - month_cu_estimated
            - month_cu_limit
            - pct
            - state
          properties:
            month_cu_estimated:
              type: integer
            month_cu_limit:
              type: integer
            pct:
              type: number
            state:
              $ref: '#/components/schemas/BudgetState'
        adapters:
          type: object
          required:
            - published
            - shadow
            - not_approved
            - quarantined
            - disabled
          properties:
            published:
              type: integer
            shadow:
              type: integer
            not_approved:
              type: integer
            quarantined:
              type: integer
            disabled:
              type: integer
        warnings:
          type: array
          description: >-
            Open enum. Known values release_status_downgraded (RELEASE_STATUS=v1
            configured but full_scope_release_ready is false, so release_status
            is alpha_partial; AM-32).
          items:
            type: string
    ReleaseStatus:
      type: string
      enum:
        - alpha_partial
        - v1
    Timestamp:
      type: string
      pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
    PriceSourceStatus:
      type: object
      required:
        - id
        - status
        - as_of
      properties:
        id:
          type: string
        status:
          type: string
          enum:
            - ok
            - degraded
            - unavailable
        as_of:
          type:
            - string
            - 'null'
    BudgetState:
      type: string
      enum:
        - normal
        - discovery_paused
        - scans_stopped
  securitySchemes:
    AccessToken:
      type: http
      scheme: bearer
      description: >-
        PRIVATE_API_TOKEN, required on /v1/* (except /v1/health) while
        configured.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.