S SPARKDATA

API DOCUMENTATION & ONLINE EXPLORER

Give your agenta direct line to the market.

This reference contains only customer-facing market data, instrument, agent, and LLM endpoints. Read parameter and response fields, or run an example without leaving this page.

LLM · OpenAI-compatible API

base_url: https://spark-data.cn/v1 · model: qwen3.8-max

Reuse your SparkData API key. Accounts share 100,000 tokens per day, resetting at midnight Asia/Shanghai. Input plus output tokens count independently of data API request quotas. JSON and SSE are supported. max_completion_tokens caps reasoning plus final output: default 1,024, maximum 8,192; max_tokens is its alias.

curl 'https://spark-data.cn/v1/chat/completions' \
  -H "Authorization: Bearer $SPARKDATA_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "qwen3.8-max",
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ],
  "max_completion_tokens": 128
}'

Make your first trustworthy quote request

Authenticate with your API key. Choose an API key in the explorer to view a live response.

curl --request GET \
  'https://spark-data.cn/v1/market-data/quotes/latest?symbols=XSHG%3A600570' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
Authorization: Bearer $SPARKDATA_API_KEY
PUBLIC OPERATIONS
39
PUBLIC PATHS
34
PUBLIC OBJECTS
82
OPENAPI
3.1

LLM

OpenAI-compatible text generation with workspace-shared daily raw-token budgets. Client base_url is https://spark-data.cn/v1; model is qwen3.8-max.

2 ENDPOINTS
GET/v1/modelsList authorized language models

Requires llm:invoke. Does not consume market-data request allowance or model tokens.

Operation ID
listModels
Auth
Tenant API key

Parameters

This operation has no parameters.

Response

200

OpenAI-compatible model list.

application/json · object
401

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
403

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
503

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object

Success response fields

Objectobject
stringstringRequired

Object value.Example: Example text

Datadata
object[]object[]Required

Data value.Example: […]

cURL
curl --request GET \
  'https://spark-data.cn/v1/models' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/chat/completionsGenerate a text completion

OpenAI-compatible Chat Completions using qwen3.8-max. Requires llm:invoke. Every workspace shares 100000 raw tokens per Beijing calendar day by default, independently of market-data request counters. Usage is prompt_tokens plus completion_tokens; reasoning and cached-token details are not added twice. Requests reserve a conservative input bound and the complete output budget. Missing final usage retains the reservation pending reconciliation. max_tokens is accepted as an alias for the complete output budget, including reasoning. Only text messages and one completion are supported. Responses, images, audio, embeddings and provider-hosted tools are not part of this release.

Operation ID
createChatCompletion
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · ChatCompletionRequest
Modelmodel
stringstringRequired

Model value.Example: qwen3.8-max

Messagesmessages
object[]object[]Required

Messages value.Example: [{"role":"user","content":"Hello"}]

Max completion tokensmax_completion_tokens
integerintegerOptional

Max completion tokens value.Example: 128

Max tokensmax_tokens
integerintegerOptional

Alias for the complete output budget; cannot be supplied together with max_completion_tokens.Example: 128

Streamstream
booleanbooleanOptional

Stream value.Example: false

Stream optionsstream_options
objectobjectOptional

Stream options value.Example: {…}

Nn
integerintegerOptional

N value.Example: 1

Temperaturetemperature
numbernumberOptional

Temperature value.Example: 0.7

Top ptop_p
numbernumberOptional

Top p value.Example: 1

Stopstop
string | string[]string | string[]Optional

Stop value.Example: […]

Toolstools
object[]object[]Optional

Tools value.Example: […]

Tool choicetool_choice
string | objectstring | objectOptional

Tool choice value.Example: string

Parallel tool callsparallel_tool_calls
booleanbooleanOptional

Parallel tool calls value.Example: true

Response formatresponse_format
objectobjectOptional

Response format value.Example: {…}

Enable thinkingenable_thinking
booleanbooleanOptional

Enable thinking value.Example: true

{
  "model": "qwen3.8-max",
  "messages": [
    {
      "role": "user",
      "content": "Introduce yourself in one sentence."
    }
  ],
  "max_completion_tokens": 1024,
  "stream": false
}

Response

200

JSON completion or SSE chunks ending with data [DONE]. An interrupted stream ends with an error event without a success marker. include_usage may produce an empty choices array in the final usage chunk.

application/json · ChatCompletion / text/event-stream · string
400

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
401

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
403

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
413

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
429

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
502

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object
503

OpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.

application/json · object

Success response fields

Idid
stringstringRequired

Id value.Example: Use an existing record ID

Objectobject
stringstringRequired

Object value.Example: Example text

Createdcreated
integerintegerRequired

Created value.Example: 1

Modelmodel
stringstringRequired

Model value.Example: qwen3.8-max

Choiceschoices
object[]object[]Required

Choices value.Example: […]

Usageusage
objectobjectOptional

Usage value.Example: {…}

cURL
curl --request POST \
  'https://spark-data.cn/v1/chat/completions' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"model":"qwen3.8-max","messages":[{"role":"user","content":"Introduce yourself in one sentence."}],"max_completion_tokens":1024,"stream":false}'

Instruments

Normalized equity, ETF, and index security-master resources.

1 ENDPOINTS
GET/v1/instruments/{instrument_id}Get a normalized equity, ETF, or index
Operation ID
getInstrument
Auth
Tenant API key

Parameters

Instrument idinstrument_idpath
InstrumentIdInstrumentIdRequired

Instrument id value.Example: XSHG:600570

Response

200

Instrument found

application/json · InstrumentResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
InstrumentInstrumentRequired

Data value.Example: {…}

Instrument iddata.instrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Symboldata.symbol
stringstringRequired

Symbol value.Example: 600519

Namedata.name
string | nullstring | nullRequired

Name value.Example: Example name

Company namedata.company_name
string | nullstring | nullRequired

Company name value.Example: Example text

Micdata.mic
XSHG | XSHE | XBSEXSHG | XSHE | XBSERequired

Mic value.Example: XSHG

Asset classdata.asset_class
equity | etf | indexequity | etf | indexRequired

Asset class value.Example: equity

Currencydata.currency
stringstringRequired

Currency value.Example: CNY

Timezonedata.timezone
stringstringRequired

Timezone value.Example: Asia/Shanghai

Statusdata.status
stringstringRequired

Status value.Example: Example text

Industrydata.industry
string | nullstring | nullRequired

Industry value.Example: Example text

Conceptsdata.concepts
string[]string[]Required

Concepts value.Example: […]

Provider datadata.provider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Operationdata.provider_data.operation
stringstringRequired

Exact operation name from the published source contract or dictionary service.Example: FinancialStatement

Rawdata.provider_data.raw
objectobjectRequired

Exact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/instruments/XSHG:600570' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"

Market Data

Cached quotes, bars, and best-effort streams.

3 ENDPOINTS
GET/v1/market-data/barsQuery equity, ETF, or index OHLCV bars across complete timeframes

Uses an inclusive `start` and exclusive `end`. JSON is the default. Send `Accept: application/x-ndjson` for one bar per line followed by a `stream_end` control record. Intraday bars are derived from upstream sampled cumulative quotes and are explicitly marked `snapshot_derived`; daily bars come from upstream OHLCV endpoints. Longer equity bars come from upstream period endpoints; longer ETF and index bars are aggregated from upstream daily bars and marked `daily_derived`.

Operation ID
listBars
Auth
Tenant API key

Parameters

Symbolssymbolsquery
InstrumentId[]InstrumentId[]Required

Comma-separated canonical IDs; tenant limits apply.Example: ["XSHG:600570","XSHE:000001"]

Startstartquery
string<date-time>string<date-time>Required

Inclusive UTC timestamp.Example: 2026-09-01T00:00:00+08:00

Endendquery
string<date-time>string<date-time>Required

Exclusive UTC timestamp; tenant range limits apply.Example: 2026-09-30T23:59:59+08:00

Timeframetimeframequery
BarTimeframeBarTimeframeOptional

Timeframe value.Example: 1d

Adjustmentadjustmentquery
raw | forward | backwardraw | forward | backwardOptional

All snapshot-derived intraday bars accept `raw` only. ETF and index bars also accept `raw` only for daily and longer periods. Equity daily and longer bars support upstream adjustments.Example: raw

Feedfeedquery
auto | realtime | delayedauto | realtime | delayedOptional

Compatibility routing hint; the currently deployed source exposes one feed.Example: auto

Sortsortquery
asc | descasc | descOptional

Sort value.Example: asc

Response

200

Bars or an NDJSON bar stream

application/json · BarsResponse / application/x-ndjson · BarStreamRecord
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
Bar[]Bar[]Required

Data value.Example: […]

Instrument iddata[].instrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Event timedata[].event_time
string<date-time>string<date-time>Required

Start of the interval in UTC.Example: 2026-09-30T15:00:00+08:00

Trading datedata[].trading_date
string | nullstring | nullRequired

Upstream trading or period-end date; null for derived intraday bars.Example: Example text

Timeframedata[].timeframe
BarTimeframeBarTimeframeRequired

Timeframe value.Example: 1d

Opendata[].open
DecimalDecimalRequired

Open value.Example: {…}

Highdata[].high
DecimalDecimalRequired

High value.Example: {…}

Lowdata[].low
DecimalDecimalRequired

Low value.Example: {…}

Closedata[].close
DecimalDecimalRequired

Close value.Example: {…}

Previous closedata[].previous_close
Decimal | nullDecimal | nullRequired

Previous close value.Example: {…}

Volumedata[].volume
DecimalDecimalRequired

Volume value.Example: {…}

Turnoverdata[].turnover
Decimal | nullDecimal | nullRequired

Turnover value.Example: {…}

Trade countdata[].trade_count
integer | nullinteger | nullRequired

Trade count value.Example: 1

Suspendeddata[].suspended
booleanbooleanRequired

Suspended value.Example: true

Adjustmentdata[].adjustment
raw | forward | backwardraw | forward | backwardRequired

All snapshot-derived intraday bars accept `raw` only. ETF and index bars also accept `raw` only for daily and longer periods. Equity daily and longer bars support upstream adjustments.Example: raw

Aggregation sourcedata[].aggregation_source
provider | snapshot_derived | daily_derivedprovider | snapshot_derived | daily_derivedRequired

Aggregation source value.Example: provider

Provider datadata[].provider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Operationdata[].provider_data.operation
stringstringRequired

Exact operation name from the published source contract or dictionary service.Example: FinancialStatement

Rawdata[].provider_data.raw
objectobjectRequired

Exact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/market-data/bars?symbols=XSHG%3A600570%2CXSHE%3A000001&start=2026-11-03T16%3A25%3A51.708Z&end=2026-11-10T16%3A25%3A51.708Z&timeframe=1d' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/market-data/quotes/latestGet latest quotes for multiple equities, ETFs, or indexes
Operation ID
getLatestQuotes
Auth
Tenant API key

Parameters

Symbolssymbolsquery
InstrumentId[]InstrumentId[]Required

Comma-separated canonical IDs; tenant limits apply.Example: ["XSHG:600570","XSHE:000001"]

Feedfeedquery
auto | realtime | delayedauto | realtime | delayedOptional

Compatibility routing hint; the currently deployed source exposes one feed.Example: auto

Response

200

Latest quotes

application/json · QuotesResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
Quote[]Quote[]Required

