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/alphanume-com:alphanume-com-crypto-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
contact:
url: https://alphanume.com
description: 'Point-in-time, survivorship-aware datasets for US equities and options research. Every response is JSON: {"count": N, "data": [...]} (paginated endpoints add has_more and next_cursor). Dates are always YYYY-MM-DD. Access: every dataset requires an Alphanume Pro API key (the Free plan is retired as of September 6, 2026). A 403 error with code PRO_SUBSCRIPTION_REQUIRED or DATE_RANGE_RESTRICTED means the key''s plan does not cover the request -- it does not mean the data is missing. Authentication: send your API key in the X-API-Key header (or Authorization: Bearer). Rate limit: 600 requests/minute. Keys come with a Pro subscription at https://alphanume.com/pricing. The same datasets are available as MCP tools at https://mcp.alphanume.com/mcp.'
title: Alphanume Crypto API
version: 1.1.0
servers:
- url: https://api.alphanume.com
security:
- ApiKeyHeader: []
- BearerKey: []
tags:
- name: Crypto
paths:
/v1/crypto/enforcement:
get:
description: 'US digital-asset enforcement, one normalized tape across the three agencies that
bring it: SEC litigation releases and administrative proceedings, CFTC enforcement
press releases, and DOJ criminal announcements, 2024+. One row per (action,
respondent): what was alleged (multi-category), statutes cited, tokens/assets
involved (real JSON arrays), monetary relief with its stated basis, settled flag
(three-state), listed-issuer linkage where the document itself states one, and a
follow-up chain linking successive actions by the same agency against the same
respondent (complaint -> consent order, indictment -> plea).
The date window filters published_date (structural, the agency''s announcement
date); action_date is extracted from the document with its own precision enum.
One matter can appear once per agency -- nothing links across agencies, by design.
monetary_relief_usd repeats on each respondent row of one action; de-duplicate on
action_key before summing.
Requires an Alphanume Pro API key. A 403 PRO_SUBSCRIPTION_REQUIRED or
DATE_RANGE_RESTRICTED error means the key''s plan does not cover the request --
it does not mean the data is missing.'
operationId: get_crypto_enforcement
parameters:
- description: 'Which agency brought the action: sec, cftc, or doj.'
in: query
name: agency
required: false
schema:
type: string
- description: 'Document kind: litigation-release, administrative-proceeding (SEC only; the PDF orders), or press-release (CFTC/DOJ).'
in: query
name: source_index
required: false
schema:
type: string
- description: 'What the document announces NOW: civil_complaint, administrative_proceeding, settled_order, criminal_indictment, criminal_plea, trial_verdict, other.'
in: query
name: action_type
required: false
schema:
type: string
- description: Case-insensitive substring over the respondent name and its normalized key, e.g. 'bankman'.
in: query
name: respondent
required: false
schema:
type: string
- description: Exact normalized respondent key (lower-cased, suffixes stripped) -- the group-by for 'every action against this party' within one agency.
in: query
name: respondent_key
required: false
schema:
type: string
- description: person or company.
in: query
name: respondent_kind
required: false
schema:
type: string
- description: 'Matches anywhere in the allegation list: fraud, unregistered_offering, unregistered_exchange_or_broker, market_manipulation, aml_bsa, sanctions, misappropriation, other.'
in: query
name: allegation
required: false
schema:
type: string
- description: Matches only the lead allegation (same enum as allegation).
in: query
name: primary_allegation
required: false
schema:
type: string
- description: Case-insensitive substring over the assets list, e.g. 'bitcoin'. Asset strings are unnormalized document literals (Bitcoin/BTC both occur).
in: query
name: asset
required: false
schema:
type: string
- description: 'Minimum monetary_relief_usd. CAUTION: relief repeats on every respondent row of one action -- summing across rows double-counts.'
in: query
name: min_monetary_relief
required: false
schema:
type: string
- description: Maximum monetary_relief_usd.
in: query
name: max_monetary_relief
required: false
schema:
type: string
- description: 1 = a dollar amount was stated, 0 = none stated.
in: query
name: has_monetary_relief
required: false
schema:
type: string
- description: 'Three-state: true (document says settled), false (document says not settled), unknown (document does not say). Never collapse unknown into false.'
in: query
name: settled
required: false
schema:
type: string
- description: 1 = this action follows an earlier action by the same agency against the same respondent.
in: query
name: is_followup
required: false
schema:
type: string
- description: 1 = a later action by the same agency against the same respondent exists.
in: query
name: has_followup
required: false
schema:
type: string
- description: Exact action id, e.g. 'sec-lr:LR-26456', 'cftc:9285-26', 'doj:<uuid>'. One action returns one row per respondent.
in: query
name: action_key
required: false
schema:
type: string
- description: 'Exact served row id: ''<action_key>#<respondent_index>''.'
in: query
name: record_id
required: false
schema:
type: string
- description: 'Precision of the extracted action_date: day, month, quarter, year, unstated.'
in: query
name: action_date_precision
required: false
schema:
type: string
- description: Exact date, YYYY-MM-DD. Cannot be combined with the date range parameters.
in: query
name: date
required: false
schema:
type: string
- description: Start of date range, inclusive (YYYY-MM-DD).
in: query
name: date_gte
required: false
schema:
type: string
- description: End of date range, inclusive (YYYY-MM-DD).
in: query
name: date_lte
required: false
schema:
type: string
- description: Start of date range, exclusive (YYYY-MM-DD).
in: query
name: date_gt
required: false
schema:
type: string
- description: End of date range, exclusive (YYYY-MM-DD).
in: query
name: date_lt
required: false
schema:
type: string
- description: YYYY-MM-DD, on last_updated -- rows touched by the follow-up sweep since this date.
in: query
name: updated_since
required: false
schema:
type: string
- description: 'Pagination: ''published_date'' from next_cursor (send all three cursor params together).'
in: query
name: cursor_published_date
required: false
schema:
type: string
- description: 'Pagination: ''action_key'' from next_cursor.'
in: query
name: cursor_action_key
required: false
schema:
type: string
- description: 'Pagination: ''respondent_index'' from next_cursor.'
in: query
name: cursor_respondent_index
required: false
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PaginatedEnvelope'
description: Matching rows.
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'429':
$ref: '#/components/responses/RateLimited'
summary: US digital-asset enforcement, one normalized tape across the three agencies that
tags:
- Crypto
components:
responses:
Forbidden:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: 'PRO_SUBSCRIPTION_REQUIRED: the key''s plan does not include API access; every endpoint requires an active Pro subscription. DATE_RANGE_RESTRICTED: a legacy free-tier key asked for dates outside its window. In both cases the data is not missing.'
Unauthorized:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Missing or unrecognized API key.
BadRequest:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Invalid or conflicting query parameters.
RateLimited:
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
description: Rate limit exceeded (600/min); the body carries retry_after_seconds.
schemas:
PaginatedEnvelope:
properties:
count:
type: integer
data:
items:
type: object
type: array
has_more:
type: boolean
next_cursor:
description: 'Keyset cursor: pass its fields back as the cursor_* query parameters to fetch the next page.'
type:
- object
- 'null'
required:
- count
- data
- has_more
- next_cursor
type: object
Error:
additionalProperties: true
properties:
error: {}
type: object
securitySchemes:
ApiKeyHeader:
in: header
name: X-API-Key
type: apiKey
BearerKey:
scheme: bearer
type: http
externalDocs:
description: MCP server exposing these datasets as tools (OAuth or X-API-Key).
url: https://mcp.alphanume.com/mcp