{"components":{"schemas":{"AssetRisk":{"properties":{"as_of":{"description":"The newest DAILY reading across this asset's models.","type":["string","null"]},"asset_class":{"enum":["CRYPTO","EQUITY"],"type":"string"},"dca":{"$ref":"#/components/schemas/Dca"},"free_tier":{"description":"True for the top 10 crypto assets by market-cap rank, which the free plan may read.","type":"boolean"},"gravity":{"$ref":"#/components/schemas/Gravity"},"market_cap_rank":{"description":"Crypto only, from the galaxy's own daily ranking.","type":["integer","null"]},"market_context":{"$ref":"#/components/schemas/MarketContext"},"name":{"type":"string"},"phase":{"$ref":"#/components/schemas/Phase"},"price":{"$ref":"#/components/schemas/Price"},"sma_composite":{"$ref":"#/components/schemas/SmaComposite"},"stale_models":{"description":"Models whose source page is more than three days behind this asset's newest page. Empty is the normal case.","items":{"type":"string"},"type":"array"},"symbol":{"description":"The canonical symbol. Report filenames may carry a CoinMarketCap id (UNI7083); this never does.","type":"string"},"twap":{"$ref":"#/components/schemas/Twap"},"universes":{"items":{"enum":["ai_infrastructure","bitcoin_equities","crypto","quantum","us_stock_market"],"type":"string"},"type":"array"}},"required":["symbol","name","asset_class","universes","as_of"],"type":"object"},"Dca":{"description":"Dollar-cost-averaging regression state. Publishes a band, never a position size.","properties":{"as_of":{"description":"When this reading was published.","type":["string","null"]},"as_of_basis":{"description":"Where the timestamp came from: the source page's own printed stamp, the newest observed point of its price series, or the sector feed's clock.","enum":["page_stamp","trace_end","feed_generated_at"],"type":"string"},"band":{"description":"The model's own tenth band, e.g. `0.3-0.4`.","type":"string"},"ceiling":{"type":["number","null"]},"fair_value":{"type":["number","null"]},"floor":{"type":["number","null"]},"model":{"description":"The model and its version, as `name@version`.","type":"string"},"premium_pct":{"type":["number","null"]},"premium_source":{"description":"Whether the page printed this figure or it was computed from the same two series the page draws.","enum":["printed","derived","unavailable"],"type":"string"},"price":{"type":["number","null"]},"reading_date":{"type":["string","null"]},"risk":{"maximum":1,"minimum":0,"type":"number"},"source_page":{"description":"The published page this was read from.","type":"string"}},"type":["object","null"]},"Error":{"properties":{"disclaimer":{"type":"string"},"error":{"properties":{"code":{"description":"A stable machine-readable code. Match on this, not on the message.","enum":["method_not_allowed","not_found","unauthorized","gateway_not_configured","bad_symbol","bad_universe","bad_parameter","too_many_symbols","unknown_asset","unknown_universe","no_signal","plan_required","upstream_error"],"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"}},"required":["error","disclaimer"],"type":"object"},"Gravity":{"description":"Where price sits against its own time-weighted baseline, 0-100.","properties":{"as_of":{"description":"When this reading was published.","type":["string","null"]},"as_of_basis":{"description":"Where the timestamp came from: the source page's own printed stamp, the newest observed point of its price series, or the sector feed's clock.","enum":["page_stamp","trace_end","feed_generated_at"],"type":"string"},"model":{"description":"The model and its version, as `name@version`.","type":"string"},"risk_level":{"description":"The chart's own 1-10 band, read from the card rather than recomputed.","maximum":10,"minimum":1,"type":"integer"},"score":{"maximum":100,"minimum":0,"type":"number"},"source_page":{"description":"The published page this was read from.","type":"string"},"verdict":{"description":"The band's published wording.","type":"string"}},"type":["object","null"]},"HistoryRow":{"properties":{"basis":{"description":"How the row was recorded. A weekly archive row is never presented as a daily reading.","enum":["as_published","weekly_archive"],"type":"string"},"date":{"format":"date","type":"string"},"dca_band":{"type":["string","null"]},"dca_premium_pct":{"type":["number","null"]},"dca_risk":{"type":["number","null"]},"gravity":{"type":["number","null"]},"phase_completion_pct":{"type":["number","null"]},"price":{"type":["number","null"]},"sma_composite":{"type":["number","null"]},"twap_premium_pct":{"type":["number","null"]},"twap_risk_level":{"type":["integer","null"]}},"type":"object"},"MarketContext":{"description":"The universe's own barometer. Market-wide or sector-wide, never per asset.","properties":{"fear_greed":{"properties":{"as_of":{"type":["string","null"]},"as_of_basis":{"type":"string"},"label":{"type":["string","null"]},"label_source":{"type":"string"},"model":{"type":"string"},"provider":{"type":"string"},"scope":{"enum":["market","sector"],"type":"string"},"sma_30":{"type":["number","null"]},"value":{"type":["number","null"]}},"type":["object","null"]},"macro_risk":{"description":"Equity sectors only.","properties":{"as_of":{"type":["string","null"]},"as_of_basis":{"type":"string"},"model":{"type":"string"},"scope":{"type":"string"},"score":{"type":["number","null"]},"status":{"type":["string","null"]}},"type":["object","null"]},"peak_valley":{"properties":{"as_of":{"type":["string","null"]},"as_of_basis":{"type":"string"},"model":{"type":"string"},"scope":{"enum":["market","sector"],"type":"string"},"score":{"type":["number","null"]},"series":{"type":"string"},"zone":{"description":"The band name, quoted from the source rather than re-derived.","type":["string","null"]}},"type":["object","null"]},"universe":{"enum":["ai_infrastructure","bitcoin_equities","crypto","quantum","us_stock_market"],"type":"string"}},"type":"object"},"ModelVersion":{"additionalProperties":{"type":"string"},"description":"Every model's version at the time this document was built. A version changes only when what a reading MEANS changes - a new window, a new normalisation, a new scale - never on a refresh.","type":["object","null"]},"Phase":{"description":"Polynomial cycle phase from a degree-2 log regression with decayed sigma bands.","properties":{"as_of":{"description":"When this reading was published.","type":["string","null"]},"as_of_basis":{"description":"Where the timestamp came from: the source page's own printed stamp, the newest observed point of its price series, or the sector feed's clock.","enum":["page_stamp","trace_end","feed_generated_at"],"type":"string"},"completion_pct":{"description":"Position between the -3 and +3 sigma bands, not elapsed time.","type":["number","null"]},"fair_value":{"type":["number","null"]},"label":{"description":"The detected phase, quoted from the page.","type":"string"},"max_euphoria_target":{"type":["number","null"]},"model":{"description":"The model and its version, as `name@version`.","type":"string"},"source_page":{"description":"The published page this was read from.","type":"string"}},"type":["object","null"]},"Price":{"properties":{"currency":{"enum":["USD"],"type":"string"},"source_page":{"type":["string","null"]},"value":{"type":["number","null"]}},"type":"object"},"SmaComposite":{"description":"Moving-average composite risk. A 20-week model for crypto; a 20/100/200-week composite for equities.","properties":{"as_of":{"description":"When this reading was published.","type":["string","null"]},"as_of_basis":{"description":"Where the timestamp came from: the source page's own printed stamp, the newest observed point of its price series, or the sector feed's clock.","enum":["page_stamp","trace_end","feed_generated_at"],"type":"string"},"band":{"description":"The exporter's own tenth band, e.g. `0.5-0.6`.","type":"string"},"model":{"description":"The model and its version, as `name@version`.","type":"string"},"page_value":{"description":"The value as the page prints it, 0-1.","type":"number"},"score":{"maximum":100,"minimum":0,"type":"number"},"source_page":{"description":"The published page this was read from.","type":"string"}},"type":["object","null"]},"SymbolList":{"items":{"type":"string"},"type":"array"},"Twap":{"description":"Premium or discount to the time-weighted average price.","properties":{"as_of":{"description":"When this reading was published.","type":["string","null"]},"as_of_basis":{"description":"Where the timestamp came from: the source page's own printed stamp, the newest observed point of its price series, or the sector feed's clock.","enum":["page_stamp","trace_end","feed_generated_at"],"type":"string"},"baseline":{"description":"The time-weighted average price itself.","type":["number","null"]},"model":{"description":"The model and its version, as `name@version`.","type":"string"},"premium_pct":{"description":"Signed percentage of the baseline, not of price.","type":["number","null"]},"risk_level":{"description":"Crypto only: a separate 1-10 model, not the Gravity level.","type":["integer","null"]},"risk_level_model":{"type":["string","null"]},"source_page":{"description":"The published page this was read from.","type":"string"}},"type":["object","null"]}},"securitySchemes":{"DirectApiKey":{"description":"A direct key, for callers not going through the marketplace.","in":"header","name":"X-API-Key","type":"apiKey"},"RapidApiHost":{"in":"header","name":"x-rapidapi-host","type":"apiKey"},"RapidApiKey":{"description":"Your RapidAPI key. Sent with x-rapidapi-host.","in":"header","name":"x-rapidapi-key","type":"apiKey"}}},"info":{"contact":{"email":"cryptoweeklies@gmail.com","name":"CryptoWeeklies","url":"https://cryptoweeklies.com"},"description":"Quantitative risk readings for crypto and equity assets, as published on cryptoweeklies.com.\n\nNothing here is computed at request time. Every number is read from the same model output the website shows, so the API and the site cannot disagree. Each reading names the model that produced it, the page it came from, and when that page was published.\n\nEvery response carries `as_of`, `model_version` and `disclaimer`. Timestamps are ISO-8601 UTC. Fields are snake_case. A model an asset does not have is an explicit `null`, never an omitted key.\n\nCoverage: 161 assets (32 ai_infrastructure, 19 bitcoin_equities, 85 crypto, 10 quantum, 15 us_stock_market).\n\nv1 is additive-only: new fields may appear, existing fields will not change meaning or disappear. A breaking change becomes /v2.\n\nDescriptive statistics on past price, for educational use only. Not financial, investment, legal or professional advice. Past performance does not guarantee future results. Every value here is published free at cryptoweeklies.com.","termsOfService":"https://cryptoweeklies.com/terms.html","title":"CryptoWeeklies Risk Models","version":"1.0.0"},"openapi":"3.1.0","paths":{"/v1/assets":{"get":{"description":"The roster, with each asset's universes, the models it has and the source page behind each one. A free-plan caller receives the assets it may read plus `total_asset_count`, so the rest of the catalogue is visible without being fetchable.","operationId":"listAssets","responses":{"200":{"content":{"application/json":{"examples":{"example":{"value":{"as_of":"2026-09-05T15:57:00Z","data":{"asset_count":1,"assets":[{"as_of":"2026-09-05T15:57:00Z","asset_class":"CRYPTO","free_tier":true,"models":["dca","gravity","phase","sma_composite","twap"],"name":"Bitcoin","pages":{"Price_TWAP_Gravity_Analysis":"BTC_Price_TWAP_Gravity_Analysis.html"},"symbol":"BTC","universes":["crypto"]}],"free_tier":{"rule":"crypto galaxy Market_Cap_Rank <= 10, recomputed each refresh","symbols":["BTC"]},"tier":"pro","total_asset_count":161,"universes":{"crypto":["BTC"]}},"disclaimer":"Descriptive statistics on past price, for educational use only. Not financial, investment, legal or professional advice. Past performance does not guarantee future results. Every value here is published free at cryptoweeklies.com.","model_version":{"dca_regression":"1","sma_20w_crypto":"1","twap_gravity_crypto":"1"}}}},"schema":{"properties":{"as_of":{"description":"When the newest reading in this response was published.","type":["string","null"]},"data":{"type":"object"},"disclaimer":{"type":"string"},"model_version":{"$ref":"#/components/schemas/ModelVersion"}},"required":["as_of","model_version","disclaimer","data"],"type":"object"}}},"description":"The roster."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid credential. Call the API through its marketplace listing."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The plan does not cover this asset or endpoint."},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"This API is read-only."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The data origin could not be read."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The gateway has no credential source configured."}},"summary":"Every asset the API covers","tags":["Assets"]}},"/v1/assets/{symbol}/history":{"get":{"description":"Oldest first. Page with `limit` and `cursor`; narrow with `from` and `to`. Each row states the basis it was recorded on: `as_published` for a daily row taken from that day's page, `weekly_archive` for a row mined from the weekly record that predates the daily one.","operationId":"getAssetHistory","parameters":[{"description":"Canonical symbol, case-insensitive. See GET /v1/assets.","example":"BTC","in":"path","name":"symbol","required":true,"schema":{"pattern":"^[A-Za-z0-9_.\\-]{1,20}$","type":"string"}},{"description":"Rows per page. Free plan caps at 90; paid at 1000.","in":"query","name":"limit","required":false,"schema":{"default":365,"maximum":1000,"minimum":1,"type":"integer"}},{"description":"Return rows after this date, exclusive. Use `next_cursor` from the previous page.","in":"query","name":"cursor","required":false,"schema":{"format":"date","type":"string"}},{"in":"query","name":"from","required":false,"schema":{"format":"date","type":"string"}},{"in":"query","name":"to","required":false,"schema":{"format":"date","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"example":{"value":{"as_of":"2026-09-05T15:57:00Z","data":{"cadence":"daily from launch; weekly_archive rows before it","from":"2024-06-18","limit":2,"max_limit":1000,"next_cursor":"2024-06-25","row_count":2,"rows":[{"basis":"weekly_archive","date":"2024-06-18","dca_band":"0.5-0.6","dca_premium_pct":null,"dca_risk":0.55,"gravity":null,"phase_completion_pct":null,"price":65376.93,"sma_composite":null,"twap_premium_pct":253.0,"twap_risk_level":6},{"basis":"weekly_archive","date":"2024-06-25","dca_band":"0.4-0.5","dca_premium_pct":null,"dca_risk":0.45,"gravity":null,"phase_completion_pct":null,"price":61184.07,"sma_composite":null,"twap_premium_pct":241.4,"twap_risk_level":6}],"symbol":"BTC","through":"2026-09-05","total_row_count":125},"disclaimer":"Descriptive statistics on past price, for educational use only. Not financial, investment, legal or professional advice. Past performance does not guarantee future results. Every value here is published free at cryptoweeklies.com.","model_version":{"dca_regression":"1","sma_20w_crypto":"1","twap_gravity_crypto":"1"}}}},"schema":{"properties":{"as_of":{"description":"When the newest reading in this response was published.","type":["string","null"]},"data":{"properties":{"cadence":{"type":"string"},"from":{"type":["string","null"]},"limit":{"type":"integer"},"max_limit":{"type":"integer"},"next_cursor":{"description":"Null on the last page.","type":["string","null"]},"row_count":{"type":"integer"},"rows":{"items":{"$ref":"#/components/schemas/HistoryRow"},"type":"array"},"symbol":{"type":"string"},"through":{"type":["string","null"]},"total_row_count":{"type":"integer"}},"type":"object"},"disclaimer":{"type":"string"},"model_version":{"$ref":"#/components/schemas/ModelVersion"}},"required":["as_of","model_version","disclaimer","data"],"type":"object"}}},"description":"A page of rows."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A parameter is malformed."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid credential. Call the API through its marketplace listing."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The plan does not cover this asset or endpoint."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No asset by that symbol."},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"This API is read-only."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The data origin could not be read."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The gateway has no credential source configured."}},"summary":"Dated readings for one asset","tags":["Assets"]}},"/v1/assets/{symbol}/risk":{"get":{"operationId":"getAssetRisk","parameters":[{"description":"Canonical symbol, case-insensitive. See GET /v1/assets.","example":"BTC","in":"path","name":"symbol","required":true,"schema":{"pattern":"^[A-Za-z0-9_.\\-]{1,20}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"example":{"value":{"as_of":"2026-09-05T15:57:00Z","data":{"as_of":"2026-09-05T15:57:00Z","asset_class":"CRYPTO","dca":{"as_of":"2026-09-05","as_of_basis":"trace_end","band":"0.3-0.4","ceiling":188256.47,"fair_value":76564.3,"floor":43056.64,"model":"dca_regression@1","premium_pct":4.22,"premium_source":"printed","price":79798.52,"reading_date":"2026-09-05","risk":0.35,"source_page":"BTC_lin_reg_price_with_risk.html"},"free_tier":true,"gravity":{"as_of":"2026-09-05T15:57:00Z","as_of_basis":"page_stamp","model":"twap_gravity_crypto@1","risk_level":3,"score":22.6,"source_page":"BTC_Price_TWAP_Gravity_Analysis.html","verdict":"historically an accumulation zone, well below past tops"},"market_cap_rank":1,"market_context":{"fear_greed":{"as_of":"2026-09-05","as_of_basis":"trace_end","label":"greed","label_source":"site_band_table","model":"fear_greed_crypto@1","provider":"alternative.me","scope":"market","sma_30":53,"value":73},"peak_valley":{"as_of":"2026-09-05T15:53:00Z","as_of_basis":"page_stamp","model":"peak_valley_crypto@1","scope":"market","score":40.1,"series":"leading_btc_eth","zone":"Moderate Zone"},"universe":"crypto"},"name":"Bitcoin","phase":{"as_of":"2026-09-07","as_of_basis":"trace_end","completion_pct":51.9,"fair_value":null,"label":"Bull Phase Expansion","max_euphoria_target":172747.36,"model":"polynomial_phase_crypto@1","source_page":"BTC_Polynomial_Phase_Detector.html"},"price":{"currency":"USD","source_page":"BTC_Price_TWAP_Gravity_Analysis.html","value":79798.52},"sma_composite":{"as_of":"2026-09-05T15:54:00Z","as_of_basis":"page_stamp","band":"0.5-0.6","model":"sma_20w_crypto@1","page_value":0.51,"score":51.0,"source_page":"btc-usd_price_with_risk.html"},"stale_models":[],"symbol":"BTC","twap":{"as_of":"2026-09-05T15:57:00Z","as_of_basis":"page_stamp","baseline":29427.42,"model":"twap_gravity_crypto@1","premium_pct":171.17,"risk_level":7,"risk_level_model":"twap_risk_level_crypto@1","source_page":"BTC_Price_TWAP_Gravity_Analysis.html"},"universes":["crypto"]},"disclaimer":"Descriptive statistics on past price, for educational use only. Not financial, investment, legal or professional advice. Past performance does not guarantee future results. Every value here is published free at cryptoweeklies.com.","model_version":{"dca_regression":"1","sma_20w_crypto":"1","twap_gravity_crypto":"1"}}}},"schema":{"properties":{"as_of":{"description":"When the newest reading in this response was published.","type":["string","null"]},"data":{"$ref":"#/components/schemas/AssetRisk"},"disclaimer":{"type":"string"},"model_version":{"$ref":"#/components/schemas/ModelVersion"}},"required":["as_of","model_version","disclaimer","data"],"type":"object"}}},"description":"Current readings."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The symbol is not a valid shape."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid credential. Call the API through its marketplace listing."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The plan does not cover this asset or endpoint."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No asset by that symbol."},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"This API is read-only."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The data origin could not be read."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The gateway has no credential source configured."}},"summary":"Current readings for one asset","tags":["Assets"]}},"/v1/bulk/risk":{"get":{"description":"Paid plans only. Up to 25 symbols per request. Symbols the API does not cover are named in `missing` rather than dropped.","operationId":"getBulkRisk","parameters":[{"description":"Comma-separated, up to 25.","example":"BTC,ETH,SOL","in":"query","name":"symbols","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"example":{"value":{"as_of":"2026-09-05T15:57:00Z","data":{"assets":{"BTC":{"as_of":"2026-09-05T15:57:00Z","asset_class":"CRYPTO","dca":{"as_of":"2026-09-05","as_of_basis":"trace_end","band":"0.3-0.4","ceiling":188256.47,"fair_value":76564.3,"floor":43056.64,"model":"dca_regression@1","premium_pct":4.22,"premium_source":"printed","price":79798.52,"reading_date":"2026-09-05","risk":0.35,"source_page":"BTC_lin_reg_price_with_risk.html"},"free_tier":true,"gravity":{"as_of":"2026-09-05T15:57:00Z","as_of_basis":"page_stamp","model":"twap_gravity_crypto@1","risk_level":3,"score":22.6,"source_page":"BTC_Price_TWAP_Gravity_Analysis.html","verdict":"historically an accumulation zone, well below past tops"},"market_cap_rank":1,"market_context":{"fear_greed":{"as_of":"2026-09-05","as_of_basis":"trace_end","label":"greed","label_source":"site_band_table","model":"fear_greed_crypto@1","provider":"alternative.me","scope":"market","sma_30":53,"value":73},"peak_valley":{"as_of":"2026-09-05T15:53:00Z","as_of_basis":"page_stamp","model":"peak_valley_crypto@1","scope":"market","score":40.1,"series":"leading_btc_eth","zone":"Moderate Zone"},"universe":"crypto"},"name":"Bitcoin","phase":{"as_of":"2026-09-07","as_of_basis":"trace_end","completion_pct":51.9,"fair_value":null,"label":"Bull Phase Expansion","max_euphoria_target":172747.36,"model":"polynomial_phase_crypto@1","source_page":"BTC_Polynomial_Phase_Detector.html"},"price":{"currency":"USD","source_page":"BTC_Price_TWAP_Gravity_Analysis.html","value":79798.52},"sma_composite":{"as_of":"2026-09-05T15:54:00Z","as_of_basis":"page_stamp","band":"0.5-0.6","model":"sma_20w_crypto@1","page_value":0.51,"score":51.0,"source_page":"btc-usd_price_with_risk.html"},"stale_models":[],"symbol":"BTC","twap":{"as_of":"2026-09-05T15:57:00Z","as_of_basis":"page_stamp","baseline":29427.42,"model":"twap_gravity_crypto@1","premium_pct":171.17,"risk_level":7,"risk_level_model":"twap_risk_level_crypto@1","source_page":"BTC_Price_TWAP_Gravity_Analysis.html"},"universes":["crypto"]}},"count":1,"missing":["NOSUCH"],"requested":["BTC","NOSUCH"]},"disclaimer":"Descriptive statistics on past price, for educational use only. Not financial, investment, legal or professional advice. Past performance does not guarantee future results. Every value here is published free at cryptoweeklies.com.","model_version":{"dca_regression":"1","sma_20w_crypto":"1","twap_gravity_crypto":"1"}}}},"schema":{"properties":{"as_of":{"description":"When the newest reading in this response was published.","type":["string","null"]},"data":{"type":"object"},"disclaimer":{"type":"string"},"model_version":{"$ref":"#/components/schemas/ModelVersion"}},"required":["as_of","model_version","disclaimer","data"],"type":"object"}}},"description":"Readings, keyed by symbol."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No symbols, or too many."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid credential. Call the API through its marketplace listing."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The plan does not cover this asset or endpoint."},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"This API is read-only."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The data origin could not be read."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The gateway has no credential source configured."}},"summary":"Current readings for many assets","tags":["Assets"]}},"/v1/health":{"get":{"operationId":"getHealth","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"api_version":{"type":"string"},"disclaimer":{"type":"string"},"render_version":{"type":"string"},"schema":{"type":"integer"},"status":{"type":"string"}},"type":"object"}}},"description":"The gateway is up."}},"security":[],"summary":"Liveness, without a key","tags":["Service"]}},"/v1/market/{universe}/summary":{"get":{"operationId":"getUniverseSummary","parameters":[{"example":"crypto","in":"path","name":"universe","required":true,"schema":{"enum":["ai_infrastructure","bitcoin_equities","crypto","quantum","us_stock_market"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"example":{"value":{"as_of":"2026-09-05T15:57:00Z","data":{"asset_count":85,"barometer":{"fear_greed":{"label":"greed","provider":"alternative.me","value":73},"peak_valley":{"scope":"market","score":40.1,"zone":"Moderate Zone"}},"gravity":{"bands":{"accumulation":80,"cycle_top":0,"late_cycle":1,"mid_cycle":2},"highest":[{"score":63.3,"symbol":"TRX"}],"lowest":[{"score":0.0,"symbol":"FIL"}],"mean":6.1,"median":2.5},"sma_composite":{"median":43.0},"twap_premium_pct":{"median":-72.34,"share_above_twap":0.133},"universe":"crypto"},"disclaimer":"Descriptive statistics on past price, for educational use only. Not financial, investment, legal or professional advice. Past performance does not guarantee future results. Every value here is published free at cryptoweeklies.com.","model_version":{"dca_regression":"1","sma_20w_crypto":"1","twap_gravity_crypto":"1"}}}},"schema":{"properties":{"as_of":{"description":"When the newest reading in this response was published.","type":["string","null"]},"data":{"type":"object"},"disclaimer":{"type":"string"},"model_version":{"$ref":"#/components/schemas/ModelVersion"}},"required":["as_of","model_version","disclaimer","data"],"type":"object"}}},"description":"The universe's summary."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The universe name is not a valid shape."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid credential. Call the API through its marketplace listing."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The plan does not cover this asset or endpoint."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No universe by that name."},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"This API is read-only."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The data origin could not be read."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The gateway has no credential source configured."}},"summary":"The barometer for one universe","tags":["Market"]}},"/v1/openapi.json":{"get":{"operationId":"getOpenApi","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"The OpenAPI document."}},"security":[],"summary":"This document","tags":["Service"]}},"/v1/signals/dca/{symbol}":{"get":{"description":"Returns `multiplier: null` by design. This model publishes a risk band; it has no position-sizing rule, and inventing one would be advice.","operationId":"getDcaSignal","parameters":[{"description":"Canonical symbol, case-insensitive. See GET /v1/assets.","example":"BTC","in":"path","name":"symbol","required":true,"schema":{"pattern":"^[A-Za-z0-9_.\\-]{1,20}$","type":"string"}}],"responses":{"200":{"content":{"application/json":{"examples":{"example":{"value":{"as_of":"2026-09-05T15:57:00Z","data":{"as_of":"2026-09-05","free_tier":true,"model":"dca_regression@1","multiplier":null,"multiplier_note":"This model publishes a risk band and no position-sizing rule; sizing is the reader's decision.","reading_date":"2026-09-05","source_page":"BTC_lin_reg_price_with_risk.html","state":{"band":"0.3-0.4","band_label":"Risk Level 0.3-0.4","ceiling":188256.47,"fair_value":76564.3,"floor":43056.64,"premium_pct":4.22,"premium_source":"printed","price":79798.52,"risk":0.35},"symbol":"BTC"},"disclaimer":"Descriptive statistics on past price, for educational use only. Not financial, investment, legal or professional advice. Past performance does not guarantee future results. Every value here is published free at cryptoweeklies.com.","model_version":{"dca_regression":"1","sma_20w_crypto":"1","twap_gravity_crypto":"1"}}}},"schema":{"properties":{"as_of":{"description":"When the newest reading in this response was published.","type":["string","null"]},"data":{"type":"object"},"disclaimer":{"type":"string"},"model_version":{"$ref":"#/components/schemas/ModelVersion"}},"required":["as_of","model_version","disclaimer","data"],"type":"object"}}},"description":"The regression state."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The symbol is not a valid shape."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"No valid credential. Call the API through its marketplace listing."},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The plan does not cover this asset or endpoint."},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"That asset has no regression model."},"405":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"This API is read-only."},"502":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The data origin could not be read."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The gateway has no credential source configured."}},"summary":"DCA regression state for one asset","tags":["Signals"]}}},"security":[{"RapidApiHost":[],"RapidApiKey":[]},{"DirectApiKey":[]}],"servers":[{"description":"Direct","url":"https://api.cryptoweeklies.com"}],"tags":[{"description":"Per-asset readings.","name":"Assets"},{"description":"Per-universe barometers.","name":"Market"},{"description":"Model state for one asset.","name":"Signals"},{"description":"Health and contract.","name":"Service"}]}