Data value.Example: […]

Instrument iddata[].instrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Event timedata[].event_time
string<date-time>string<date-time>Required

Event time value.Example: 2026-09-30T15:00:00+08:00

Last pricedata[].last_price
DecimalDecimalRequired

Last price value.Example: {…}

Previous closedata[].previous_close
DecimalDecimalRequired

Previous close value.Example: {…}

Opendata[].open
DecimalDecimalRequired

Open value.Example: {…}

Highdata[].high
DecimalDecimalRequired

High value.Example: {…}

Lowdata[].low
DecimalDecimalRequired

Low value.Example: {…}

Changedata[].change
Decimal | nullDecimal | nullRequired

Change value.Example: {…}

Change percentdata[].change_percent
Decimal | nullDecimal | nullRequired

Change percent value.Example: {…}

Volumedata[].volume
DecimalDecimalRequired

Volume value.Example: {…}

Turnoverdata[].turnover
DecimalDecimalRequired

Turnover value.Example: {…}

Trade statusdata[].trade_status
stringstringRequired

Trade status value.Example: Example text

Bid levelsdata[].bid_levels
PriceLevel[]PriceLevel[]Required

Bid levels value.Example: […]

Pricedata[].bid_levels[].price
DecimalDecimalRequired

Price value.Example: {…}

Sizedata[].bid_levels[].size
DecimalDecimalRequired

Size value.Example: {…}

Ask levelsdata[].ask_levels
PriceLevel[]PriceLevel[]Required

Ask levels value.Example: […]

Pricedata[].ask_levels[].price
DecimalDecimalRequired

Price value.Example: {…}

Sizedata[].ask_levels[].size
DecimalDecimalRequired

Size value.Example: {…}

Provider datadata[].provider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Operationdata[].provider_data.operation
stringstringRequired

Exact operation name from the published source contract or dictionary service.Example: FinancialStatement

Rawdata[].provider_data.raw
objectobjectRequired

Exact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/market-data/quotes/latest?symbols=XSHG%3A600570%2CXSHE%3A000001' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/market-data/streamStream best-effort latest quotes with SSE

Emits `quote`, `heartbeat`, and `reconnect` events. This MVP deliberately provides neither durability nor replay. A new connection starts from the current quote. The regular OpenAPI HTTP operation describes both transports; a separate AsyncAPI contract is unnecessary for this unidirectional SSE API.

Operation ID
streamMarketData
Auth
Tenant API key

Parameters

Symbolssymbolsquery
InstrumentId[]InstrumentId[]Required

Comma-separated canonical IDs; tenant limits apply.Example: ["XSHG:600570","XSHE:000001"]

Feedfeedquery
auto | realtime | delayedauto | realtime | delayedOptional

Compatibility routing hint; the currently deployed source exposes one feed.Example: auto

Heartbeat secondsheartbeat_secondsquery
integerintegerOptional

Heartbeat seconds value.Example: 20

Response

200

SSE quote stream

text/event-stream · MarketEvent
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Fields vary by endpoint. See the example or run it to inspect the response.

cURL
curl --request GET \
  'https://spark-data.cn/v1/market-data/stream?symbols=XSHG%3A600570%2CXSHE%3A000001' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"

Agent Context

Agent-oriented compound views assembled from reusable cached resources.

1 ENDPOINTS
GET/v1/agent/context/{instrument_id}Get a comprehensive cached context for one equity, ETF, or index

Combines the company profile, latest quote, and requested bars in one agent-friendly response. The operation does not create a monolithic cache entry: it reuses canonical per-instrument quote and time-partitioned bar fragments, so overlapping requests from different users share cache hits. When `start` and `end` are both omitted, the service returns up to the last 365 calendar days, capped by the tenant's bar-range limit. Provider data is included verbatim beside normalized fields. Both dates must be supplied together when overriding the default range.

Operation ID
getAgentContext
Auth
Tenant API key

Parameters

Instrument idinstrument_idpath
InstrumentIdInstrumentIdRequired

Instrument id value.Example: XSHG:600570

Startstartquery
string<date-time>string<date-time>Optional

Inclusive UTC timestamp; must be paired with `end`.Example: 2026-09-01T00:00:00+08:00

Endendquery
string<date-time>string<date-time>Optional

Exclusive UTC timestamp; must be paired with `start`.Example: 2026-09-30T23:59:59+08:00

Timeframetimeframequery
BarTimeframeBarTimeframeOptional

Timeframe value.Example: 1d

Adjustmentadjustmentquery
raw | forward | backwardraw | forward | backwardOptional

All snapshot-derived intraday bars accept `raw` only. ETF and index bars also accept `raw` only for daily and longer periods. Equity daily and longer bars support upstream adjustments.Example: raw

Sortsortquery
asc | descasc | descOptional

Sort value.Example: asc

Response

200

Agent context assembled from reusable cached resources

application/json · AgentContextResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
AgentContextAgentContextRequired

Data value.Example: {…}

Instrument iddata.instrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Instrumentdata.instrument
InstrumentInstrumentRequired

Instrument value.Example: {…}

Instrument iddata.instrument.instrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Symboldata.instrument.symbol
stringstringRequired

Symbol value.Example: 600519

Namedata.instrument.name
string | nullstring | nullRequired

Name value.Example: Example name

Company namedata.instrument.company_name
string | nullstring | nullRequired

Company name value.Example: Example text

Micdata.instrument.mic
XSHG | XSHE | XBSEXSHG | XSHE | XBSERequired

Mic value.Example: XSHG

Asset classdata.instrument.asset_class
equity | etf | indexequity | etf | indexRequired

Asset class value.Example: equity

Currencydata.instrument.currency
stringstringRequired

Currency value.Example: CNY

Timezonedata.instrument.timezone
stringstringRequired

Timezone value.Example: Asia/Shanghai

Statusdata.instrument.status
stringstringRequired

Status value.Example: Example text

Industrydata.instrument.industry
string | nullstring | nullRequired

Industry value.Example: Example text

Conceptsdata.instrument.concepts
string[]string[]Required

Concepts value.Example: […]

Provider datadata.instrument.provider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Latest quotedata.latest_quote
Quote | nullQuote | nullRequired

Latest quote value.Example: {…}

Barsdata.bars
Bar[]Bar[]Required

Bars value.Example: […]

Instrument iddata.bars[].instrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Event timedata.bars[].event_time
string<date-time>string<date-time>Required

Start of the interval in UTC.Example: 2026-09-30T15:00:00+08:00

Trading datedata.bars[].trading_date
string | nullstring | nullRequired

Upstream trading or period-end date; null for derived intraday bars.Example: Example text

Timeframedata.bars[].timeframe
BarTimeframeBarTimeframeRequired

Timeframe value.Example: 1d

Opendata.bars[].open
DecimalDecimalRequired

Open value.Example: {…}

Highdata.bars[].high
DecimalDecimalRequired

High value.Example: {…}

Lowdata.bars[].low
DecimalDecimalRequired

Low value.Example: {…}

Closedata.bars[].close
DecimalDecimalRequired

Close value.Example: {…}

Previous closedata.bars[].previous_close
Decimal | nullDecimal | nullRequired

Previous close value.Example: {…}

Volumedata.bars[].volume
DecimalDecimalRequired

Volume value.Example: {…}

Turnoverdata.bars[].turnover
Decimal | nullDecimal | nullRequired

Turnover value.Example: {…}

Trade countdata.bars[].trade_count
integer | nullinteger | nullRequired

Trade count value.Example: 1

Suspendeddata.bars[].suspended
booleanbooleanRequired

Suspended value.Example: true

Adjustmentdata.bars[].adjustment
raw | forward | backwardraw | forward | backwardRequired

All snapshot-derived intraday bars accept `raw` only. ETF and index bars also accept `raw` only for daily and longer periods. Equity daily and longer bars support upstream adjustments.Example: raw

Aggregation sourcedata.bars[].aggregation_source
provider | snapshot_derived | daily_derivedprovider | snapshot_derived | daily_derivedRequired

Aggregation source value.Example: provider

Provider datadata.bars[].provider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Upstream operationsdata.upstream_operations
string[]string[]Required

Upstream operations value.Example: […]

cURL
curl --request GET \
  'https://spark-data.cn/v1/agent/context/XSHG:600570' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"

Data Catalog

Stable dataset groups and observed readiness without inferred rights or watermarks.

4 ENDPOINTS
GET/v1/data-readinessReturn observed readiness without inventing coverage, rights, or watermarks
Operation ID
getDataReadiness
Auth
Tenant API key

Parameters

This operation has no parameters.

Response

200

Observed catalog readiness

application/json · DataReadinessResponse
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
DatasetReadiness[]DatasetReadiness[]Required

Data value.Example: […]

Dataset iddata[].dataset_id
stringstringRequired

Dataset id value.Example: Use an existing record ID

Contract statusdata[].contract_status
stringstringRequired

Contract status value.Example: Example text

Delivery statusdata[].delivery_status
stringstringRequired

Delivery status value.Example: Example text

Coverage statusdata[].coverage_status
stringstringRequired

Coverage status value.Example: Example text

Rights statusdata[].rights_status
stringstringRequired

Rights status value.Example: Example text

Watermarkdata[].watermark
null | stringnull | stringRequired

Watermark value.Example: null

Operation countdata[].operation_count
integerintegerRequired

Operation count value.Example: 1

Observed atdata[].observed_at
string<date-time>string<date-time>Required

Observed at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request GET \
  'https://spark-data.cn/v1/data-readiness' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/catalog/categoriesList bilingual product categories
Operation ID
listCatalogCategories
Auth
Public

Parameters

If-None-MatchIf-None-Matchheader
stringstringOptional

If-None-Match value.Example: Example text

Response

200

Successful JSON response.

application/json · object
304

Public metadata is semantically unchanged; no response body.

400

Invalid request

application/problem+json · Problem

Success response fields

Metameta
objectobjectRequired

Meta value.Example: {…}

Datadata
CatalogCategory[]CatalogCategory[]Required

Data value.Example: […]

cURL
curl --request GET \
  'https://spark-data.cn/v1/catalog/categories'
GET/v1/catalog/operationsSearch individual data operations
Operation ID
listCatalogOperations
Auth
Public

Parameters

Qqquery
stringstringOptional

Q value.Example: Moutai

Categorycategoryquery
stringstringOptional

Category value.Example: Example text

Assetassetquery
stringstringOptional

Asset value.Example: Example text

Capabilitycapabilityquery
stringstringOptional

Capability value.Example: Example text

Required planrequired_planquery
stringstringOptional

Required plan value.Example: Example text

Pagepagequery
integerintegerOptional

Page value.Example: 1

Page sizepage_sizequery
integerintegerOptional

Page size value.Example: 20

If-None-MatchIf-None-Matchheader
stringstringOptional

If-None-Match value.Example: Example text

Response

200

Successful JSON response.

application/json · object
304

Public metadata is semantically unchanged; no response body.

400

Invalid request

application/problem+json · Problem

Success response fields

Metameta
objectobjectRequired

Meta value.Example: {…}

Datadata
CatalogPageCatalogPageRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/catalog/operations'
GET/v1/catalog/operations/{id}Describe a product operation and its exact contract
Operation ID
getCatalogOperation
Auth
Public

Parameters

Ididpath
stringstringRequired

Id value.Example: Use an existing record ID

If-None-MatchIf-None-Matchheader
stringstringOptional

