Get the daily history of the Bitcoin Macro Oscillator (BMO), together with the price on each day. The endpoint takes no parameters and returns the full history since 2012 in one call, useful for seeing where bitcoin stands within the long-term cycle.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Available on these API plans: Startup Standard Professional Enterprise
Response Data
data is an array; each element is one day's data, and timestamp is the millisecond timestamp of 00:00 (UTC) on that day. This endpoint has no request parameters and returns the full history at once: as of 2026-10-20, 5371 records in total, and the first record is the earliest data (2012-01-09). The data date of the latest record may be earlier than the day of the call; for example, when called on 2026-10-23, the latest record was 2026-09-22. When displaying it, also show the date of its timestamp, and do not present it as today's value. The example on the right keeps only the first 2.
200 · application/json · See the response example in the right panel.
| Field | Type | Always Returned | Description |
|---|---|---|---|
code | string | Yes | Business status code; "0" means success |
msg | string | No | Result message; not returned on success |
data | array of object | Yes | Array of daily data |
data[].price | number | Yes | Bitcoin price on that day, in USD; values include both integers and decimals. The price returned by different indicator endpoints for the same day is not exactly the same; keep this in mind when merging data |
data[].bmo_value | number | Yes | BMO indicator value; can be negative |
data[].timestamp | integer (int64) | Yes | Data date, timestamp in milliseconds (UTC), at 00:00 of that day |
API Plans
Only the API plans marked Yes in the table below can call this endpoint. For the price of each plan, see API Plans.
| API Plan | Access |
|---|---|
| Hobbyist | ❌ No |
| Startup | ✅ Yes |
| Standard | ✅ Yes |
| Professional | ✅ Yes |
| Enterprise | ✅ Yes |
Use This Endpoint with AI
Pick a task and click Open in ChatGPT or Open in Claude: the AI reads this page first and then gives you the result. You can also click Copy and paste the full prompt into the AI tool you use.
This endpoint provides data through the REST API. Use the prompts above to have AI write the request code. For the tools available through MCP, see CoinGlass MCP.
Use Cases
| Scenario | Description |
|---|---|
| Long-cycle position reference | Observe the highs and lows of BMO across past bull and bear cycles to understand the current relative position. |
| Cross-check with other cycle indicators | Read it together with indicators such as Bitcoin Net Unrealized Profit/Loss (NUPL) and Puell Multiple so they confirm each other. |
| Cycle indicator dashboard | Suitable for display on a cycle indicator dashboard; label the data date when displaying it, since the latest data may be dated earlier than the current day. |
| Charts for research reports | A single request returns the complete series since 2012, suitable for research reports. |
Related Endpoints
| Endpoint | How It Differs |
|---|---|
| Bitcoin Net Unrealized Profit/Loss (NUPL) | Unrealized profit/loss of all holders as a share of market cap |
| Bull Market Peak Indicators | Current and target values of multiple cycle indicators |
| Puell Multiple | Looks at the cycle position from the angle of miner revenue |
| 2-Year MA Multiplier | Uses the 2-year moving average and 5 times its value to gauge the price position |
FAQ
Can bmo_value be negative?
Yes. BMO is an oscillator; early data is about -0.26.
Can I query ETH or other coins?
No. This endpoint is a fixed bitcoin indicator dataset with no coin parameter; it only returns bitcoin data.
Can I query data for a specific time range only?
No. This endpoint has no parameters and always returns the full history (the response is about 450 KB). If you need a specific period, filter locally by timestamp. We recommend caching the results and refreshing as needed; there is no need to request frequently.
How often is it updated?
Once a day, but that does not mean every day has a new data date: when called on 2026-10-23, the latest record was still 2026-09-22. When getting data by date, rely on timestamp.
Learn More: Bitcoin Macro Oscillator (BMO)
What Is the Bitcoin Macro Oscillator?
The Bitcoin Macro Oscillator (BMO) is an oscillator used to observe the relative position of bitcoin in the macro cycle. This endpoint returns daily records of the BMO value and that day's price; the value can be negative.
How Should BMO Values Be Read?
BMO is best read by its relative position within its own history: compare the current value with the highs and lows of past bull and bear cycles to judge which stage of the cycle bitcoin is currently in.
Which Indicators Should You Combine with BMO?
BMO only describes relative position and does not constitute a buy or sell signal. You can use it together with cycle indicators such as Bitcoin Net Unrealized Profit/Loss (NUPL), Puell Multiple and Bull Market Peak Indicators so they confirm each other.
