AShare API Version: 0.2.0-draft Source: /app/src/data/openapi-3.1.yaml Human Documentation (zh) ## 快速开始 先理解 Axiora 的数据边界、鉴权方式和首个请求,再进入各个数据域文档。 Axiora 提供面向 A 股市场的统一数据 API。文档站不只是把 OpenAPI 渲染出来,而是按接入者真正会经历的流程组织:先理解平台,再确认鉴权、请求约定、返回结构,最后进入具体数据域。 概览 - 所有公开数据接口都位于 `/api/v1` - 同一套文档同时服务产品接入、研究脚本和自动化工作流 - 账户、登录和 API key 管理在站点右上角完成,数据请求走标准 HTTP API 如果你是第一次接入,建议先读完“认证与 API Key”“请求约定”“返回结构与错误”,再进入股票、指数、基金等具体数据文档。这样你看到每个 endpoint 的时候,会知道参数、分页、时间字段和错误码分别意味着什么。 第一个请求 这条接口适合作为连通性和响应结构的第一条请求。它返回平台支持的市场标识,通常也是后续查询里会反复使用的参数来源。 {`curl https://heliumlabz.com/api/v1/markets`} {`const response = await fetch("https://heliumlabz.com/api/v1/markets"); const payload = await response.json(); console.log(payload.data);`} 接下来读什么 - 如果你需要受保护接口,继续看“认证与 API Key” - 如果你需要知道日期、时间、分页和查询参数约定,继续看“请求约定” - 如果你准备直接拉股票、指数或基金数据,进入对应数据域文档 站内保留了一份原始 OpenAPI Reference,它适合快速查 operationId、路径和 schema 名称。真正的接入说明、示例和字段解释,以这套人工维护的文档为主。 ## 认证与 API Key 了解哪些接口是公开的、哪些接口需要 API key,以及如何在站点里完成凭证管理。 Axiora 的站点登录态用于账户管理,真正请求受保护数据接口时使用 API key。也就是说,浏览器里的登录会话和程序里的数据请求凭证是两件不同的事。 认证模型 - `public` 接口可以直接调用,适合健康检查、基础市场枚举和初次连通性验证 - `apiKey` 接口必须携带 `X-API-Key` - API key 在用户中心创建、复制和吊销;明文只展示一次 当你需要创建、吊销或查看 API key 时,需要先登录 Axiora 站点。登录站点本身不会替程序自动附带 key;程序侧仍然需要显式传递 `X-API-Key`。 如何传递 API Key Reference 会告诉你某个接口是否需要 key;这里的重点是调用方式本身。对需要鉴权的接口,统一通过 `X-API-Key` 请求头传递凭证。 {`curl "https://heliumlabz.com/api/v1/markets/CN" \\ -H "X-API-Key: $ASHARE_API_KEY"`} {`const response = await fetch("https://heliumlabz.com/api/v1/markets/CN", { headers: { "X-API-Key": process.env.ASHARE_API_KEY ?? "", }, });`} 账户与密钥管理 1. 在站点右上角登录或注册 2. 进入 `Profile` 3. 在 `API Keys` 标签页创建新 key 4. 立即复制明文 key 并保存到密码管理器或环境变量 5. 程序调用时统一从环境变量读取 API key 适合服务端、脚本、CLI 或受控环境。不要把密钥直接暴露在浏览器端代码或公开仓库里。 ## 请求约定 统一理解路径参数、时间范围、分页和时间粒度,避免每个接口都重新猜一遍。 Axiora 的很多接口共用一套参数习惯,比如 `instrument_id`、`from`、`to`、`date`、`interval`、`page_size`。先理解这些约定,后面看股票、指数、基金接口会轻松很多。 路径参数与查询参数 - 路径参数通常用来表示资源身份,例如 `market`、`instrument_id`、`indicator` - 查询参数通常用来做过滤、时间范围、返回规模控制 - 同一个字段名在多个 endpoint 上语义保持一致,应优先复用同一套调用方式 时间与日期范围 时间类参数主要分两种: - **日期**:适合交易日、财务期、日级范围 - **日期时间**:适合分时、逐笔、技术指标点位等更细粒度的数据 实践上建议: 1. 先从短时间窗口开始调试 2. 再逐步扩大范围 3. 对高频或大规模数据,显式指定 `interval`、`from` 和 `to` {`curl "https://heliumlabz.com/api/v1/equities/000001.SZ/bars?interval=1d&from=2026-01-01&to=2026-03-01" \\ -H "X-API-Key: $ASHARE_API_KEY"`} 分页与结果规模 很多集合接口会在返回体里带 `meta` 和 `links`。这意味着你不应该假设一次请求就能取完所有结果,尤其是在时间序列和列表型接口上。 把 `page_size` 当成吞吐和稳定性之间的平衡旋钮,而不是一味拉大。对长区间拉取,建议使用分页或分段时间窗口,避免一次请求承载过多结果。 ## 返回结构与错误 理解单对象与集合响应的 envelope、常见错误码,以及如何稳定解析 schema。 Axiora 的接口不是“裸数组”式返回,而是围绕 `data`、`meta`、`links` 组织统一 envelope。写客户端时,应先按 envelope 解析,再处理内部字段。 统一响应 envelope 单对象响应通常包含: - `data`:真正的业务对象 - `links`:当前资源或相关链接 集合接口模式 集合响应在 `data` 之外,通常还会多出: - `meta`:分页和结果规模信息 - `links`:翻页或自引用信息 错误响应 OpenAPI 里统一定义了未授权、未找到和参数错误等常见失败返回。客户端至少要做好这几类失败的分支处理。 {`const response = await fetch(url, options); if (!response.ok) { const payload = await response.json(); throw new Error(payload.error?.message ?? "Unknown API error"); } const payload = await response.json();`} 即使同一数据域里的多个接口返回结构类似,也不要把错误体当成成功体解析。先判断 HTTP 状态,再进入业务字段处理。 ## 市场与分类 从市场枚举、交易日到行业分类,先建立基础字典和过滤维度,再进入具体证券查询。 如果你正在构建筛选器、市场选择器、日期校验或分类面板,这一组接口应该最先接入。它们提供的是后续所有查询都会依赖的基础字典。 市场基础信息 交易日历 这类接口适合: - 回测或数据下载前先校验日期是否合法 - 前端日历组件只展示交易日 - 避免在节假日或停市日上做无意义请求 行业与板块分类 {`curl https://heliumlabz.com/api/v1/classifications/sectors \\ -H "X-API-Key: $ASHARE_API_KEY"`} ## 股票数据 股票接口覆盖证券基础信息、行情、K 线、公司资料以及更深层的财务和股东相关数据。 股票是覆盖最完整的数据域。建议把接入分成三层:先接证券主数据,再接行情与 K 线,最后按业务需要接公司资料、财务、股东与资金流等扩展接口。 证券主数据 行情与时间序列 {`curl "https://heliumlabz.com/api/v1/equities/000001.SZ/bars?interval=1d&from=2026-01-01&to=2026-03-01" \\ -H "X-API-Key: $ASHARE_API_KEY"`} 公司与基本面 扩展覆盖 除上面的核心接口外,股票数据域还覆盖: - 逐笔成交:`listEquityTrades` - 技术指标:`listEquityTechnicalIndicators` - 资金流:`listCapitalFlows` - 涨跌停:`listPriceLimits` - 分红与盈利预测:`listDividends`、`listEarningsForecasts` - 管理层、股本、股东、机构持仓:相关 `history` / `shareholders` / `holdings` 接口 - 股票池与成分:`listPoolTypes`、`listPoolConstituents` 如果你的场景是行情页、选股页或回测,通常先接 `listEquities + listEquityQuotes + listEquityBars` 就足够起步。只有在需要公司画像或财务分析时,再逐步引入公司资料和基本面接口。 ## 指数数据 指数接口覆盖指数主数据、实时行情、K 线与技术指标,适合市场概览和策略基准场景。 指数接口更适合作为市场概览、看板、策略基准和技术面分析的数据源。结构上和股票数据保持一致,因此可以复用相同的客户端模式。 指数目录 指数行情 技术指标 {`curl "https://heliumlabz.com/api/v1/indices/000300.SH/technical-indicators/rsi?interval=1d&from=2026-01-01&to=2026-03-01" \\ -H "X-API-Key: $ASHARE_API_KEY"`} ## 基金数据 基金接口用于列出基金主数据、查询单只基金详情,并拉取基金行情数据。 基金数据域目前覆盖主数据和行情两个基础层级。对产品页面、基金列表和价格查询场景,这已经足够构成一套稳定的基础接口。 基金目录 基金行情 {`curl "https://heliumlabz.com/api/v1/funds/161725.SZ/quotes?from=2026-03-01&to=2026-03-31" \\ -H "X-API-Key: $ASHARE_API_KEY"`} Human Documentation (en) ## Getting started Understand Axiora's data surface, auth model, and first request before moving into each data domain. Axiora exposes a unified A-share market-data API surface. This site is organized as product documentation first and raw OpenAPI reference second, so you can understand how to integrate before you start reading endpoint definitions. Overview - All public data routes live under `/api/v1` - The same documentation supports product teams, research scripts, and automated workflows - Account access and API-key management happen in the website shell, while data requests use standard HTTP APIs If you are integrating for the first time, read authentication, request conventions, and response structure first. After that, the domain pages for equities, indices, and funds become much easier to navigate. First request This endpoint is a good first request because it validates connectivity and introduces the standard collection envelope used across the API. {`curl https://heliumlabz.com/api/v1/markets`} {`const response = await fetch("https://heliumlabz.com/api/v1/markets"); const payload = await response.json(); console.log(payload.data);`} What to read next - Continue with authentication if you need protected endpoints - Read request conventions before building reusable clients - Move into equities, indices, or funds once you know the envelope and auth model The site still keeps a raw OpenAPI reference for fast lookup of operation IDs, paths, and schema names. Use the human-written docs as the primary integration guide. ## Authentication and API keys Learn which endpoints are public, which require API keys, and how credentials are managed inside the site. The website session is for account management. Protected API requests use API keys. In practice, that means browser login and programmatic credentials are related, but not the same thing. Auth model - Public endpoints can be called without credentials - Protected endpoints require `X-API-Key` - API keys are created, copied, and revoked from the profile area You need a website account to manage credentials, but your scripts and services still need to attach an explicit API key when they call protected data endpoints. Passing the API key The common pattern is simple: pass the key in the `X-API-Key` header. {`curl "https://heliumlabz.com/api/v1/markets/CN" \\ -H "X-API-Key: $ASHARE_API_KEY"`} {`const response = await fetch("https://heliumlabz.com/api/v1/markets/CN", { headers: { "X-API-Key": process.env.ASHARE_API_KEY ?? "", }, });`} Account and key management 1. Sign in from the top-right account entry 2. Open `Profile` 3. Go to the `API Keys` tab 4. Create a new key and copy the plaintext immediately 5. Store it in a password manager or environment variable API keys are for controlled environments such as servers, scripts, CLIs, or private automation. Do not ship them in public browser-side bundles. ## Request conventions Understand path params, time ranges, intervals, and pagination before reading individual endpoints. Many Axiora endpoints share a common parameter vocabulary: `instrument_id`, `from`, `to`, `date`, `interval`, and `page_size`. Learn that vocabulary once and the rest of the API becomes much more predictable. Path vs query parameters - Path parameters identify a resource such as `market`, `instrument_id`, or `indicator` - Query parameters filter the result set, constrain time windows, or control size - Reused parameter names keep the same meaning across endpoints Time and date ranges Time parameters are usually one of two forms: - **Date** for trading days, reporting periods, and day-level windows - **Datetime** for intraday points, trades, and more granular market data Recommended practice: 1. Start with a short range while integrating 2. Expand the window once parsing works 3. Specify `interval`, `from`, and `to` explicitly for larger pulls {`curl "https://heliumlabz.com/api/v1/equities/000001.SZ/bars?interval=1d&from=2026-01-01&to=2026-03-01" \\ -H "X-API-Key: $ASHARE_API_KEY"`} Pagination and result size Collection endpoints commonly include `meta` and `links`, which means you should not assume a single request always returns the full result set. Treat `page_size` as a stability and throughput control rather than maximizing it blindly. For long time ranges, use pagination or split the query window into smaller chunks. ## Responses and errors Learn the common envelope for single objects and collections, plus the error shape used across the API. Axiora does not return bare arrays as the primary response shape. The API consistently wraps results with `data`, and collection endpoints add `meta` and `links`. Shared response envelope Single-resource responses typically contain: - `data` for the business object itself - `links` for self or related navigation Collection pattern Collection responses usually add: - `meta` for paging and size information - `links` for navigation or self references Error responses Unauthorized, not found, and invalid argument responses are modeled explicitly in the OpenAPI contract. Clients should branch on these instead of treating all non-200 responses generically. {`const response = await fetch(url, options); if (!response.ok) { const payload = await response.json(); throw new Error(payload.error?.message ?? "Unknown API error"); } const payload = await response.json();`} Even when two endpoints live in the same domain and look similar, handle the HTTP status first. Only parse business fields after the response has been confirmed as successful. ## Markets and classifications Build your market dictionary, trading calendar, and classification filters before querying instruments. These endpoints provide the dictionaries and filter dimensions that the rest of the platform depends on. They are usually the first supporting APIs you integrate before building instrument search or market-aware UX. Market basics Trading calendar Typical uses: - validate a requested date before querying market data - power trading-day pickers in UI - avoid calling time-series endpoints on closed-market dates Sector and industry classifications {`curl https://heliumlabz.com/api/v1/classifications/sectors \\ -H "X-API-Key: $ASHARE_API_KEY"`} ## Equities Equity endpoints cover instrument discovery, quotes, bars, company profiles, and deeper financial or shareholder datasets. Equities are the richest domain in the current API. The most practical way to integrate is to start with the instrument directory and price endpoints, then layer in company and fundamental data only when your product actually needs them. Instrument directory Quotes and bars {`curl "https://heliumlabz.com/api/v1/equities/000001.SZ/bars?interval=1d&from=2026-01-01&to=2026-03-01" \\ -H "X-API-Key: $ASHARE_API_KEY"`} Company and fundamentals Extended coverage The equity domain also includes: - trades via `listEquityTrades` - technical indicators via `listEquityTechnicalIndicators` - capital flow via `listCapitalFlows` - price limits via `listPriceLimits` - dividends and earnings forecasts - management history, share capital history, shareholder counts, and institutional holdings - pool types and pool constituents For market views, watchlists, or backtests, `listEquities + listEquityQuotes + listEquityBars` are usually enough to start. Add profile and fundamental endpoints only when you need richer company context. ## Indices Index endpoints cover index discovery, market data, bars, and technical indicators for benchmark-oriented workflows. Index endpoints are well suited for market overview pages, benchmark series, and technical analysis workflows. The response shape intentionally mirrors the equity domain, so your client code can reuse most of the same parsing logic. Index directory Index market data Technical indicators {`curl "https://heliumlabz.com/api/v1/indices/000300.SH/technical-indicators/rsi?interval=1d&from=2026-01-01&to=2026-03-01" \\ -H "X-API-Key: $ASHARE_API_KEY"`} ## Funds Fund endpoints provide the core directory and quote-level data needed for list, detail, and pricing use cases. The fund domain currently covers the two most common building blocks: fund master data and quote-level market data. That is usually enough for catalog, detail, and price-oriented product surfaces. Fund directory Fund quotes {`curl "https://heliumlabz.com/api/v1/funds/161725.SZ/quotes?from=2026-03-01&to=2026-03-31" \\ -H "X-API-Key: $ASHARE_API_KEY"`} Endpoint Reference ## System ### GET /api/v1/system/health Summary: Liveness probe Operation ID: getSystemHealth Auth: Public Parameters: none Responses: - 200: Service is alive (StatusResponse) ### GET /api/v1/system/readiness Summary: Readiness probe Operation ID: getSystemReadiness Auth: Public Parameters: none Responses: - 200: Service is ready (StatusResponse) ### GET /api/v1/system/version Summary: Service version metadata Operation ID: getSystemVersion Auth: Public Parameters: none Responses: - 200: Version metadata (VersionResponse) ## Markets ### GET /api/v1/markets Summary: List supported markets Operation ID: listMarkets Auth: API Key Parameters: none Responses: - 200: Market collection (MarketCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/markets/{market} Summary: Get one market Operation ID: getMarket Auth: API Key Parameters: - market [path] required: MarketId Responses: - 200: Market resource (MarketResponse) - 401: Unauthorized (ErrorResponse) - 404: Resource not found (ErrorResponse) ### GET /api/v1/markets/{market}/trading-days Summary: List trading days for one market Operation ID: listTradingDays Auth: API Key Parameters: - market [path] required: MarketId - from [query]: string (date) - to [query]: string (date) - page[size] [query]: integer Responses: - 200: Trading day collection (TradingDayCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) - 404: Resource not found (ErrorResponse) ## Classifications ### GET /api/v1/classifications/primary-industries Summary: List primary industries Operation ID: listPrimaryIndustries Auth: API Key Parameters: - page[size] [query]: integer Responses: - 200: Primary industry collection (ClassificationCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/classifications/sectors Summary: List sector classifications Operation ID: listSectors Auth: API Key Parameters: - page[size] [query]: integer Responses: - 200: Sector collection (ClassificationCollectionResponse) - 401: Unauthorized (ErrorResponse) ## Equities ### GET /api/v1/equities Summary: List equities Operation ID: listEquities Auth: API Key Parameters: - market [query]: MarketId - board [query]: BoardId - code [query]: string - name [query]: string - page[size] [query]: integer Responses: - 200: Equity collection (InstrumentCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id} Summary: Get one equity Operation ID: getEquity Auth: API Key Parameters: - instrument_id [path] required: string Responses: - 200: Equity resource (InstrumentResponse) - 401: Unauthorized (ErrorResponse) - 404: Resource not found (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/bars Summary: List equity bars Operation ID: listEquityBars Auth: API Key Parameters: - instrument_id [path] required: string - interval [query] required: IntervalId - adjustment [query]: AdjustmentId - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Bar collection (BarCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/business-scope Summary: List business scope entries Operation ID: listBusinessScope Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Business scope collection (TextEntryCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/capital-flows Summary: List capital flows Operation ID: listCapitalFlows Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Capital flow collection (CapitalFlowCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/company-profile Summary: Get company profile Operation ID: getCompanyProfile Auth: API Key Parameters: - instrument_id [path] required: string Responses: - 200: Company profile resource (CompanyProfileResponse) - 401: Unauthorized (ErrorResponse) - 404: Resource not found (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/dividends Summary: List dividends Operation ID: listDividends Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date) - to [query]: string (date) - page[size] [query]: integer Responses: - 200: Dividend collection (DividendCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/earnings-forecasts Summary: List earnings forecasts Operation ID: listEarningsForecasts Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date) - to [query]: string (date) - page[size] [query]: integer Responses: - 200: Earnings forecast collection (EarningsForecastCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/financial-indicators Summary: List financial indicators Operation ID: listFinancialIndicators Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date) - to [query]: string (date) - page[size] [query]: integer Responses: - 200: Financial indicator collection (FinancialIndicatorCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/financial-statements/balance-sheets Summary: List balance sheets Operation ID: listBalanceSheets Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date) - to [query]: string (date) - page[size] [query]: integer Responses: - 200: Balance sheet collection (BalanceSheetCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/financial-statements/cash-flow-statements Summary: List cash flow statements Operation ID: listCashFlowStatements Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Cash flow statement collection (CashFlowStatementCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/financial-statements/income-statements Summary: List income statements Operation ID: listIncomeStatements Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Income statement collection (IncomeStatementCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/institutional-holdings Summary: List institutional holdings Operation ID: listInstitutionalHoldings Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Institutional holding collection (InstitutionalHoldingCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/management-history Summary: List management history Operation ID: listManagementHistory Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Management history collection (ManagementHistoryCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/price-limits Summary: List price limits Operation ID: listPriceLimits Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date) - to [query]: string (date) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Price limit collection (PriceLimitCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/quotes Summary: List equity quotes Operation ID: listEquityQuotes Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Quote collection (QuoteCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/sector-memberships Summary: List sector memberships Operation ID: listSectorMemberships Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Sector membership collection (TextEntryCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/share-capital-history Summary: List share capital history Operation ID: listShareCapitalHistory Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date) - to [query]: string (date) - page[size] [query]: integer Responses: - 200: Share capital collection (ShareCapitalHistoryCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/shareholders/counts Summary: List shareholder counts Operation ID: listShareholderCounts Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date) - to [query]: string (date) - page[size] [query]: integer Responses: - 200: Shareholder count collection (ShareholderCountCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/shareholders/top Summary: List top shareholders Operation ID: listTopShareholders Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Top shareholder collection (TopShareholderCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/shareholders/top-float Summary: List top float shareholders Operation ID: listTopFloatShareholders Auth: API Key Parameters: - instrument_id [path] required: string - page[size] [query]: integer Responses: - 200: Top float shareholder collection (TopFloatShareholderCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/technical-indicators/{indicator} Summary: List equity technical indicators Operation ID: listEquityTechnicalIndicators Auth: API Key Parameters: - instrument_id [path] required: string - indicator [path] required: IndicatorId - interval [query] required: IntervalId - adjustment [query]: AdjustmentId - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Technical indicator collection (TechnicalIndicatorCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/{instrument_id}/trades Summary: List equity trades Operation ID: listEquityTrades Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Trade collection (TradeCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/pools Summary: List supported pool types Operation ID: listPoolTypes Auth: API Key Parameters: none Responses: - 200: Pool type collection (PoolTypeCollectionResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/equities/pools/{pool_type}/constituents Summary: List pool constituents Operation ID: listPoolConstituents Auth: API Key Parameters: - pool_type [path] required: PoolTypeId - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Pool constituent collection (PoolConstituentCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) - 404: Resource not found (ErrorResponse) ## Indices ### GET /api/v1/indices Summary: List indices Operation ID: listIndices Auth: API Key Parameters: - market [query]: MarketId - code [query]: string - name [query]: string - page[size] [query]: integer Responses: - 200: Index collection (InstrumentCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/indices/{instrument_id} Summary: Get one index Operation ID: getIndex Auth: API Key Parameters: - instrument_id [path] required: string Responses: - 200: Index resource (InstrumentResponse) - 401: Unauthorized (ErrorResponse) - 404: Resource not found (ErrorResponse) ### GET /api/v1/indices/{instrument_id}/bars Summary: List index bars Operation ID: listIndexBars Auth: API Key Parameters: - instrument_id [path] required: string - interval [query] required: IntervalId - adjustment [query]: AdjustmentId - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Bar collection (BarCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/indices/{instrument_id}/quotes Summary: List index quotes Operation ID: listIndexQuotes Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Quote collection (QuoteCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/indices/{instrument_id}/technical-indicators/{indicator} Summary: List index technical indicators Operation ID: listIndexTechnicalIndicators Auth: API Key Parameters: - instrument_id [path] required: string - indicator [path] required: IndicatorId - interval [query] required: IntervalId - adjustment [query]: AdjustmentId - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Technical indicator collection (TechnicalIndicatorCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ## Funds ### GET /api/v1/funds Summary: List funds Operation ID: listFunds Auth: API Key Parameters: - market [query]: MarketId - code [query]: string - name [query]: string - page[size] [query]: integer Responses: - 200: Fund collection (InstrumentCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse) ### GET /api/v1/funds/{instrument_id} Summary: Get one fund Operation ID: getFund Auth: API Key Parameters: - instrument_id [path] required: string Responses: - 200: Fund resource (InstrumentResponse) - 401: Unauthorized (ErrorResponse) - 404: Resource not found (ErrorResponse) ### GET /api/v1/funds/{instrument_id}/quotes Summary: List fund quotes Operation ID: listFundQuotes Auth: API Key Parameters: - instrument_id [path] required: string - from [query]: string (date-time) - to [query]: string (date-time) - date [query]: string (date) - page[size] [query]: integer Responses: - 200: Quote collection (QuoteCollectionResponse) - 400: Invalid request parameters (ErrorResponse) - 401: Unauthorized (ErrorResponse)