If-None-Match value.Example: Example text

Response

200

Successful JSON response.

application/json · object
304

Public metadata is semantically unchanged; no response body.

404

Resource not found

application/problem+json · Problem

Success response fields

Metameta
objectobjectRequired

Meta value.Example: {…}

Datadata
CatalogOperationCatalogOperationRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/catalog/operations/value'

Research

Published research templates and tenant experiment metadata; no hosted execution.

5 ENDPOINTS
GET/v1/research/templatesList six evidence-oriented research template definitions
Operation ID
listResearchTemplates
Auth
Tenant API key

Parameters

This operation has no parameters.

Response

200

Published research templates

application/json · ResearchTemplatesResponse
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
ResearchTemplate[]ResearchTemplate[]Required

Data value.Example: […]

Template iddata[].template_id
stringstringRequired

Template id value.Example: Use an existing record ID

Versiondata[].version
stringstringRequired

Version value.Example: Example text

Namedata[].name
stringstringRequired

Name value.Example: Example name

Descriptiondata[].description
stringstringRequired

Description value.Example: Example text

Required datasetsdata[].required_datasets
string[]string[]Required

Required datasets value.Example: […]

Required capabilitiesdata[].required_capabilities
Capability[]Capability[]Required

Required capabilities value.Example: […]

Output formatsdata[].output_formats
application/json | text/markdown | text/html[]application/json | text/markdown | text/html[]Required

Output formats value.Example: […]

Evidence requireddata[].evidence_required
booleanbooleanRequired

Evidence required value.Example: true

Risk noticedata[].risk_notice
stringstringRequired

Risk notice value.Example: Example text

cURL
curl --request GET \
  'https://spark-data.cn/v1/research/templates' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/experiment-runsList tenant experiment metadata
Operation ID
listExperimentRuns
Auth
Tenant API key

Parameters

This operation has no parameters.

Response

200

Experiment records

application/json · ExperimentRunsResponse
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
ExperimentRun[]ExperimentRun[]Required

Data value.Example: […]

Iddata[].id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant iddata[].tenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Kinddata[].kind
ExperimentKindExperimentKindRequired

Kind value.Example: {…}

Namedata[].name
stringstringRequired

Name value.Example: Example name

Factor version iddata[].factor_version_id
string | nullstring | nullRequired

Factor version id value.Example: Use an existing record ID

Research template iddata[].research_template_id
string | nullstring | nullRequired

Research template id value.Example: Use an existing record ID

Inputsdata[].inputs
objectobjectRequired

Inputs value.Example: {…}

Code refdata[].code_ref
string | nullstring | nullRequired

Code ref value.Example: Example text

Data manifest refdata[].data_manifest_ref
string | nullstring | nullRequired

Data manifest ref value.Example: Example text

Environmentdata[].environment
objectobjectRequired

Environment value.Example: {…}

Statusdata[].status
ExperimentStatusExperimentStatusRequired

Status value.Example: {…}

Resultdata[].result
objectobjectRequired

Result value.Example: {…}

Created atdata[].created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

Updated atdata[].updated_at
string<date-time>string<date-time>Required

Updated at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request GET \
  'https://spark-data.cn/v1/experiment-runs' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/experiment-runsRecord a planned research or factor experiment without executing it
Operation ID
createExperimentRun
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · CreateExperimentRun
Kindkind
ExperimentKindExperimentKindRequired

Kind value.Example: {…}

Namename
stringstringRequired

Name value.Example: Example name

Factor version idfactor_version_id
string | nullstring | nullOptional

Factor version id value.Example: Use an existing record ID

Research template idresearch_template_id
string | nullstring | nullOptional

Research template id value.Example: Use an existing record ID

Inputsinputs
objectobjectOptional

Inputs value.Example: {…}

Code refcode_ref
string | nullstring | nullOptional

Code ref value.Example: Example text

Data manifest refdata_manifest_ref
string | nullstring | nullOptional

Data manifest ref value.Example: Example text

Environmentenvironment
objectobjectOptional

Environment value.Example: {…}

{
  "kind": "research",
  "name": "Console experiment"
}

Response

201

Experiment metadata created

application/json · ExperimentRunResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
ExperimentRunExperimentRunRequired

Data value.Example: {…}

Iddata.id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant iddata.tenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Kinddata.kind
ExperimentKindExperimentKindRequired

Kind value.Example: {…}

Namedata.name
stringstringRequired

Name value.Example: Example name

Factor version iddata.factor_version_id
string | nullstring | nullRequired

Factor version id value.Example: Use an existing record ID

Research template iddata.research_template_id
string | nullstring | nullRequired

Research template id value.Example: Use an existing record ID

Inputsdata.inputs
objectobjectRequired

Inputs value.Example: {…}

Code refdata.code_ref
string | nullstring | nullRequired

Code ref value.Example: Example text

Data manifest refdata.data_manifest_ref
string | nullstring | nullRequired

Data manifest ref value.Example: Example text

Environmentdata.environment
objectobjectRequired

Environment value.Example: {…}

Statusdata.status
ExperimentStatusExperimentStatusRequired

Status value.Example: {…}

Resultdata.result
objectobjectRequired

Result value.Example: {…}

Created atdata.created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

Updated atdata.updated_at
string<date-time>string<date-time>Required

Updated at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request POST \
  'https://spark-data.cn/v1/experiment-runs' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"kind":"research","name":"Console experiment"}'
GET/v1/experiment-runs/{run_id}Get one tenant experiment record
Operation ID
getExperimentRun
Auth
Tenant API key

Parameters

Run idrun_idpath
string<uuid>string<uuid>Required

Run id value.Example: Use an existing record ID

Response

200

Experiment metadata

application/json · ExperimentRunResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
ExperimentRunExperimentRunRequired

Data value.Example: {…}

Iddata.id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant iddata.tenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Kinddata.kind
ExperimentKindExperimentKindRequired

Kind value.Example: {…}

Namedata.name
stringstringRequired

Name value.Example: Example name

Factor version iddata.factor_version_id
string | nullstring | nullRequired

Factor version id value.Example: Use an existing record ID

Research template iddata.research_template_id
string | nullstring | nullRequired

Research template id value.Example: Use an existing record ID

Inputsdata.inputs
objectobjectRequired

Inputs value.Example: {…}

Code refdata.code_ref
string | nullstring | nullRequired

Code ref value.Example: Example text

Data manifest refdata.data_manifest_ref
string | nullstring | nullRequired

Data manifest ref value.Example: Example text

Environmentdata.environment
objectobjectRequired

Environment value.Example: {…}

Statusdata.status
ExperimentStatusExperimentStatusRequired

Status value.Example: {…}

Resultdata.result
objectobjectRequired

Result value.Example: {…}

Created atdata.created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

Updated atdata.updated_at
string<date-time>string<date-time>Required

Updated at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request GET \
  'https://spark-data.cn/v1/experiment-runs/RUN_ID' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
PATCH/v1/experiment-runs/{run_id}Apply a guarded status transition and optional result summary
Operation ID
updateExperimentRun
Auth
Tenant API key

Parameters

Run idrun_idpath
string<uuid>string<uuid>Required

Run id value.Example: Use an existing record ID

Request body

Required

application/json · UpdateExperimentRun
Statusstatus
ExperimentStatusExperimentStatusRequired

Status value.Example: {…}

Resultresult
objectobjectOptional

Result value.Example: {…}

{
  "status": "planned"
}

Response

200

Experiment metadata updated

application/json · ExperimentRunResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
ExperimentRunExperimentRunRequired

Data value.Example: {…}

Iddata.id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant iddata.tenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Kinddata.kind
ExperimentKindExperimentKindRequired

Kind value.Example: {…}

Namedata.name
stringstringRequired

Name value.Example: Example name

Factor version iddata.factor_version_id
string | nullstring | nullRequired

Factor version id value.Example: Use an existing record ID

Research template iddata.research_template_id
string | nullstring | nullRequired

Research template id value.Example: Use an existing record ID

Inputsdata.inputs
objectobjectRequired

Inputs value.Example: {…}

Code refdata.code_ref
string | nullstring | nullRequired

Code ref value.Example: Example text

Data manifest refdata.data_manifest_ref
string | nullstring | nullRequired

Data manifest ref value.Example: Example text

Environmentdata.environment
objectobjectRequired

Environment value.Example: {…}

Statusdata.status
ExperimentStatusExperimentStatusRequired

Status value.Example: {…}

Resultdata.result
objectobjectRequired

Result value.Example: {…}

Created atdata.created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

Updated atdata.updated_at
string<date-time>string<date-time>Required

Updated at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request PATCH \
  'https://spark-data.cn/v1/experiment-runs/RUN_ID' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"status":"planned"}'

Factors

Tenant-scoped factor definitions and immutable versions; no computation.

5 ENDPOINTS
GET/v1/factorsList tenant factor definitions
Operation ID
listFactors
Auth
Tenant API key

Parameters

This operation has no parameters.

Response

200

Factor definitions

application/json · FactorsResponse
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
FactorDefinition[]FactorDefinition[]Required

Data value.Example: […]

Iddata[].id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant iddata[].tenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Namedata[].name
stringstringRequired

Name value.Example: Example name

Descriptiondata[].description
stringstringRequired

Description value.Example: Example text

Input datasetsdata[].input_datasets
string[]string[]Required

Input datasets value.Example: […]

Universe ruledata[].universe_rule
stringstringRequired

Universe rule value.Example: Example text

Created atdata[].created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request GET \
  'https://spark-data.cn/v1/factors' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/factorsCreate a tenant-unique factor definition without running computation
Operation ID
createFactor
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · CreateFactorDefinition
Namename
stringstringRequired

Name value.Example: Example name

Descriptiondescription
stringstringOptional

Description value.Example: Example text

Input datasetsinput_datasets
string[]string[]Required

Input datasets value.Example: […]

Universe ruleuniverse_rule
stringstringRequired

Universe rule value.Example: Example text

{
  "name": "Console factor",
  "input_datasets": [
    "cn-equity"
  ],
  "universe_rule": "Active A shares"
}

Response

201

Factor definition created

application/json · FactorResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
FactorDefinitionFactorDefinitionRequired

Data value.Example: {…}

Iddata.id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant iddata.tenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Namedata.name
stringstringRequired

Name value.Example: Example name

Descriptiondata.description
stringstringRequired

Description value.Example: Example text

Input datasetsdata.input_datasets
string[]string[]Required

Input datasets value.Example: […]

Universe ruledata.universe_rule
stringstringRequired

Universe rule value.Example: Example text

Created atdata.created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request POST \
  'https://spark-data.cn/v1/factors' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"name":"Console factor","input_datasets":["cn-equity"],"universe_rule":"Active A shares"}'
GET/v1/factors/{factor_id}Get one tenant factor definition
Operation ID
getFactor
Auth
Tenant API key

Parameters

Factor idfactor_idpath
string<uuid>string<uuid>Required

Factor id value.Example: Use an existing record ID

Response

200

Factor definition

application/json · FactorResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
FactorDefinitionFactorDefinitionRequired

Data value.Example: {…}

Iddata.id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant iddata.tenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Namedata.name
stringstringRequired

Name value.Example: Example name

Descriptiondata.description
stringstringRequired

Description value.Example: Example text

Input datasetsdata.input_datasets
string[]string[]Required

