Galaxy Mind Market API

Live BTC market signals

GitHub OpenAPI

Operations 7

GET /api/stack Bitcoin Buying Gauge verdict #
GET /api/stack/history Daily gauge history (JSON or CSV) #
GET /api/pulse Weekly Pulse archive #
GET /api/status Data-source health (CORS-open · always 200) #
GET /api/float-heartbeat Lightweight in-play float (CORS-open) #
GET /api/heartbeat Lightweight gauge + block height (CORS-open) #
GET /api/market Full market snapshot #

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/galaxymind-space:galaxymind-space-market-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

galaxymind-space-market-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Galaxy Mind public Market API
  version: 2.0.0
  summary: Live Bitcoin market signals, treasury mNAV, float, and a vendor directory.
  description: 'Read-only JSON endpoints powering galaxymind.space. All GET, no auth. Every endpoint is edge-cached (see x-cache-seconds per path) and fail-closes to neutral/null values rather than erroring when an upstream source is down. Data sources: CoinGecko, Yahoo Finance, bitcointreasuries.net, alternative.me, Coinmetrics, OKX, mempool.space. An MCP server with the same data is at /api/mcp/mcp (Streamable HTTP transport).'
  contact:
    name: Galaxy Mind
    url: https://galaxymind.space
  license:
    name: Public data · attribution appreciated
    identifier: CC-BY-4.0
servers:
- url: https://galaxymind.space
  description: Production
tags:
- name: Market
  description: Live BTC market signals
paths:
  /api/stack:
    get:
      tags:
      - Market
      operationId: getStackVerdict
      summary: Bitcoin Buying Gauge verdict
      description: The 0-100 buying-pressure score, tier, and the 10 weighted signal readings (MVRV, Mayer, Puell, funding, Fear & Greed, price-vs-30d-MA, realized vol, hour-of-day, day-of-week, MSTR mNAV).
      responses:
        '200':
          description: Verdict with score, tier, and signal breakdown.
          content:
            application/json:
              schema:
                type: object
      x-cache-seconds: 120
  /api/stack/history:
    get:
      tags:
      - Market
      operationId: getStackHistory
      summary: Daily gauge history (JSON or CSV)
      description: 'Daily snapshots of the buying gauge, oldest-first. CSV columns: date,score,tier. Backed by the daily snapshot cron, so coverage starts when snapshots began.'
      parameters:
      - name: days
        in: query
        required: false
        schema:
          type: integer
          enum:
          - 30
          - 90
          - 180
          - 365
          default: 90
        description: Window length. Any other value falls back to 90; the response echoes the window actually used.
      - name: format
        in: query
        required: false
        schema:
          type: string
          enum:
          - csv
        description: Omit for JSON; `csv` returns text/csv.
      responses:
        '200':
          description: Object {history, count, asOf} where history is [{date, score, tier}], oldest-first. NOT a bare array.
          content:
            application/json:
              schema:
                type: object
      x-cache-seconds: 300
  /api/pulse:
    get:
      tags:
      - Market
      operationId: getPulseArchive
      summary: Weekly Pulse archive
      description: 'One entry per ISO week: that week''s gauge verdict, in-play float and weekly delta, cheapest treasury mNAV, and directory growth. Answers "what happened this week" where /api/stack answers "what is true now". Written by the Monday 00:30 UTC cron; the archive is capped, so depth grows with time rather than being backfilled.'
      responses:
        '200':
          description: Object {count, weeks, asOf}, weeks newest-first.
          content:
            application/json:
              schema:
                type: object
      x-cache-seconds: 1800
  /api/status:
    get:
      tags:
      - Market
      operationId: getStatus
      summary: Data-source health (CORS-open · always 200)
      description: 'Per-source freshness plus whether each surface is live or on fallbacks. CONTRACT: this route ALWAYS returns HTTP 200, even on internal error, so a monitor watching it never pages because the status route itself hiccuped — read the body''s `ok` field, not the status code.'
      responses:
        '200':
          description: '{ ok, asOf, sources[] }.'
          content:
            application/json:
              schema:
                type: object
      x-cache-seconds: 120
  /api/float-heartbeat:
    get:
      tags:
      - Market
      operationId: getFloatHeartbeat
      summary: Lightweight in-play float (CORS-open)
      description: ~200-byte payload powering the embeddable Supply Clock. Carries the in-play float, a drain rate, and an honest state lamp (DRAINING / REFILLING / BASELINE / SYNCING).
      responses:
        '200':
          description: Compact float payload with state.
          content:
            application/json:
              schema:
                type: object
      x-cache-seconds: 300
  /api/heartbeat:
    get:
      tags:
      - Market
      operationId: getHeartbeat
      summary: Lightweight gauge + block height (CORS-open)
      description: '~120-byte payload: { blockHeight, score, tier, asOf, btcPrice, degraded }. This is the only CORS-open, 30s-cached surface that carries BTC spot, which makes it the right poll target for a browser widget that needs price. CORS-open for third-party embeds. `degraded:true` means ≥4/8 signals were null at snapshot time.'
      responses:
        '200':
          description: blockHeight, score, tier, asOf, btcPrice, degraded.
          content:
            application/json:
              schema:
                type: object
      x-cache-seconds: 30
  /api/market:
    get:
      tags:
      - Market
      operationId: getMarketSnapshot
      summary: Full market snapshot
      description: 'Everything the gauge is built from: BTC price, 30d realized vol, Fear & Greed, MVRV, Puell, funding rate, treasury rows, block height, and ~400d of hourly closes. Large (~hundreds of KB) · prefer /api/heartbeat or /api/stack for polling.'
      responses:
        '200':
          description: MarketSnapshot.
          content:
            application/json:
              schema:
                type: object
      x-cache-seconds: 300
x-rentals: 'Galaxy Mind rents its hashrate on MiningRigRentals now. Start at https://galaxymind.space/hashrate: pick how much hashrate you want in 270 TH/s units and each free unit has its own Rent button. Direct rental routes on this site answer 410 direct_rentals_closed with rentUrl (https://galaxymind.space/hashrate).'