Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: Crypto Data Algo Brain API
description: 'Real-time crypto market intelligence API. Built for AI agents: gasless USDC payments via x402 protocol, one-call onboarding, and 180+ endpoints for prices, derivatives, funding, and sentiment.'
version: '2026-10-28'
servers:
- url: https://cryptodataapi.com
tags:
- name: AlgoBrain
paths:
/api/v1/algobrain/search:
get:
tags:
- AlgoBrain
summary: Search Algobrain
description: 'Search the AlgoBrain strategy wiki (~5k pages: strategies, the Hyperliquid
signal baskets, concepts, methodology).
**Ranking** (2026-10-10): a page NAMED by the query comes first (its title, an acronym in
its title, or an alias), then pages with the whole query as a phrase in their title or
aliases, then every term in the title/aliases, then every term anywhere, then any term.
Within each tier, concept and strategy pages rank above the ~2.5k generated per-coin
pages, then by BM25. Each result says which tier it came from in ``match``
(``exact_title``, ``title_phrase``, ``title_terms``, ``all_terms``, ``any_term``); its
``score`` (BM25) orders results only within a tier.
Each result carries ``path``, ``title``, ``type``, ``tags``, a ``snippet``
around the match, a relevance ``score`` (higher is better; null when ``q`` is
empty) and ``read`` — the ``/algobrain/page`` URL for the full markdown. Filters
without ``q`` list matching pages by title. A bare call (no ``q``, no filter) lists
the newest pages by their ``updated`` date, so an agent can discover real paths
before it has a query. All tiers. Content is CC BY 4.0.
Strategy pages also carry ``strategy``: the authors'' frontmatter —
``backtest_status``, ``horizon``, ``strategy_type``, ``complexity``,
``crowding_risk``, ``markets``, ``edge_source`` and the ESTIMATES
``expected_sharpe`` / ``expected_max_drawdown`` / ``breakeven_cost_bps``, labelled
``expected_sharpe_source: "author_estimate"``. They are literature expectations, not
results measured on any venue, so results are never ranked by them; filter on
``backtest_status`` (e.g. ``cost-corrected``, ``walk-forward-validated``, ``live``)
to find the pages with the most evidence behind them. ``strategy`` is null on
non-strategy pages. Each strategy filter is an any-of match (``horizon=swing``
also finds ``swing|position`` pages).
``strategy.runnable`` / ``strategy.gate_counts`` summarise the page''s **gates** — each
condition the strategy checks mapped to one endpoint and one response field, or marked
partial (a human judgement remains) or not runnable (we serve nothing that measures it).
``runnable=all`` finds pages an agent can run end to end. The gates themselves are on
``/algobrain/page``. An unrecognised query parameter is a 400.'
operationId: search_algobrain_api_v1_algobrain_search_get
security:
- APIKeyHeader: []
parameters:
- name: q
in: query
required: false
schema:
type: string
maxLength: 200
description: Free-text query, e.g. `atr trailing stop trend following`. Omit it and every filter to list the newest pages
default: ''
title: Q
description: Free-text query, e.g. `atr trailing stop trend following`. Omit it and every filter to list the newest pages
- name: type
in: query
required: false
schema:
description: 'Page type filter: strategy, concept, entity, market, …'
title: Type
type:
- string
- 'null'
description: 'Page type filter: strategy, concept, entity, market, …'
- name: tag
in: query
required: false
schema:
description: Exact tag filter, e.g. mean-reversion
title: Tag
type:
- string
- 'null'
description: Exact tag filter, e.g. mean-reversion
- name: category
in: query
required: false
schema:
description: Top-level wiki folder, e.g. strategies, strategy-development, concepts
title: Category
type:
- string
- 'null'
description: Top-level wiki folder, e.g. strategies, strategy-development, concepts
- name: backtest_status
in: query
required: false
schema:
description: 'Strategy pages by the authors'' evidence label: untested, naive-backtested, cost-corrected, walk-forward-validated, paper-traded, pilot, live, paused, retired'
title: Backtest Status
type:
- string
- 'null'
description: 'Strategy pages by the authors'' evidence label: untested, naive-backtested, cost-corrected, walk-forward-validated, paper-traded, pilot, live, paused, retired'
- name: horizon
in: query
required: false
schema:
description: 'Holding style: scalp, intraday, swing, position, long-term. NOT a bar interval (the wiki has no 1h/4h field)'
title: Horizon
type:
- string
- 'null'
description: 'Holding style: scalp, intraday, swing, position, long-term. NOT a bar interval (the wiki has no 1h/4h field)'
- name: strategy_type
in: query
required: false
schema:
description: quantitative, hybrid, algorithmic, technical, fundamental, …
title: Strategy Type
type:
- string
- 'null'
description: quantitative, hybrid, algorithmic, technical, fundamental, …
- name: complexity
in: query
required: false
schema:
description: beginner, intermediate, advanced
title: Complexity
type:
- string
- 'null'
description: beginner, intermediate, advanced
- name: crowding_risk
in: query
required: false
schema:
description: low, medium, high
title: Crowding Risk
type:
- string
- 'null'
description: low, medium, high
- name: market
in: query
required: false
schema:
description: Market the strategy is written for, e.g. crypto, options
title: Market
type:
- string
- 'null'
description: Market the strategy is written for, e.g. crypto, options
- name: runnable
in: query
required: false
schema:
description: 'Strategy pages by gate coverage: `all` (every condition maps to an endpoint + field), `partial`, `none`'
title: Runnable
type:
- string
- 'null'
description: 'Strategy pages by gate coverage: `all` (every condition maps to an endpoint + field), `partial`, `none`'
- name: limit
in: query
required: false
schema:
type: integer
maximum: 50
minimum: 1
default: 10
title: Limit
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AlgoBrainSearchResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/algobrain/page:
get:
tags:
- AlgoBrain
summary: Read Algobrain Page
description: 'One AlgoBrain page as markdown (frontmatter parsed into fields), by the
``path`` a search result gave you. ``wiki/``, ``.md`` and the folder may be left
off (``atr-trailing-stop``); the response''s ``path`` is always the stored one.
404 ``page_not_found`` for an unknown or ambiguous path, with ``suggestions`` (up
to 5 real paths: a search over the words in yours, else the newest pages) and
``search_url`` (that search). All tiers. Content is CC BY 4.0.
A strategy page also carries ``strategy`` (its frontmatter block, as on search
results) and ``gates``: every condition the strategy checks — ``role`` (universe,
entry, filter, exit, stop, sizing) and ``rule`` — mapped to ONE ``endpoint`` and ONE
response ``field``, with ``runnable`` true, ``partial`` (the endpoint measures part of
it; ``note`` says what a human still judges) or false (nothing we serve measures it;
``note`` says what is missing). ``input: position`` marks a condition on your own
position (entry fill, time in trade); ``input: derived`` one built from the gates named in
``inputs`` (a composite score, a construction rule). ``replay`` / ``replay_field`` name a history
endpoint that reproduces the field for past dates. ``{coin}``-style placeholders are
yours to fill. ``gates`` is null until a page has been mapped.'
operationId: read_algobrain_page_api_v1_algobrain_page_get
security:
- APIKeyHeader: []
parameters:
- name: path
in: query
required: true
schema:
type: string
maxLength: 300
description: 'A result''s `path`, e.g. wiki/strategies/atr-trailing-stop.md. The `wiki/` prefix, the `.md` suffix and the folder are optional: `atr-trailing-stop` works'
title: Path
description: 'A result''s `path`, e.g. wiki/strategies/atr-trailing-stop.md. The `wiki/` prefix, the `.md` suffix and the folder are optional: `atr-trailing-stop` works'
example: wiki/strategies/atr-trailing-stop.md
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AlgoBrainPageResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/algobrain/stats:
get:
tags:
- AlgoBrain
summary: Algobrain Stats
description: 'Size and freshness of the hosted AlgoBrain index: page counts by category
and type, ``built_at`` (unix s) and the wiki ``source_commit`` it was built
from. All tiers.'
operationId: algobrain_stats_api_v1_algobrain_stats_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AlgoBrainStatsResponse'
security:
- APIKeyHeader: []
components:
schemas:
AlgoBrainSearchResponse:
properties:
query:
type: string
title: Query
count:
type: integer
title: Count
results:
items:
additionalProperties: true
type: object
type: array
title: Results
license:
type: string
title: License
source:
type: string
title: Source
type: object
required:
- query
- count
- results
- license
- source
title: AlgoBrainSearchResponse
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
AlgoBrainStatsResponse:
properties:
total_pages:
type: integer
title: Total Pages
built_at:
title: Built At
type:
- integer
- 'null'
source_commit:
title: Source Commit
type:
- string
- 'null'
by_category:
additionalProperties:
type: integer
type: object
title: By Category
by_type:
additionalProperties:
type: integer
type: object
title: By Type
by_backtest_status:
additionalProperties:
type: integer
type: object
title: By Backtest Status
default: {}
by_runnable:
additionalProperties:
type: integer
type: object
title: By Runnable
default: {}
license:
type: string
title: License
source:
type: string
title: Source
type: object
required:
- total_pages
- by_category
- by_type
- license
- source
title: AlgoBrainStatsResponse
AlgoBrainPageResponse:
properties:
path:
type: string
title: Path
title:
type: string
title: Title
type:
title: Type
type:
- string
- 'null'
status:
title: Status
type:
- string
- 'null'
category:
title: Category
type:
- string
- 'null'
tags:
items:
type: string
type: array
title: Tags
default: []
updated:
title: Updated
type:
- string
- 'null'
markdown:
type: string
title: Markdown
url:
type: string
title: Url
strategy:
title: Strategy
additionalProperties: true
type:
- object
- 'null'
gates:
title: Gates
items:
additionalProperties: true
type: object
type:
- array
- 'null'
license:
type: string
title: License
type: object
required:
- path
- title
- markdown
- url
- license
title: AlgoBrainPageResponse
securitySchemes:
APIKeyHeader:
type: apiKey
in: header
name: X-API-Key