Input datasets value.Example: […]

Universe ruledata.universe_rule
stringstringRequired

Universe rule value.Example: Example text

Created atdata.created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request GET \
  'https://spark-data.cn/v1/factors/FACTOR_ID' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/factors/{factor_id}/versionsList immutable versions for one factor
Operation ID
listFactorVersions
Auth
Tenant API key

Parameters

Factor idfactor_idpath
string<uuid>string<uuid>Required

Factor id value.Example: Use an existing record ID

Response

200

Factor versions

application/json · FactorVersionsResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
FactorVersion[]FactorVersion[]Required

Data value.Example: […]

Iddata[].id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Factor iddata[].factor_id
string<uuid>string<uuid>Required

Factor id value.Example: Use an existing record ID

Version numberdata[].version_number
integerintegerRequired

Version number value.Example: 1

Expressiondata[].expression
stringstringRequired

Expression value.Example: Example text

Lookback daysdata[].lookback_days
integerintegerRequired

Lookback days value.Example: 1

Adjustmentdata[].adjustment
raw | forward | backwardraw | forward | backwardRequired

Adjustment value.Example: raw

Created atdata[].created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request GET \
  'https://spark-data.cn/v1/factors/FACTOR_ID/versions' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/factors/{factor_id}/versionsCreate the next immutable declaration version
Operation ID
createFactorVersion
Auth
Tenant API key

Parameters

Factor idfactor_idpath
string<uuid>string<uuid>Required

Factor id value.Example: Use an existing record ID

Request body

Required

application/json · CreateFactorVersion
Expressionexpression
stringstringRequired

Expression value.Example: Example text

Lookback dayslookback_days
integerintegerRequired

Lookback days value.Example: 1

Adjustmentadjustment
raw | forward | backwardraw | forward | backwardOptional

Adjustment value.Example: raw

{
  "expression": "return_20d",
  "lookback_days": 20
}

Response

201

Factor version created

application/json · FactorVersionResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
FactorVersionFactorVersionRequired

Data value.Example: {…}

Iddata.id
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Factor iddata.factor_id
string<uuid>string<uuid>Required

Factor id value.Example: Use an existing record ID

Version numberdata.version_number
integerintegerRequired

Version number value.Example: 1

Expressiondata.expression
stringstringRequired

Expression value.Example: Example text

Lookback daysdata.lookback_days
integerintegerRequired

Lookback days value.Example: 1

Adjustmentdata.adjustment
raw | forward | backwardraw | forward | backwardRequired

Adjustment value.Example: raw

Created atdata.created_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

cURL
curl --request POST \
  'https://spark-data.cn/v1/factors/FACTOR_ID/versions' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"expression":"return_20d","lookback_days":20}'

Online Agent

A2A 1.0 discovery, messages, Tasks, public workflow events, and cancellation.

7 ENDPOINTS
GET/.well-known/agent-card.jsonDiscover the SparkData online research Agent
Operation ID
getOnlineAgentCard
Auth
Public

Parameters

This operation has no parameters.

Response

200

Public A2A Agent Card

application/json · AgentCard

Success response fields

Namename
stringstringRequired

Name value.Example: Example name

Descriptiondescription
stringstringRequired

Description value.Example: Example text

Supported InterfacessupportedInterfaces
object[]object[]Required

Supported Interfaces value.Example: […]

Versionversion
stringstringRequired

Version value.Example: Example text

Capabilitiescapabilities
objectobjectRequired

Capabilities value.Example: {…}

Default Input ModesdefaultInputModes
string[]string[]Required

Default Input Modes value.Example: […]

Default Output ModesdefaultOutputModes
string[]string[]Required

Default Output Modes value.Example: […]

Skillsskills
object[]object[]Required

Skills value.Example: […]

cURL
curl --request GET \
  'https://spark-data.cn/.well-known/agent-card.json'
POST/v1/agent/a2a/message:sendSend one message and wait for the authoritative Task result
Operation ID
sendAgentMessage
Auth
User session cookie

Parameters

A2A-VersionA2A-Versionheader
stringstringRequired

This interface supports A2A protocol version 1.0 only.Example: Example text

A2A-ExtensionsA2A-Extensionsheader
stringstringOptional

Comma-separated optional A2A extension URIs selected by the client.Example: Example text

X-CSRF-TokenX-CSRF-Tokenheader
stringstringRequired

Token returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text

Request body

Required

application/a2a+json · SendAgentMessageRequest
Messagemessage
AgentMessageAgentMessageRequired

Message value.Example: {…}

Message Idmessage.messageId
string<uuid>string<uuid>Required

Message Id value.Example: Use an existing record ID

Rolemessage.role
ROLE_USER | ROLE_AGENTROLE_USER | ROLE_AGENTRequired

Role value.Example: user

Partsmessage.parts
AgentPart[]AgentPart[]Required

Parts value.Example: […]

Context Idmessage.contextId
string<uuid>string<uuid>Optional

Context Id value.Example: Use an existing record ID

Task Idmessage.taskId
string<uuid>string<uuid>Optional

Task Id value.Example: Use an existing record ID

Configurationconfiguration
AgentSendConfigurationAgentSendConfigurationOptional

Configuration value.Example: {…}

Accepted Output Modesconfiguration.acceptedOutputModes
text/markdown | application/json[]text/markdown | application/json[]Optional

Accepted Output Modes value.Example: […]

History Lengthconfiguration.historyLength
integerintegerOptional

History Length value.Example: 1

Response

200

Completed or failed Task envelope

application/a2a+json · SendAgentMessageResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Fields vary by endpoint. See the example or run it to inspect the response.

cURL
curl --request POST \
  'https://spark-data.cn/v1/agent/a2a/message:send' \
  --cookie "$SPARKDATA_SESSION_COOKIE" \
  --header 'Content-Type: application/json' \
  --data '""'
POST/v1/agent/a2a/message:streamSend one message and stream Task lifecycle events

The first SSE data field is a Task envelope. Later fields contain statusUpdate or artifactUpdate. Public workflow steps are not private model reasoning.

Operation ID
streamAgentMessage
Auth
User session cookie

Parameters

A2A-VersionA2A-Versionheader
stringstringRequired

This interface supports A2A protocol version 1.0 only.Example: Example text

A2A-ExtensionsA2A-Extensionsheader
stringstringOptional

Comma-separated optional A2A extension URIs selected by the client.Example: Example text

X-CSRF-TokenX-CSRF-Tokenheader
stringstringRequired

Token returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text

Request body

Required

application/a2a+json · SendAgentMessageRequest
Messagemessage
AgentMessageAgentMessageRequired

Message value.Example: {…}

Message Idmessage.messageId
string<uuid>string<uuid>Required

Message Id value.Example: Use an existing record ID

Rolemessage.role
ROLE_USER | ROLE_AGENTROLE_USER | ROLE_AGENTRequired

Role value.Example: user

Partsmessage.parts
AgentPart[]AgentPart[]Required

Parts value.Example: […]

Context Idmessage.contextId
string<uuid>string<uuid>Optional

Context Id value.Example: Use an existing record ID

Task Idmessage.taskId
string<uuid>string<uuid>Optional

Task Id value.Example: Use an existing record ID

Configurationconfiguration
AgentSendConfigurationAgentSendConfigurationOptional

Configuration value.Example: {…}

Accepted Output Modesconfiguration.acceptedOutputModes
text/markdown | application/json[]text/markdown | application/json[]Optional

Accepted Output Modes value.Example: […]

History Lengthconfiguration.historyLength
integerintegerOptional

History Length value.Example: 1

Response

200

Ordered A2A SSE events ending at a terminal Task state

text/event-stream · string
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Fields vary by endpoint. See the example or run it to inspect the response.

cURL
curl --request POST \
  'https://spark-data.cn/v1/agent/a2a/message:stream' \
  --cookie "$SPARKDATA_SESSION_COOKIE" \
  --header 'Content-Type: application/json' \
  --data '""'
GET/v1/agent/a2a/tasksList Tasks owned by the authenticated tenant user
Operation ID
listAgentTasks
Auth
User session cookie

Parameters

A2A-VersionA2A-Versionheader
stringstringRequired

This interface supports A2A protocol version 1.0 only.Example: Example text

Context IdcontextIdquery
string<uuid>string<uuid>Optional

Context Id value.Example: Use an existing record ID

Page SizepageSizequery
integerintegerOptional

Page Size value.Example: 50

Response

200

Owner-scoped Task page

application/a2a+json · AgentTaskList
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Fields vary by endpoint. See the example or run it to inspect the response.

cURL
curl --request GET \
  'https://spark-data.cn/v1/agent/a2a/tasks' \
  --cookie "$SPARKDATA_SESSION_COOKIE"
GET/v1/agent/a2a/tasks/{id}Get one authoritative owner-scoped Task snapshot
Operation ID
getAgentTask
Auth
User session cookie

Parameters

A2A-VersionA2A-Versionheader
stringstringRequired

This interface supports A2A protocol version 1.0 only.Example: Example text

Ididpath
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Response

200

Current Task snapshot

application/a2a+json · AgentTask
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Fields vary by endpoint. See the example or run it to inspect the response.

cURL
curl --request GET \
  'https://spark-data.cn/v1/agent/a2a/tasks/value' \
  --cookie "$SPARKDATA_SESSION_COOKIE"
POST/v1/agent/a2a/tasks/{id}:subscribeStream updates for one non-terminal owner-scoped Task
Operation ID
subscribeAgentTask
Auth
User session cookie

Parameters

A2A-VersionA2A-Versionheader
stringstringRequired

This interface supports A2A protocol version 1.0 only.Example: Example text

A2A-ExtensionsA2A-Extensionsheader
stringstringOptional

Comma-separated optional A2A extension URIs selected by the client.Example: Example text

X-CSRF-TokenX-CSRF-Tokenheader
stringstringRequired

Token returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text

Ididpath
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Response

200

Current Task followed by ordered SSE updates

text/event-stream · string
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Fields vary by endpoint. See the example or run it to inspect the response.

cURL
curl --request POST \
  'https://spark-data.cn/v1/agent/a2a/tasks/value:subscribe' \
  --cookie "$SPARKDATA_SESSION_COOKIE"
POST/v1/agent/a2a/tasks/{id}:cancelCancel one non-terminal owner-scoped Task
Operation ID
cancelAgentTask
Auth
User session cookie

Parameters

A2A-VersionA2A-Versionheader
stringstringRequired

This interface supports A2A protocol version 1.0 only.Example: Example text

X-CSRF-TokenX-CSRF-Tokenheader
stringstringRequired

Token returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text

Ididpath
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Request body

Optional

application/a2a+json · object

Fields vary by endpoint. See the example or run it to inspect the response.

Response

200

Canceled Task snapshot

application/a2a+json · AgentTask
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Fields vary by endpoint. See the example or run it to inspect the response.

cURL
curl --request POST \
  'https://spark-data.cn/v1/agent/a2a/tasks/value:cancel' \
  --cookie "$SPARKDATA_SESSION_COOKIE" \
  --header 'Content-Type: application/json' \
  --data '""'

Content

Workspace-isolated normalized content with immutable revisions and explicit body rights.

4 ENDPOINTS
GET/v1/content/sourcesList published content source operations
Operation ID
listContentSources
Auth
Public

Parameters

If-None-MatchIf-None-Matchheader
stringstringOptional

If-None-Match value.Example: Example text

Response

200

Successful JSON response.

application/json · object
304

Public metadata is semantically unchanged; no response body.

400

Invalid request

application/problem+json · Problem

Success response fields

Metameta
objectobjectRequired

Meta value.Example: {…}

Datadata
ContentSource[]ContentSource[]Required

Data value.Example: […]

cURL
curl --request GET \
  'https://spark-data.cn/v1/content/sources'
GET/v1/content/itemsRead the current workspace content index
Operation ID
listContentItems
Auth
Tenant API key

Parameters

Qqquery
stringstringOptional

Q value.Example: Moutai

Kindkindquery
stringstringOptional

Kind value.Example: Example text

Operationoperationquery
stringstringOptional

Operation value.Example: FinancialStatement

Publisherpublisherquery
stringstringOptional

Publisher value.Example: Example text

Entityentityquery
stringstringOptional

Entity value.Example: Example text

Startstartquery
stringstringOptional

Start value.Example: 2026-09-01T00:00:00+08:00

Endendquery
stringstringOptional

End value.Example: 2026-09-30T23:59:59+08:00

Cursorcursorquery
stringstringOptional

Cursor value.Example: Example text

Page sizepage_sizequery
integerintegerOptional

Page size value.Example: 20

Response

200

Successful JSON response.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
objectobjectRequired

Meta value.Example: {…}

Datadata
ContentPageContentPageRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/content/items' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/content/items/{id}Read a workspace content item with current body rights
Operation ID
getContentItem
Auth
Tenant API key

Parameters

Ididpath
stringstringRequired

Id value.Example: Use an existing record ID

Response

200

Successful JSON response.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
objectobjectRequired

Meta value.Example: {…}

Datadata
ContentItemContentItemRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/content/items/value' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/content/items/queryQuery one upstream content page and atomically index its normalized records

Requires existing tenant market-data:read scope and normal request allowance. Maximum 100 upstream rows. Full body display requires server-side source authorization. Does not confer a proposed paid tier. Repeating the same source records does not create duplicate content.

Operation ID
queryContentItems
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery
Operationoperation
stringstringRequired

Case-sensitive Excel operation name, for example FinancialStatement.Example: FinancialStatement

Parametersparameters
objectobjectOptional

Exact Excel input names and values; undeclared fields are rejected.Example: {…}

{
  "operation": "NewsInfoList",
  "parameters": {
    "pageNo": 1,
    "pageSize": 30
  }
}

Response

200

Successful JSON response.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
objectobjectRequired

Meta value.Example: {…}

Datadata
ContentItem[]ContentItem[]Required

Data value.Example: […]

cURL
curl --request POST \
  'https://spark-data.cn/v1/content/items/query' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"NewsInfoList","parameters":{"pageNo":1,"pageSize":30}}'

Data Operations

Individual published data operations with stable path identities.

1 ENDPOINTS
POST/v1/data/operations/{operation}Query one exact published data operation

The case-sensitive operation identity is the path. Parameters are validated against its published contract and resolved through existing dictionaries. Returns the same raw result envelope as the retained legacy aggregate endpoint. JSON only. Workspace/key authorization and existing key scopes apply. Annual subscription access and plan allowances apply when commercial enforcement is enabled; it is disabled by default.

Operation ID
queryDataOperation
Auth
Tenant API key

Parameters

Operationoperationpath
stringstringRequired

Operation value.Example: FinancialStatement

Request body

Required

application/json · object
Parametersparameters
objectobjectOptional

Parameters value.Example: {…}

{
  "parameters": {
    "stockObject": [
      "贵州茅台"
    ],
    "finStatementSubject": [
      "资产总计"
    ]
  }
}

Response

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Request idmeta.request_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionmeta.schema_version
stringstringRequired

Schema version value.Example: Example text

Cache statusmeta.cache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcemeta.source
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atmeta.generated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Datadata
AggregateDataAggregateDataRequired

Data value.Example: {…}

Api iddata.api_id
integerintegerRequired

Api id value.Example: Use an existing record ID

Capabilitydata.capability
CapabilityCapabilityRequired

Capability value.Example: {…}

Operationdata.operation
stringstringRequired

Operation value.Example: FinancialStatement

Resolved parametersdata.resolved_parameters
objectobjectRequired

Exact request sent upstream after fixed-value insertion and enum resolution.Example: {…}

Enum resolutionsdata.enum_resolutions
EnumResolution[]EnumResolution[]Required

Enum resolutions value.Example: […]

Fielddata.enum_resolutions[].field
stringstringRequired

Field value.Example: Example text

Group namedata.enum_resolutions[].group_name
stringstringRequired

Group name value.Example: Example text

Inputdata.enum_resolutions[].input
objectobjectRequired

Input value.Example: {…}

Codedata.enum_resolutions[].code
stringstringRequired

Code value.Example: Example text

Captiondata.enum_resolutions[].caption
string | nullstring | nullRequired

Caption value.Example: Example text

Provider datadata.enum_resolutions[].provider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Provider datadata.provider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Operationdata.provider_data.operation
stringstringRequired

Exact operation name from the published source contract or dictionary service.Example: FinancialStatement

Rawdata.provider_data.raw
objectobjectRequired

Exact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}

cURL
curl --request POST \
  'https://spark-data.cn/v1/data/operations/FinancialStatement' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"parameters":{"stockObject":["贵州茅台"],"finStatementSubject":["资产总计"]}}'

Billing

Annual tenant subscriptions shared by all tenant API keys, with server-priced payment orders.

6 ENDPOINTS
GET/v1/billing/catalogList annual plans, individual API prices and available payment channels

Prices are integer CNY cents. Null means no published price. Disabled products cannot be ordered. The response is never cached. Purchase also requires enforcement_enabled and a configured channel.

Operation ID
listBillingCatalog
Auth
Public

Parameters

This operation has no parameters.

Response

200

Published prices and channel availability.

application/json · object
default

Invalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
BillingCatalogBillingCatalogRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/billing/catalog'
GET/v1/tenants/{tenant_id}/billing/entitlementsRead tenant subscriptions shared by all of its API keys

All active tenant members can read unexpired subscriptions, including future renewal periods. effective_plan includes only active purchased periods or administrator-issued trials. Trial expiry restores the tenant's purchased or free access; trials never create payment orders. Expiry uses the Asia/Shanghai calendar.

Operation ID
getWorkspaceEntitlements
Auth
User session cookie

Parameters

Tenant idtenant_idpath
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Response

200

Current tenant billing information.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
default

Invalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
BillingEntitlementsBillingEntitlementsRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/tenants/TENANT_ID/billing/entitlements' \
  --cookie "$SPARKDATA_SESSION_COOKIE"
GET/v1/tenants/{tenant_id}/billing/ordersList orders belonging to a tenant owner

Only an active tenant owner can access payment orders. Refresh consults the signed payment-provider response; browser claims never grant access.

Operation ID
listBillingOrders
Auth
User session cookie

Parameters

Tenant idtenant_idpath
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Offsetoffsetquery
integerintegerOptional

Offset value.Example: 0

Response

200

Current tenant billing information.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
default

Invalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
BillingOrdersBillingOrdersRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/tenants/TENANT_ID/billing/orders' \
  --cookie "$SPARKDATA_SESSION_COOKIE"
POST/v1/tenants/{tenant_id}/billing/ordersCreate an annual subscription order with a published price revision

Tenant owner only. Server locks the price and currency; callers cannot supply an amount. The same Idempotency-Key with the same purchase returns its existing order; a different purchase returns 409. At most five new orders per tenant per ten minutes. Unconfigured payment or disabled commercial enforcement returns 503 without creating an order. Orders expire after fifteen minutes. No automatic renewal or prorated upgrades.

Operation ID
createBillingOrder
Auth
User session cookie

Parameters

Tenant idtenant_idpath
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

X-CSRF-TokenX-CSRF-Tokenheader
stringstringRequired

Token returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text

OriginOriginheader
string<uri>string<uri>Required

Origin value.Example: {…}

Idempotency-KeyIdempotency-Keyheader
stringstringRequired

Idempotency-Key value.Example: Example text

Request body

Required

application/json · object
Product idproduct_id
stringstringRequired

Use a product ID from the catalog: plan: identifies a plan and api: identifies one API.Example: api:FinancialStatement

Price revisionprice_revision
integerintegerRequired

Use the product catalog revision to confirm the current quote.Example: 1

Payment providerpayment_provider
alipay | wechatalipay | wechatRequired

Choose an available provider: alipay for Alipay or wechat for WeChat Pay.Example: alipay

{
  "product_id": "api:FinancialStatement",
  "price_revision": 1,
  "payment_provider": "alipay"
}

Response

201

Persisted order; repeated requests return the same order.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
default

Invalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
BillingOrderBillingOrderRequired

Data value.Example: {…}

cURL
curl --request POST \
  'https://spark-data.cn/v1/tenants/TENANT_ID/billing/orders' \
  --cookie "$SPARKDATA_SESSION_COOKIE" \
  --header 'Content-Type: application/json' \
  --data '{"product_id":"api:FinancialStatement","price_revision":1,"payment_provider":"alipay"}'
GET/v1/tenants/{tenant_id}/billing/orders/{order_id}Read an order and optionally reconcile its payment

Only an active tenant owner can access payment orders. Refresh consults the signed payment-provider response; browser claims never grant access.

Operation ID
getBillingOrder
Auth
User session cookie

Parameters

Tenant idtenant_idpath
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Order idorder_idpath
stringstringRequired

Order id value.Example: Use an existing record ID

Refreshrefreshquery
booleanbooleanOptional

Reconcile pending orders with the payment channel.Example: false

Response

200

Current tenant billing information.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
default

Invalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
BillingOrderBillingOrderRequired

Data value.Example: {…}

cURL
curl --request GET \
  'https://spark-data.cn/v1/tenants/TENANT_ID/billing/orders/value' \
  --cookie "$SPARKDATA_SESSION_COOKIE"
POST/v1/tenants/{tenant_id}/billing/orders/{order_id}/closeReconcile and close an unpaid order

Owner only. Paid orders remain paid. Closing never refunds a payment or removes a subscription. A confirmed late payment is recorded for operator review without granting access automatically.

Operation ID
closeBillingOrder
Auth
User session cookie

Parameters

Tenant idtenant_idpath
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Order idorder_idpath
stringstringRequired

Order id value.Example: Use an existing record ID

X-CSRF-TokenX-CSRF-Tokenheader
stringstringRequired

Token returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text

OriginOriginheader
string<uri>string<uri>Required

Origin value.Example: {…}

Response

200

Authoritative current order status.

application/json · object
400

Invalid request

application/problem+json · Problem
401

Missing, malformed, expired, revoked, or unknown API key

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
default

Invalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.

application/problem+json · Problem

Success response fields

Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
BillingOrderBillingOrderRequired

Data value.Example: {…}

cURL
curl --request POST \
  'https://spark-data.cn/v1/tenants/TENANT_ID/billing/orders/value/close' \
  --cookie "$SPARKDATA_SESSION_COOKIE"

Public data objects

Only objects used by customer-facing endpoints are listed. Expand one to inspect its fields, types, and requirements.

82 PUBLIC OBJECTS
BillingProductobject
Idid
stringstringRequired

Id value.Example: Use an existing record ID

Kindkind
plan | apiplan | apiRequired

Kind value.Example: plan

Operationoperation
string | nullstring | nullRequired

Operation value.Example: FinancialStatement

Plan codeplan_code
free | plus | pro | nullfree | plus | pro | nullRequired

Plan code value.Example: free

Title zhtitle_zh
stringstringRequired

Title zh value.Example: Example text

Title entitle_en
stringstringRequired

Title en value.Example: Example text

Price minorprice_minor
integer | nullinteger | nullRequired

Annual price in CNY minor units: 59900 means CNY 599. null means unpriced.Example: 59900

Sale enabledsale_enabled
booleanbooleanRequired

Sale enabled value.Example: false

Revisionrevision
integerintegerRequired

Revision value.Example: 1

BillingCatalogobject
Currencycurrency
stringstringRequired

Currency value.Example: CNY

Period monthsperiod_months
integerintegerRequired

Period months value.Example: 12

Productsproducts
BillingProduct[]BillingProduct[]Required

Products value.Example: […]

Providersproviders
object[]object[]Required

Providers value.Example: […]

Enforcement enabledenforcement_enabled
booleanbooleanRequired

Indicates whether paid subscriptions are open. No payment orders can be created when false.Example: false

BillingOrderobject
Idid
stringstringRequired

Id value.Example: Use an existing record ID

Tenant idtenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Productproduct
BillingProductBillingProductRequired

Product value.Example: {…}

Providerprovider
alipay | wechatalipay | wechatRequired

Provider value.Example: alipay

Amount minoramount_minor
integerintegerRequired

The amount due for this order in CNY minor units.Example: 19900

Currencycurrency
stringstringRequired

Currency value.Example: CNY

Period monthsperiod_months
integerintegerRequired

Period months value.Example: 12

Statusstatus
pending | paid | closed | reviewpending | paid | closed | reviewRequired

Status value.Example: pending

Payment codepayment_code
string | nullstring | nullRequired

Provider payment payload: an RSA2-signed official Alipay page.pay cashier URL for embedding or opening, or a WeChat Native QR code_url. Null when creation is incomplete. Browser navigation is never proof of payment.Example: Example text

Trade idtrade_id
string | nullstring | nullRequired

Trade id value.Example: Use an existing record ID

Created atcreated_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

Expires atexpires_at
string<date-time>string<date-time>Required

Expires at value.Example: 2026-09-30T15:00:00+08:00

Paid atpaid_at
string | nullstring | nullRequired

Paid at value.Example: Example text

Entitlement starts atentitlement_starts_at
string | nullstring | nullRequired

Entitlement starts at value.Example: Example text

Entitlement ends atentitlement_ends_at
string | nullstring | nullRequired

Entitlement ends at value.Example: Example text

BillingOrdersobject
Itemsitems
BillingOrder[]BillingOrder[]Required

Items value.Example: […]

Offsetoffset
integerintegerRequired

Offset value.Example: 1

Limitlimit
integerintegerRequired

Limit value.Example: 1

TrialAccessobject
Planplan
free | plus | profree | plus | proRequired

Free means trial access is disabled.Example: free

Starts atstarts_at
string<date-time>string<date-time>Required

Starts at value.Example: 2026-09-30T15:00:00+08:00

Ends atends_at
string<date-time>string<date-time>Required

Ends at value.Example: 2026-09-30T15:00:00+08:00

Revisionrevision
integerintegerRequired

Revision value.Example: 1

BillingEntitlementsobject
Trialtrial
TrialAccess | nullTrialAccess | nullRequired

Trial value.Example: {…}

Effective planeffective_plan
free | plus | profree | plus | proRequired

Highest active purchased or trial access.Example: free

Enforcement enabledenforcement_enabled
booleanbooleanRequired

Indicates whether paid subscriptions are open. No payment orders can be created when false.Example: false

Itemsitems
object[]object[]Required

Items value.Example: […]

CatalogCategoryobject
Idid
stringstringRequired

Id value.Example: Use an existing record ID

Parent idparent_id
string | nullstring | nullRequired

Parent id value.Example: Use an existing record ID

Name zhname_zh
stringstringRequired

Name zh value.Example: Example text

Name enname_en
stringstringRequired

Name en value.Example: Example text

CatalogOperationobject
Capabilitycapability
stringstringOptional

Capability value.Example: Example text

Legacy http pathlegacy_http_path
stringstringOptional

Deprecated compatibility carrier path.Example: Example text

Idid
stringstringRequired

Id value.Example: Use an existing record ID

Providerprovider
stringstringOptional

Provider value.Example: Example text

Source idsource_id
integerintegerRequired

Source id value.Example: Use an existing record ID

Operationoperation
stringstringRequired

Operation value.Example: FinancialStatement

Source groupsource_group
stringstringOptional

Source group value.Example: Example text

Category idcategory_id
stringstringRequired

Category id value.Example: Use an existing record ID

Title zhtitle_zh
stringstringRequired

Title zh value.Example: Example text

Title entitle_en
stringstringRequired

Title en value.Example: Example text

Description zhdescription_zh
stringstringOptional

Description zh value.Example: Example text

Asset tagsasset_tags
string[]string[]Optional

Asset tags value.Example: […]

Required planrequired_plan
free | plus | profree | plus | proOptional

Required plan value.Example: free

Plan policy statusplan_policy_status
stringstringRequired

Plan policy status value.Example: Example text

Http methodhttp_method
stringstringOptional

Http method value.Example: Example text

Http pathhttp_path
stringstringRequired

Http path value.Example: Example text

Contract statuscontract_status
stringstringOptional

Contract status value.Example: Example text

Coverage statuscoverage_status
stringstringRequired

Coverage status value.Example: Example text

Rights statusrights_status
stringstringRequired

Rights status value.Example: Example text

Watermarkwatermark
string | nullstring | nullOptional

Watermark value.Example: Example text

Last verified atlast_verified_at
stringstringOptional

Last verified at value.Example: Example text

Schema versionschema_version
stringstringOptional

Schema version value.Example: Example text

Inputsinputs
object[]object[]Required

Inputs value.Example: […]

Outputsoutputs
object[]object[]Required

Outputs value.Example: […]

CatalogPageobject
Itemsitems
CatalogOperation[]CatalogOperation[]Required

Items value.Example: […]

Totaltotal
integerintegerRequired

Total value.Example: 1

Pagepage
integerintegerRequired

Page value.Example: 1

Page sizepage_size
integerintegerRequired

Page size value.Example: 20

Schema versionschema_version
stringstringRequired

Schema version value.Example: Example text

ContentSourceobject
Operationoperation
stringstringRequired

Operation value.Example: FinancialStatement

Name zhname_zh
stringstringRequired

Name zh value.Example: Example text

Name enname_en
stringstringRequired

Name en value.Example: Example text

Kindkind
stringstringRequired

Kind value.Example: Example text

Required planrequired_plan
stringstringRequired

Required plan value.Example: Example text

Rights statusrights_status
stringstringRequired

Rights status value.Example: Example text

ContentItemobject
Idid
stringstringRequired

Id value.Example: Use an existing record ID

Sourcesource
stringstringRequired

Source value.Example: Example text

Source operationsource_operation
stringstringRequired

Source operation value.Example: Example text

Source item idsource_item_id
string | nullstring | nullOptional

Source item id value.Example: Use an existing record ID

Kindkind
news | announcement | research | qa | policynews | announcement | research | qa | policyRequired

Kind value.Example: news

Titletitle
stringstringRequired

Title value.Example: Example text

Summarysummary
string | nullstring | nullOptional

Summary value.Example: Example text

Bodybody
string | nullstring | nullOptional

Body value.Example: Example text

Body statusbody_status
available | restricted | link_only | missingavailable | restricted | link_only | missingRequired

Body status value.Example: available

Publisherpublisher
string | nullstring | nullOptional

Publisher value.Example: Example text

Source urlsource_url
string | nullstring | nullOptional

Source url value.Example: Example text

Published atpublished_at
string | nullstring | nullRequired

Published at value.Example: Example text

Published datepublished_date
string | nullstring | nullRequired

Published date value.Example: Example text

Time precisiontime_precision
second | date | unknownsecond | date | unknownRequired

Time precision value.Example: second

Ingested atingested_at
string<date-time>string<date-time>Required

Ingested at value.Example: 2026-09-30T15:00:00+08:00

Updated atupdated_at
string<date-time>string<date-time>Optional

Updated at value.Example: 2026-09-30T15:00:00+08:00

Entitiesentities
string[]string[]Required

Entities value.Example: […]

Revisionrevision
integerintegerRequired

Revision value.Example: 1

Content hashcontent_hash
stringstringOptional

Content hash value.Example: Example text

Rights scoperights_scope
stringstringRequired

Rights scope value.Example: Example text

Normalizer versionnormalizer_version
stringstringOptional

Normalizer version value.Example: Example text

ContentPageobject
Itemsitems
ContentItem[]ContentItem[]Required

Items value.Example: […]

Next cursornext_cursor
string | nullstring | nullRequired

Next cursor value.Example: Example text

As ofas_of
string<date-time>string<date-time>Required

As of value.Example: 2026-09-30T15:00:00+08:00

Page sizepage_size
integerintegerRequired

Page size value.Example: 20

LlmPolicyobject
Enabledenabled
booleanbooleanRequired

Enabled value.Example: true

Tokens per daytokens_per_day
integerintegerRequired

Tokens per day value.Example: 1

Max output tokensmax_output_tokens
integerintegerRequired

Max output tokens value.Example: 1

Max concurrent requestsmax_concurrent_requests
integerintegerRequired

Max concurrent requests value.Example: 1

ChatCompletionRequestobject
Modelmodel
stringstringRequired

Model value.Example: qwen3.8-max

Messagesmessages
object[]object[]Required

Messages value.Example: [{"role":"user","content":"Hello"}]

Max completion tokensmax_completion_tokens
integerintegerOptional

Max completion tokens value.Example: 128

Max tokensmax_tokens
integerintegerOptional

Alias for the complete output budget; cannot be supplied together with max_completion_tokens.Example: 128

Streamstream
booleanbooleanOptional

Stream value.Example: false

Stream optionsstream_options
objectobjectOptional

Stream options value.Example: {…}

Nn
integerintegerOptional

N value.Example: 1

Temperaturetemperature
numbernumberOptional

Temperature value.Example: 0.7

Top ptop_p
numbernumberOptional

Top p value.Example: 1

Stopstop
string | string[]string | string[]Optional

Stop value.Example: […]

Toolstools
object[]object[]Optional

Tools value.Example: […]

Tool choicetool_choice
string | objectstring | objectOptional

Tool choice value.Example: string

Parallel tool callsparallel_tool_calls
booleanbooleanOptional

Parallel tool calls value.Example: true

Response formatresponse_format
objectobjectOptional

Response format value.Example: {…}

Enable thinkingenable_thinking
booleanbooleanOptional

Enable thinking value.Example: true

ChatCompletionobject
Idid
stringstringRequired

Id value.Example: Use an existing record ID

Objectobject
stringstringRequired

Object value.Example: Example text

Createdcreated
integerintegerRequired

Created value.Example: 1

Modelmodel
stringstringRequired

Model value.Example: qwen3.8-max

Choiceschoices
object[]object[]Required

Choices value.Example: […]

Usageusage
objectobjectOptional

Usage value.Example: {…}

AgentCardobject
Namename
stringstringRequired

Name value.Example: Example name

Descriptiondescription
stringstringRequired

Description value.Example: Example text

Supported InterfacessupportedInterfaces
object[]object[]Required

Supported Interfaces value.Example: […]

Versionversion
stringstringRequired

Version value.Example: Example text

Capabilitiescapabilities
objectobjectRequired

Capabilities value.Example: {…}

Default Input ModesdefaultInputModes
string[]string[]Required

Default Input Modes value.Example: […]

Default Output ModesdefaultOutputModes
string[]string[]Required

Default Output Modes value.Example: […]

Skillsskills
object[]object[]Required

Skills value.Example: […]

SendAgentMessageRequestobject
Messagemessage
AgentMessageAgentMessageRequired

Message value.Example: {…}

Configurationconfiguration
AgentSendConfigurationAgentSendConfigurationOptional

Configuration value.Example: {…}

SendAgentMessageResponseobject
Tasktask
AgentTaskAgentTaskRequired

Task value.Example: {…}

AgentSendConfigurationobject
Accepted Output ModesacceptedOutputModes
text/markdown | application/json[]text/markdown | application/json[]Optional

Accepted Output Modes value.Example: […]

History LengthhistoryLength
integerintegerOptional

History Length value.Example: 1

AgentMessageobject
Message IdmessageId
string<uuid>string<uuid>Required

Message Id value.Example: Use an existing record ID

Rolerole
ROLE_USER | ROLE_AGENTROLE_USER | ROLE_AGENTRequired

Role value.Example: user

Partsparts
AgentPart[]AgentPart[]Required

Parts value.Example: […]

Context IdcontextId
string<uuid>string<uuid>Optional

Context Id value.Example: Use an existing record ID

Task IdtaskId
string<uuid>string<uuid>Optional

Task Id value.Example: Use an existing record ID

AgentPartobject | object

Fields vary by endpoint. See the example or run it to inspect the response.

AgentTaskStateTASK_STATE_SUBMITTED | TASK_STATE_WORKING | TASK_STATE_COMPLETED | TASK_STATE_FAILED | TASK_STATE_CANCELED

Fields vary by endpoint. See the example or run it to inspect the response.

AgentTaskStatusobject
Statestate
AgentTaskStateAgentTaskStateRequired

State value.Example: {…}

Timestamptimestamp
string<date-time>string<date-time>Required

Timestamp value.Example: 2026-09-30T15:00:00+08:00

Messagemessage
AgentMessageAgentMessageOptional

Message value.Example: {…}

AgentArtifactobject
Artifact IdartifactId
stringstringRequired

Artifact Id value.Example: Example text

Namename
stringstringRequired

Name value.Example: Example name

Partsparts
AgentPart[]AgentPart[]Required

Parts value.Example: […]

Extensionsextensions
string<uri>[]string<uri>[]Optional

Extensions value.Example: […]

Metadatametadata
objectobjectOptional

Metadata value.Example: {…}

AgentTaskobject
Idid
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Context IdcontextId
string<uuid>string<uuid>Required

Context Id value.Example: Use an existing record ID

Statusstatus
AgentTaskStatusAgentTaskStatusRequired

Status value.Example: {…}

Artifactsartifacts
AgentArtifact[]AgentArtifact[]Optional

Artifacts value.Example: […]

Historyhistory
AgentMessage[]AgentMessage[]Optional

History value.Example: […]

Metadatametadata
objectobjectRequired

Metadata value.Example: {…}

AgentTaskListobject
Taskstasks
AgentTask[]AgentTask[]Required

Tasks value.Example: […]

Next Page TokennextPageToken
stringstringOptional

Next Page Token value.Example: Example text

IdentityProvideremail | phone | wechat

Fields vary by endpoint. See the example or run it to inspect the response.

DatasetDefinitionobject
Dataset iddataset_id
stringstringRequired

Dataset id value.Example: Use an existing record ID

Namename
stringstringRequired

Name value.Example: Example name

Descriptiondescription
stringstringRequired

Description value.Example: Example text

Marketsmarkets
string[]string[]Required

Markets value.Example: […]

Asset classesasset_classes
string[]string[]Required

Asset classes value.Example: […]

Operation countoperation_count
integerintegerRequired

Operation count value.Example: 1

Capabilitiescapabilities
Capability[]Capability[]Required

Capabilities value.Example: […]

Normalizationnormalization
mixed | provider_envelopemixed | provider_envelopeRequired

Normalization value.Example: mixed

Rights statusrights_status
stringstringRequired

Rights status value.Example: Example text

Freshnessfreshness
stringstringRequired

Freshness value.Example: Example text

Contract versioncontract_version
stringstringRequired

Contract version value.Example: Example text

DatasetDetailobject

Fields vary by endpoint. See the example or run it to inspect the response.

DatasetReadinessobject
Dataset iddataset_id
stringstringRequired

Dataset id value.Example: Use an existing record ID

Contract statuscontract_status
stringstringRequired

Contract status value.Example: Example text

Delivery statusdelivery_status
stringstringRequired

Delivery status value.Example: Example text

Coverage statuscoverage_status
stringstringRequired

Coverage status value.Example: Example text

Rights statusrights_status
stringstringRequired

Rights status value.Example: Example text

Watermarkwatermark
null | stringnull | stringRequired

Watermark value.Example: null

Operation countoperation_count
integerintegerRequired

Operation count value.Example: 1

Observed atobserved_at
string<date-time>string<date-time>Required

Observed at value.Example: 2026-09-30T15:00:00+08:00

ResearchTemplateobject
Template idtemplate_id
stringstringRequired

Template id value.Example: Use an existing record ID

Versionversion
stringstringRequired

Version value.Example: Example text

Namename
stringstringRequired

Name value.Example: Example name

Descriptiondescription
stringstringRequired

Description value.Example: Example text

Required datasetsrequired_datasets
string[]string[]Required

Required datasets value.Example: […]

Required capabilitiesrequired_capabilities
Capability[]Capability[]Required

Required capabilities value.Example: […]

Output formatsoutput_formats
application/json | text/markdown | text/html[]application/json | text/markdown | text/html[]Required

Output formats value.Example: […]

Evidence requiredevidence_required
booleanbooleanRequired

Evidence required value.Example: true

Risk noticerisk_notice
stringstringRequired

Risk notice value.Example: Example text

FactorDefinitionobject
Idid
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant idtenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Namename
stringstringRequired

Name value.Example: Example name

Descriptiondescription
stringstringRequired

Description value.Example: Example text

Input datasetsinput_datasets
string[]string[]Required

Input datasets value.Example: […]

Universe ruleuniverse_rule
stringstringRequired

Universe rule value.Example: Example text

Created atcreated_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

CreateFactorDefinitionobject
Namename
stringstringRequired

Name value.Example: Example name

Descriptiondescription
stringstringOptional

Description value.Example: Example text

Input datasetsinput_datasets
string[]string[]Required

Input datasets value.Example: […]

Universe ruleuniverse_rule
stringstringRequired

Universe rule value.Example: Example text

FactorVersionobject
Idid
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Factor idfactor_id
string<uuid>string<uuid>Required

Factor id value.Example: Use an existing record ID

Version numberversion_number
integerintegerRequired

Version number value.Example: 1

Expressionexpression
stringstringRequired

Expression value.Example: Example text

Lookback dayslookback_days
integerintegerRequired

Lookback days value.Example: 1

Adjustmentadjustment
raw | forward | backwardraw | forward | backwardRequired

Adjustment value.Example: raw

Created atcreated_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

CreateFactorVersionobject
Expressionexpression
stringstringRequired

Expression value.Example: Example text

Lookback dayslookback_days
integerintegerRequired

Lookback days value.Example: 1

Adjustmentadjustment
raw | forward | backwardraw | forward | backwardOptional

Adjustment value.Example: raw

ExperimentKindresearch | factor

Fields vary by endpoint. See the example or run it to inspect the response.

ExperimentStatusplanned | running | succeeded | failed | cancelled

Fields vary by endpoint. See the example or run it to inspect the response.

ExperimentRunobject
Idid
string<uuid>string<uuid>Required

Id value.Example: Use an existing record ID

Tenant idtenant_id
string<uuid>string<uuid>Required

Tenant id value.Example: Use an existing record ID

Kindkind
ExperimentKindExperimentKindRequired

Kind value.Example: {…}

Namename
stringstringRequired

Name value.Example: Example name

Factor version idfactor_version_id
string | nullstring | nullRequired

Factor version id value.Example: Use an existing record ID

Research template idresearch_template_id
string | nullstring | nullRequired

Research template id value.Example: Use an existing record ID

Inputsinputs
objectobjectRequired

Inputs value.Example: {…}

Code refcode_ref
string | nullstring | nullRequired

Code ref value.Example: Example text

Data manifest refdata_manifest_ref
string | nullstring | nullRequired

Data manifest ref value.Example: Example text

Environmentenvironment
objectobjectRequired

Environment value.Example: {…}

Statusstatus
ExperimentStatusExperimentStatusRequired

Status value.Example: {…}

Resultresult
objectobjectRequired

Result value.Example: {…}

Created atcreated_at
string<date-time>string<date-time>Required

Created at value.Example: 2026-09-30T15:00:00+08:00

Updated atupdated_at
string<date-time>string<date-time>Required

Updated at value.Example: 2026-09-30T15:00:00+08:00

CreateExperimentRunobject
Kindkind
ExperimentKindExperimentKindRequired

Kind value.Example: {…}

Namename
stringstringRequired

Name value.Example: Example name

Factor version idfactor_version_id
string | nullstring | nullOptional

Factor version id value.Example: Use an existing record ID

Research template idresearch_template_id
string | nullstring | nullOptional

Research template id value.Example: Use an existing record ID

Inputsinputs
objectobjectOptional

Inputs value.Example: {…}

Code refcode_ref
string | nullstring | nullOptional

Code ref value.Example: Example text

Data manifest refdata_manifest_ref
string | nullstring | nullOptional

Data manifest ref value.Example: Example text

Environmentenvironment
objectobjectOptional

Environment value.Example: {…}

UpdateExperimentRunobject
Statusstatus
ExperimentStatusExperimentStatusRequired

Status value.Example: {…}

Resultresult
objectobjectOptional

Result value.Example: {…}

InstrumentIdstring

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.

Fields vary by endpoint. See the example or run it to inspect the response.

Decimalstring

Fields vary by endpoint. See the example or run it to inspect the response.

BarTimeframe1m | 5m | 15m | 30m | 1h | 1d | 1w | 1mo | 1q | 1y

Fields vary by endpoint. See the example or run it to inspect the response.

CacheStatushit | miss | mixed | bypass

Fields vary by endpoint. See the example or run it to inspect the response.

ResponseMetaobject
Request idrequest_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Schema versionschema_version
stringstringRequired

Schema version value.Example: Example text

Cache statuscache_status
CacheStatusCacheStatusRequired

Cache status value.Example: {…}

Sourcesource
sparkdata-market-data | sparkdata-control-planesparkdata-market-data | sparkdata-control-planeRequired

Source value.Example: sparkdata-market-data

Generated atgenerated_at
string<date-time>string<date-time>Required

Generated at value.Example: 2026-09-30T15:00:00+08:00

Instrumentobject
Instrument idinstrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Symbolsymbol
stringstringRequired

Symbol value.Example: 600519

Namename
string | nullstring | nullRequired

Name value.Example: Example name

Company namecompany_name
string | nullstring | nullRequired

Company name value.Example: Example text

Micmic
XSHG | XSHE | XBSEXSHG | XSHE | XBSERequired

Mic value.Example: XSHG

Asset classasset_class
equity | etf | indexequity | etf | indexRequired

Asset class value.Example: equity

Currencycurrency
stringstringRequired

Currency value.Example: CNY

Timezonetimezone
stringstringRequired

Timezone value.Example: Asia/Shanghai

Statusstatus
stringstringRequired

Status value.Example: Example text

Industryindustry
string | nullstring | nullRequired

Industry value.Example: Example text

Conceptsconcepts
string[]string[]Required

Concepts value.Example: […]

Provider dataprovider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

ProviderDataobject
Operationoperation
stringstringRequired

Exact operation name from the published source contract or dictionary service.Example: FinancialStatement

Rawraw
objectobjectRequired

Exact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}

Capabilitydiscovery | entities | market_data | fundamentals | ownership | events | analytics | economy | content

Fields vary by endpoint. See the example or run it to inspect the response.

ContractDataTypestring | string_array | number | number_array | date | date_array

Fields vary by endpoint. See the example or run it to inspect the response.

InputContractobject
Namename
stringstringRequired

Public parameter name accepted by SparkData.Example: Example name

Upstream nameupstream_name
stringstringRequired

Exact field name sent to the live upstream.Example: Example text

Display namedisplay_name
stringstringRequired

Display name value.Example: Example text

Data typedata_type
ContractDataTypeContractDataTypeRequired

Data type value.Example: {…}

Descriptiondescription
stringstringRequired

Description value.Example: Example text

Requiredrequired
booleanbooleanRequired

Required value.Example: true

Enum groupenum_group
string | nullstring | nullRequired

Live dictionary group when the workbook marks the input as enumerated.Example: Example text

Enum declarationenum_declaration
string | nullstring | nullRequired

Unmodified enumeration declaration from the workbook.Example: Example text

Fixed valuefixed_value
string | nullstring | nullRequired

Value marked as fixed by the workbook and inserted by SparkData.Example: Example text

OutputContractobject
Namename
stringstringRequired

Name value.Example: Example name

Display namedisplay_name
stringstringRequired

Display name value.Example: Example text

Data typedata_type
ContractDataTypeContractDataTypeRequired

Data type value.Example: {…}

Descriptiondescription
stringstringRequired

Description value.Example: Example text

OperationContractobject
Api idapi_id
integerintegerRequired

Api id value.Example: Use an existing record ID

Sheet namesheet_name
stringstringRequired

Sheet name value.Example: Example text

Display namedisplay_name
stringstringRequired

Display name value.Example: Example text

Operationoperation
stringstringRequired

Operation value.Example: FinancialStatement

Descriptiondescription
stringstringRequired

Description value.Example: Example text

Methodmethod
stringstringRequired

Method value.Example: Example text

Pathpath
stringstringRequired

Path value.Example: Example text

Capabilitycapability
CapabilityCapabilityRequired

Capability value.Example: {…}

Last modifiedlast_modified
stringstringRequired

Last modified value.Example: Example text

Inputsinputs
InputContract[]InputContract[]Required

Inputs value.Example: […]

Outputsoutputs
OutputContract[]OutputContract[]Required

Outputs value.Example: […]

OperationContractsResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
OperationContract[]OperationContract[]Required

Data value.Example: […]

AggregateQueryobject
Operationoperation
stringstringRequired

Case-sensitive Excel operation name, for example FinancialStatement.Example: FinancialStatement

Parametersparameters
objectobjectOptional

Exact Excel input names and values; undeclared fields are rejected.Example: {…}

EnumResolutionobject
Fieldfield
stringstringRequired

Field value.Example: Example text

Group namegroup_name
stringstringRequired

Group name value.Example: Example text

Inputinput
objectobjectRequired

Input value.Example: {…}

Codecode
stringstringRequired

Code value.Example: Example text

Captioncaption
string | nullstring | nullRequired

Caption value.Example: Example text

Provider dataprovider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

AggregateDataobject
Api idapi_id
integerintegerRequired

Api id value.Example: Use an existing record ID

Capabilitycapability
CapabilityCapabilityRequired

Capability value.Example: {…}

Operationoperation
stringstringRequired

Operation value.Example: FinancialStatement

Resolved parametersresolved_parameters
objectobjectRequired

Exact request sent upstream after fixed-value insertion and enum resolution.Example: {…}

Enum resolutionsenum_resolutions
EnumResolution[]EnumResolution[]Required

Enum resolutions value.Example: […]

Provider dataprovider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

AggregateResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
AggregateDataAggregateDataRequired

Data value.Example: {…}

PriceLevelobject
Priceprice
DecimalDecimalRequired

Price value.Example: {…}

Sizesize
DecimalDecimalRequired

Size value.Example: {…}

Quoteobject
Instrument idinstrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Event timeevent_time
string<date-time>string<date-time>Required

Event time value.Example: 2026-09-30T15:00:00+08:00

Last pricelast_price
DecimalDecimalRequired

Last price value.Example: {…}

Previous closeprevious_close
DecimalDecimalRequired

Previous close value.Example: {…}

Openopen
DecimalDecimalRequired

Open value.Example: {…}

Highhigh
DecimalDecimalRequired

High value.Example: {…}

Lowlow
DecimalDecimalRequired

Low value.Example: {…}

Changechange
Decimal | nullDecimal | nullRequired

Change value.Example: {…}

Change percentchange_percent
Decimal | nullDecimal | nullRequired

Change percent value.Example: {…}

Volumevolume
DecimalDecimalRequired

Volume value.Example: {…}

Turnoverturnover
DecimalDecimalRequired

Turnover value.Example: {…}

Trade statustrade_status
stringstringRequired

Trade status value.Example: Example text

Bid levelsbid_levels
PriceLevel[]PriceLevel[]Required

Bid levels value.Example: […]

Ask levelsask_levels
PriceLevel[]PriceLevel[]Required

Ask levels value.Example: […]

Provider dataprovider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

Barobject
Instrument idinstrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Event timeevent_time
string<date-time>string<date-time>Required

Start of the interval in UTC.Example: 2026-09-30T15:00:00+08:00

Trading datetrading_date
string | nullstring | nullRequired

Upstream trading or period-end date; null for derived intraday bars.Example: Example text

Timeframetimeframe
BarTimeframeBarTimeframeRequired

Timeframe value.Example: 1d

Openopen
DecimalDecimalRequired

Open value.Example: {…}

Highhigh
DecimalDecimalRequired

High value.Example: {…}

Lowlow
DecimalDecimalRequired

Low value.Example: {…}

Closeclose
DecimalDecimalRequired

Close value.Example: {…}

Previous closeprevious_close
Decimal | nullDecimal | nullRequired

Previous close value.Example: {…}

Volumevolume
DecimalDecimalRequired

Volume value.Example: {…}

Turnoverturnover
Decimal | nullDecimal | nullRequired

Turnover value.Example: {…}

Trade counttrade_count
integer | nullinteger | nullRequired

Trade count value.Example: 1

Suspendedsuspended
booleanbooleanRequired

Suspended value.Example: true

Adjustmentadjustment
raw | forward | backwardraw | forward | backwardRequired

All snapshot-derived intraday bars accept `raw` only. ETF and index bars also accept `raw` only for daily and longer periods. Equity daily and longer bars support upstream adjustments.Example: raw

Aggregation sourceaggregation_source
provider | snapshot_derived | daily_derivedprovider | snapshot_derived | daily_derivedRequired

Aggregation source value.Example: provider

Provider dataprovider_data
ProviderDataProviderDataRequired

Provider data value.Example: {…}

StreamControlobject
Control typecontrol_type
stream_end | heartbeat | reconnectstream_end | heartbeat | reconnectRequired

Control type value.Example: stream_end

Request idrequest_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Event timeevent_time
string<date-time>string<date-time>Required

Event time value.Example: 2026-09-30T15:00:00+08:00

Records sentrecords_sent
integerintegerOptional

Records sent value.Example: 1

MarketEventQuote | StreamControl

Fields vary by endpoint. See the example or run it to inspect the response.

BarStreamRecordBar | StreamControl

Fields vary by endpoint. See the example or run it to inspect the response.

AgentContextobject
Instrument idinstrument_id
InstrumentIdInstrumentIdRequired

Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519

Instrumentinstrument
InstrumentInstrumentRequired

Instrument value.Example: {…}

Latest quotelatest_quote
Quote | nullQuote | nullRequired

Latest quote value.Example: {…}

Barsbars
Bar[]Bar[]Required

Bars value.Example: […]

Upstream operationsupstream_operations
string[]string[]Required

Upstream operations value.Example: […]

AgentContextResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
AgentContextAgentContextRequired

Data value.Example: {…}

DatasetsResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
DatasetDefinition[]DatasetDefinition[]Required

Data value.Example: […]

DatasetDetailResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
DatasetDetailDatasetDetailRequired

Data value.Example: {…}

DataReadinessResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
DatasetReadiness[]DatasetReadiness[]Required

Data value.Example: […]

ResearchTemplatesResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
ResearchTemplate[]ResearchTemplate[]Required

Data value.Example: […]

FactorResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
FactorDefinitionFactorDefinitionRequired

Data value.Example: {…}

FactorsResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
FactorDefinition[]FactorDefinition[]Required

Data value.Example: […]

FactorVersionResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
FactorVersionFactorVersionRequired

Data value.Example: {…}

FactorVersionsResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
FactorVersion[]FactorVersion[]Required

Data value.Example: […]

ExperimentRunResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
ExperimentRunExperimentRunRequired

Data value.Example: {…}

ExperimentRunsResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
ExperimentRun[]ExperimentRun[]Required

Data value.Example: […]

InstrumentResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
InstrumentInstrumentRequired

Data value.Example: {…}

InstrumentResponseObjectobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
InstrumentInstrumentRequired

Data value.Example: {…}

BarsResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
Bar[]Bar[]Required

Data value.Example: […]

QuotesResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
Quote[]Quote[]Required

Data value.Example: […]

MeResponseobject
Metameta
ResponseMetaResponseMetaRequired

Meta value.Example: {…}

Datadata
objectobjectRequired

Data value.Example: {…}

InvalidParameterobject
Namename
stringstringRequired

Name value.Example: Example name

Reasonreason
stringstringRequired

Reason value.Example: Example text

Problemobject
Typetype
string<uri-reference>string<uri-reference>Required

Type value.Example: {…}

Titletitle
stringstringRequired

Title value.Example: Example text

Statusstatus
integerintegerRequired

Status value.Example: 1

Detaildetail
stringstringRequired

Detail value.Example: Example text

Request idrequest_id
string<uuid>string<uuid>Required

Request id value.Example: Use an existing record ID

Codecode
stringstringRequired

Code value.Example: Example text

Purchase product idpurchase_product_id
stringstringOptional

Optional annual subscription to purchase when code is feature_not_purchased.Example: Use an existing record ID

Invalid parametersinvalid_parameters
InvalidParameter[]InvalidParameter[]Required

Invalid parameters value.Example: […]

Ready to give your agent real market data?

Claim an API key, install the Skill, and ask your research question directly.

Start now↗Download OpenAPI YAML