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.
GET/v1/modelsList authorized language models+
Requires llm:invoke. Does not consume market-data request allowance or model tokens.
Parameters
This operation has no parameters.
Response
OpenAI-compatible model list.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectSuccess response fields
objectstringRequiredObject value.Example: Example text
dataobject[]RequiredData value.Example: […]
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.
Parameters
This operation has no parameters.
Request body
Required
application/json · ChatCompletionRequestmodelstringRequiredModel value.Example: qwen3.8-max
messagesobject[]RequiredMessages value.Example: [{"role":"user","content":"Hello"}]
max_completion_tokensintegerOptionalMax completion tokens value.Example: 128
max_tokensintegerOptionalAlias for the complete output budget; cannot be supplied together with max_completion_tokens.Example: 128
streambooleanOptionalStream value.Example: false
stream_optionsobjectOptionalStream options value.Example: {…}
nintegerOptionalN value.Example: 1
temperaturenumberOptionalTemperature value.Example: 0.7
top_pnumberOptionalTop p value.Example: 1
stopstring | string[]OptionalStop value.Example: […]
toolsobject[]OptionalTools value.Example: […]
tool_choicestring | objectOptionalTool choice value.Example: string
parallel_tool_callsbooleanOptionalParallel tool calls value.Example: true
response_formatobjectOptionalResponse format value.Example: {…}
enable_thinkingbooleanOptionalEnable thinking value.Example: true
{
"model": "qwen3.8-max",
"messages": [
{
"role": "user",
"content": "Introduce yourself in one sentence."
}
],
"max_completion_tokens": 1024,
"stream": false
}Response
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 · stringOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectOpenAI-style error. Local budget exhaustion uses daily_token_limit_exceeded and Retry-After; provider failures have upstream-prefixed codes.
application/json · objectSuccess response fields
idstringRequiredId value.Example: Use an existing record ID
objectstringRequiredObject value.Example: Example text
createdintegerRequiredCreated value.Example: 1
modelstringRequiredModel value.Example: qwen3.8-max
choicesobject[]RequiredChoices value.Example: […]
usageobjectOptionalUsage value.Example: {…}
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.
GET/v1/instruments/{instrument_id}Get a normalized equity, ETF, or index+
Parameters
instrument_idpathInstrumentIdRequiredInstrument id value.Example: XSHG:600570
Response
Instrument found
application/json · InstrumentResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataInstrumentRequiredData value.Example: {…}
data.instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
data.symbolstringRequiredSymbol value.Example: 600519
data.namestring | nullRequiredName value.Example: Example name
data.company_namestring | nullRequiredCompany name value.Example: Example text
data.micXSHG | XSHE | XBSERequiredMic value.Example: XSHG
data.asset_classequity | etf | indexRequiredAsset class value.Example: equity
data.currencystringRequiredCurrency value.Example: CNY
data.timezonestringRequiredTimezone value.Example: Asia/Shanghai
data.statusstringRequiredStatus value.Example: Example text
data.industrystring | nullRequiredIndustry value.Example: Example text
data.conceptsstring[]RequiredConcepts value.Example: […]
data.provider_dataProviderDataRequiredProvider data value.Example: {…}
data.provider_data.operationstringRequiredExact operation name from the published source contract or dictionary service.Example: FinancialStatement
data.provider_data.rawobjectRequiredExact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}
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.
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`.
Parameters
symbolsqueryInstrumentId[]RequiredComma-separated canonical IDs; tenant limits apply.Example: ["XSHG:600570","XSHE:000001"]
startquerystring<date-time>RequiredInclusive UTC timestamp.Example: 2026-09-01T00:00:00+08:00
endquerystring<date-time>RequiredExclusive UTC timestamp; tenant range limits apply.Example: 2026-09-30T23:59:59+08:00
timeframequeryBarTimeframeOptionalTimeframe value.Example: 1d
adjustmentqueryraw | forward | backwardOptionalAll 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
feedqueryauto | realtime | delayedOptionalCompatibility routing hint; the currently deployed source exposes one feed.Example: auto
sortqueryasc | descOptionalSort value.Example: asc
Response
Bars or an NDJSON bar stream
application/json · BarsResponse / application/x-ndjson · BarStreamRecordInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataBar[]RequiredData value.Example: […]
data[].instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
data[].event_timestring<date-time>RequiredStart of the interval in UTC.Example: 2026-09-30T15:00:00+08:00
data[].trading_datestring | nullRequiredUpstream trading or period-end date; null for derived intraday bars.Example: Example text
data[].timeframeBarTimeframeRequiredTimeframe value.Example: 1d
data[].openDecimalRequiredOpen value.Example: {…}
data[].highDecimalRequiredHigh value.Example: {…}
data[].lowDecimalRequiredLow value.Example: {…}
data[].closeDecimalRequiredClose value.Example: {…}
data[].previous_closeDecimal | nullRequiredPrevious close value.Example: {…}
data[].volumeDecimalRequiredVolume value.Example: {…}
data[].turnoverDecimal | nullRequiredTurnover value.Example: {…}
data[].trade_countinteger | nullRequiredTrade count value.Example: 1
data[].suspendedbooleanRequiredSuspended value.Example: true
data[].adjustmentraw | forward | backwardRequiredAll 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
data[].aggregation_sourceprovider | snapshot_derived | daily_derivedRequiredAggregation source value.Example: provider
data[].provider_dataProviderDataRequiredProvider data value.Example: {…}
data[].provider_data.operationstringRequiredExact operation name from the published source contract or dictionary service.Example: FinancialStatement
data[].provider_data.rawobjectRequiredExact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}
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+
Parameters
symbolsqueryInstrumentId[]RequiredComma-separated canonical IDs; tenant limits apply.Example: ["XSHG:600570","XSHE:000001"]
feedqueryauto | realtime | delayedOptionalCompatibility routing hint; the currently deployed source exposes one feed.Example: auto
Response
Latest quotes
application/json · QuotesResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataQuote[]RequiredData value.Example: […]
data[].instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
data[].event_timestring<date-time>RequiredEvent time value.Example: 2026-09-30T15:00:00+08:00
data[].last_priceDecimalRequiredLast price value.Example: {…}
data[].previous_closeDecimalRequiredPrevious close value.Example: {…}
data[].openDecimalRequiredOpen value.Example: {…}
data[].highDecimalRequiredHigh value.Example: {…}
data[].lowDecimalRequiredLow value.Example: {…}
data[].changeDecimal | nullRequiredChange value.Example: {…}
data[].change_percentDecimal | nullRequiredChange percent value.Example: {…}
data[].volumeDecimalRequiredVolume value.Example: {…}
data[].turnoverDecimalRequiredTurnover value.Example: {…}
data[].trade_statusstringRequiredTrade status value.Example: Example text
data[].bid_levelsPriceLevel[]RequiredBid levels value.Example: […]
data[].bid_levels[].priceDecimalRequiredPrice value.Example: {…}
data[].bid_levels[].sizeDecimalRequiredSize value.Example: {…}
data[].ask_levelsPriceLevel[]RequiredAsk levels value.Example: […]
data[].ask_levels[].priceDecimalRequiredPrice value.Example: {…}
data[].ask_levels[].sizeDecimalRequiredSize value.Example: {…}
data[].provider_dataProviderDataRequiredProvider data value.Example: {…}
data[].provider_data.operationstringRequiredExact operation name from the published source contract or dictionary service.Example: FinancialStatement
data[].provider_data.rawobjectRequiredExact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}
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.
Parameters
symbolsqueryInstrumentId[]RequiredComma-separated canonical IDs; tenant limits apply.Example: ["XSHG:600570","XSHE:000001"]
feedqueryauto | realtime | delayedOptionalCompatibility routing hint; the currently deployed source exposes one feed.Example: auto
heartbeat_secondsqueryintegerOptionalHeartbeat seconds value.Example: 20
Response
SSE quote stream
text/event-stream · MarketEventInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
Fields vary by endpoint. See the example or run it to inspect the response.
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.
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.
Parameters
instrument_idpathInstrumentIdRequiredInstrument id value.Example: XSHG:600570
startquerystring<date-time>OptionalInclusive UTC timestamp; must be paired with `end`.Example: 2026-09-01T00:00:00+08:00
endquerystring<date-time>OptionalExclusive UTC timestamp; must be paired with `start`.Example: 2026-09-30T23:59:59+08:00
timeframequeryBarTimeframeOptionalTimeframe value.Example: 1d
adjustmentqueryraw | forward | backwardOptionalAll 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
sortqueryasc | descOptionalSort value.Example: asc
Response
Agent context assembled from reusable cached resources
application/json · AgentContextResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataAgentContextRequiredData value.Example: {…}
data.instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
data.instrumentInstrumentRequiredInstrument value.Example: {…}
data.instrument.instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
data.instrument.symbolstringRequiredSymbol value.Example: 600519
data.instrument.namestring | nullRequiredName value.Example: Example name
data.instrument.company_namestring | nullRequiredCompany name value.Example: Example text
data.instrument.micXSHG | XSHE | XBSERequiredMic value.Example: XSHG
data.instrument.asset_classequity | etf | indexRequiredAsset class value.Example: equity
data.instrument.currencystringRequiredCurrency value.Example: CNY
data.instrument.timezonestringRequiredTimezone value.Example: Asia/Shanghai
data.instrument.statusstringRequiredStatus value.Example: Example text
data.instrument.industrystring | nullRequiredIndustry value.Example: Example text
data.instrument.conceptsstring[]RequiredConcepts value.Example: […]
data.instrument.provider_dataProviderDataRequiredProvider data value.Example: {…}
data.latest_quoteQuote | nullRequiredLatest quote value.Example: {…}
data.barsBar[]RequiredBars value.Example: […]
data.bars[].instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
data.bars[].event_timestring<date-time>RequiredStart of the interval in UTC.Example: 2026-09-30T15:00:00+08:00
data.bars[].trading_datestring | nullRequiredUpstream trading or period-end date; null for derived intraday bars.Example: Example text
data.bars[].timeframeBarTimeframeRequiredTimeframe value.Example: 1d
data.bars[].openDecimalRequiredOpen value.Example: {…}
data.bars[].highDecimalRequiredHigh value.Example: {…}
data.bars[].lowDecimalRequiredLow value.Example: {…}
data.bars[].closeDecimalRequiredClose value.Example: {…}
data.bars[].previous_closeDecimal | nullRequiredPrevious close value.Example: {…}
data.bars[].volumeDecimalRequiredVolume value.Example: {…}
data.bars[].turnoverDecimal | nullRequiredTurnover value.Example: {…}
data.bars[].trade_countinteger | nullRequiredTrade count value.Example: 1
data.bars[].suspendedbooleanRequiredSuspended value.Example: true
data.bars[].adjustmentraw | forward | backwardRequiredAll 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
data.bars[].aggregation_sourceprovider | snapshot_derived | daily_derivedRequiredAggregation source value.Example: provider
data.bars[].provider_dataProviderDataRequiredProvider data value.Example: {…}
data.upstream_operationsstring[]RequiredUpstream operations value.Example: […]
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.
GET/v1/data-readinessReturn observed readiness without inventing coverage, rights, or watermarks+
Parameters
This operation has no parameters.
Response
Observed catalog readiness
application/json · DataReadinessResponseMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataDatasetReadiness[]RequiredData value.Example: […]
data[].dataset_idstringRequiredDataset id value.Example: Use an existing record ID
data[].contract_statusstringRequiredContract status value.Example: Example text
data[].delivery_statusstringRequiredDelivery status value.Example: Example text
data[].coverage_statusstringRequiredCoverage status value.Example: Example text
data[].rights_statusstringRequiredRights status value.Example: Example text
data[].watermarknull | stringRequiredWatermark value.Example: null
data[].operation_countintegerRequiredOperation count value.Example: 1
data[].observed_atstring<date-time>RequiredObserved at value.Example: 2026-09-30T15:00:00+08:00
curl --request GET \
'https://spark-data.cn/v1/data-readiness' \
--header "Authorization: Bearer $SPARKDATA_API_KEY"GET/v1/catalog/categoriesList bilingual product categories+
Parameters
If-None-MatchheaderstringOptionalIf-None-Match value.Example: Example text
Response
Successful JSON response.
application/json · objectPublic metadata is semantically unchanged; no response body.
Invalid request
application/problem+json · ProblemSuccess response fields
metaobjectRequiredMeta value.Example: {…}
dataCatalogCategory[]RequiredData value.Example: […]
curl --request GET \
'https://spark-data.cn/v1/catalog/categories'GET/v1/catalog/operationsSearch individual data operations+
Parameters
qquerystringOptionalQ value.Example: Moutai
categoryquerystringOptionalCategory value.Example: Example text
assetquerystringOptionalAsset value.Example: Example text
capabilityquerystringOptionalCapability value.Example: Example text
required_planquerystringOptionalRequired plan value.Example: Example text
pagequeryintegerOptionalPage value.Example: 1
page_sizequeryintegerOptionalPage size value.Example: 20
If-None-MatchheaderstringOptionalIf-None-Match value.Example: Example text
Response
Successful JSON response.
application/json · objectPublic metadata is semantically unchanged; no response body.
Invalid request
application/problem+json · ProblemSuccess response fields
metaobjectRequiredMeta value.Example: {…}
dataCatalogPageRequiredData value.Example: {…}
curl --request GET \
'https://spark-data.cn/v1/catalog/operations'GET/v1/catalog/operations/{id}Describe a product operation and its exact contract+
Parameters
idpathstringRequiredId value.Example: Use an existing record ID
If-None-MatchheaderstringOptionalIf-None-Match value.Example: Example text
Response
Successful JSON response.
application/json · objectPublic metadata is semantically unchanged; no response body.
Resource not found
application/problem+json · ProblemSuccess response fields
metaobjectRequiredMeta value.Example: {…}
dataCatalogOperationRequiredData value.Example: {…}
curl --request GET \
'https://spark-data.cn/v1/catalog/operations/value'Research
Published research templates and tenant experiment metadata; no hosted execution.
GET/v1/research/templatesList six evidence-oriented research template definitions+
Parameters
This operation has no parameters.
Response
Published research templates
application/json · ResearchTemplatesResponseMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataResearchTemplate[]RequiredData value.Example: […]
data[].template_idstringRequiredTemplate id value.Example: Use an existing record ID
data[].versionstringRequiredVersion value.Example: Example text
data[].namestringRequiredName value.Example: Example name
data[].descriptionstringRequiredDescription value.Example: Example text
data[].required_datasetsstring[]RequiredRequired datasets value.Example: […]
data[].required_capabilitiesCapability[]RequiredRequired capabilities value.Example: […]
data[].output_formatsapplication/json | text/markdown | text/html[]RequiredOutput formats value.Example: […]
data[].evidence_requiredbooleanRequiredEvidence required value.Example: true
data[].risk_noticestringRequiredRisk notice value.Example: Example text
curl --request GET \
'https://spark-data.cn/v1/research/templates' \
--header "Authorization: Bearer $SPARKDATA_API_KEY"GET/v1/experiment-runsList tenant experiment metadata+
Parameters
This operation has no parameters.
Response
Experiment records
application/json · ExperimentRunsResponseMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataExperimentRun[]RequiredData value.Example: […]
data[].idstring<uuid>RequiredId value.Example: Use an existing record ID
data[].tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
data[].kindExperimentKindRequiredKind value.Example: {…}
data[].namestringRequiredName value.Example: Example name
data[].factor_version_idstring | nullRequiredFactor version id value.Example: Use an existing record ID
data[].research_template_idstring | nullRequiredResearch template id value.Example: Use an existing record ID
data[].inputsobjectRequiredInputs value.Example: {…}
data[].code_refstring | nullRequiredCode ref value.Example: Example text
data[].data_manifest_refstring | nullRequiredData manifest ref value.Example: Example text
data[].environmentobjectRequiredEnvironment value.Example: {…}
data[].statusExperimentStatusRequiredStatus value.Example: {…}
data[].resultobjectRequiredResult value.Example: {…}
data[].created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
data[].updated_atstring<date-time>RequiredUpdated at value.Example: 2026-09-30T15:00:00+08:00
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+
Parameters
This operation has no parameters.
Request body
Required
application/json · CreateExperimentRunkindExperimentKindRequiredKind value.Example: {…}
namestringRequiredName value.Example: Example name
factor_version_idstring | nullOptionalFactor version id value.Example: Use an existing record ID
research_template_idstring | nullOptionalResearch template id value.Example: Use an existing record ID
inputsobjectOptionalInputs value.Example: {…}
code_refstring | nullOptionalCode ref value.Example: Example text
data_manifest_refstring | nullOptionalData manifest ref value.Example: Example text
environmentobjectOptionalEnvironment value.Example: {…}
{
"kind": "research",
"name": "Console experiment"
}Response
Experiment metadata created
application/json · ExperimentRunResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataExperimentRunRequiredData value.Example: {…}
data.idstring<uuid>RequiredId value.Example: Use an existing record ID
data.tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
data.kindExperimentKindRequiredKind value.Example: {…}
data.namestringRequiredName value.Example: Example name
data.factor_version_idstring | nullRequiredFactor version id value.Example: Use an existing record ID
data.research_template_idstring | nullRequiredResearch template id value.Example: Use an existing record ID
data.inputsobjectRequiredInputs value.Example: {…}
data.code_refstring | nullRequiredCode ref value.Example: Example text
data.data_manifest_refstring | nullRequiredData manifest ref value.Example: Example text
data.environmentobjectRequiredEnvironment value.Example: {…}
data.statusExperimentStatusRequiredStatus value.Example: {…}
data.resultobjectRequiredResult value.Example: {…}
data.created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
data.updated_atstring<date-time>RequiredUpdated at value.Example: 2026-09-30T15:00:00+08:00
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+
Parameters
run_idpathstring<uuid>RequiredRun id value.Example: Use an existing record ID
Response
Experiment metadata
application/json · ExperimentRunResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataExperimentRunRequiredData value.Example: {…}
data.idstring<uuid>RequiredId value.Example: Use an existing record ID
data.tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
data.kindExperimentKindRequiredKind value.Example: {…}
data.namestringRequiredName value.Example: Example name
data.factor_version_idstring | nullRequiredFactor version id value.Example: Use an existing record ID
data.research_template_idstring | nullRequiredResearch template id value.Example: Use an existing record ID
data.inputsobjectRequiredInputs value.Example: {…}
data.code_refstring | nullRequiredCode ref value.Example: Example text
data.data_manifest_refstring | nullRequiredData manifest ref value.Example: Example text
data.environmentobjectRequiredEnvironment value.Example: {…}
data.statusExperimentStatusRequiredStatus value.Example: {…}
data.resultobjectRequiredResult value.Example: {…}
data.created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
data.updated_atstring<date-time>RequiredUpdated at value.Example: 2026-09-30T15:00:00+08:00
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+
Parameters
run_idpathstring<uuid>RequiredRun id value.Example: Use an existing record ID
Request body
Required
application/json · UpdateExperimentRunstatusExperimentStatusRequiredStatus value.Example: {…}
resultobjectOptionalResult value.Example: {…}
{
"status": "planned"
}Response
Experiment metadata updated
application/json · ExperimentRunResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemResource state prevents the operation
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataExperimentRunRequiredData value.Example: {…}
data.idstring<uuid>RequiredId value.Example: Use an existing record ID
data.tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
data.kindExperimentKindRequiredKind value.Example: {…}
data.namestringRequiredName value.Example: Example name
data.factor_version_idstring | nullRequiredFactor version id value.Example: Use an existing record ID
data.research_template_idstring | nullRequiredResearch template id value.Example: Use an existing record ID
data.inputsobjectRequiredInputs value.Example: {…}
data.code_refstring | nullRequiredCode ref value.Example: Example text
data.data_manifest_refstring | nullRequiredData manifest ref value.Example: Example text
data.environmentobjectRequiredEnvironment value.Example: {…}
data.statusExperimentStatusRequiredStatus value.Example: {…}
data.resultobjectRequiredResult value.Example: {…}
data.created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
data.updated_atstring<date-time>RequiredUpdated at value.Example: 2026-09-30T15:00:00+08:00
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.
GET/v1/factorsList tenant factor definitions+
Parameters
This operation has no parameters.
Response
Factor definitions
application/json · FactorsResponseMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataFactorDefinition[]RequiredData value.Example: […]
data[].idstring<uuid>RequiredId value.Example: Use an existing record ID
data[].tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
data[].namestringRequiredName value.Example: Example name
data[].descriptionstringRequiredDescription value.Example: Example text
data[].input_datasetsstring[]RequiredInput datasets value.Example: […]
data[].universe_rulestringRequiredUniverse rule value.Example: Example text
data[].created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
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+
Parameters
This operation has no parameters.
Request body
Required
application/json · CreateFactorDefinitionnamestringRequiredName value.Example: Example name
descriptionstringOptionalDescription value.Example: Example text
input_datasetsstring[]RequiredInput datasets value.Example: […]
universe_rulestringRequiredUniverse rule value.Example: Example text
{
"name": "Console factor",
"input_datasets": [
"cn-equity"
],
"universe_rule": "Active A shares"
}Response
Factor definition created
application/json · FactorResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource state prevents the operation
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataFactorDefinitionRequiredData value.Example: {…}
data.idstring<uuid>RequiredId value.Example: Use an existing record ID
data.tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
data.namestringRequiredName value.Example: Example name
data.descriptionstringRequiredDescription value.Example: Example text
data.input_datasetsstring[]RequiredInput datasets value.Example: […]
data.universe_rulestringRequiredUniverse rule value.Example: Example text
data.created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
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+
Parameters
factor_idpathstring<uuid>RequiredFactor id value.Example: Use an existing record ID
Response
Factor definition
application/json · FactorResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataFactorDefinitionRequiredData value.Example: {…}
data.idstring<uuid>RequiredId value.Example: Use an existing record ID
data.tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
data.namestringRequiredName value.Example: Example name
data.descriptionstringRequiredDescription value.Example: Example text
data.input_datasetsstring[]RequiredInput datasets value.Example: […]
data.universe_rulestringRequiredUniverse rule value.Example: Example text
data.created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
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+
Parameters
factor_idpathstring<uuid>RequiredFactor id value.Example: Use an existing record ID
Response
Factor versions
application/json · FactorVersionsResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataFactorVersion[]RequiredData value.Example: […]
data[].idstring<uuid>RequiredId value.Example: Use an existing record ID
data[].factor_idstring<uuid>RequiredFactor id value.Example: Use an existing record ID
data[].version_numberintegerRequiredVersion number value.Example: 1
data[].expressionstringRequiredExpression value.Example: Example text
data[].lookback_daysintegerRequiredLookback days value.Example: 1
data[].adjustmentraw | forward | backwardRequiredAdjustment value.Example: raw
data[].created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
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+
Parameters
factor_idpathstring<uuid>RequiredFactor id value.Example: Use an existing record ID
Request body
Required
application/json · CreateFactorVersionexpressionstringRequiredExpression value.Example: Example text
lookback_daysintegerRequiredLookback days value.Example: 1
adjustmentraw | forward | backwardOptionalAdjustment value.Example: raw
{
"expression": "return_20d",
"lookback_days": 20
}Response
Factor version created
application/json · FactorVersionResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataFactorVersionRequiredData value.Example: {…}
data.idstring<uuid>RequiredId value.Example: Use an existing record ID
data.factor_idstring<uuid>RequiredFactor id value.Example: Use an existing record ID
data.version_numberintegerRequiredVersion number value.Example: 1
data.expressionstringRequiredExpression value.Example: Example text
data.lookback_daysintegerRequiredLookback days value.Example: 1
data.adjustmentraw | forward | backwardRequiredAdjustment value.Example: raw
data.created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
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.
GET/.well-known/agent-card.jsonDiscover the SparkData online research Agent+
Parameters
This operation has no parameters.
Response
Public A2A Agent Card
application/json · AgentCardSuccess response fields
namestringRequiredName value.Example: Example name
descriptionstringRequiredDescription value.Example: Example text
supportedInterfacesobject[]RequiredSupported Interfaces value.Example: […]
versionstringRequiredVersion value.Example: Example text
capabilitiesobjectRequiredCapabilities value.Example: {…}
defaultInputModesstring[]RequiredDefault Input Modes value.Example: […]
defaultOutputModesstring[]RequiredDefault Output Modes value.Example: […]
skillsobject[]RequiredSkills value.Example: […]
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+
Parameters
A2A-VersionheaderstringRequiredThis interface supports A2A protocol version 1.0 only.Example: Example text
A2A-ExtensionsheaderstringOptionalComma-separated optional A2A extension URIs selected by the client.Example: Example text
X-CSRF-TokenheaderstringRequiredToken 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 · SendAgentMessageRequestmessageAgentMessageRequiredMessage value.Example: {…}
message.messageIdstring<uuid>RequiredMessage Id value.Example: Use an existing record ID
message.roleROLE_USER | ROLE_AGENTRequiredRole value.Example: user
message.partsAgentPart[]RequiredParts value.Example: […]
message.contextIdstring<uuid>OptionalContext Id value.Example: Use an existing record ID
message.taskIdstring<uuid>OptionalTask Id value.Example: Use an existing record ID
configurationAgentSendConfigurationOptionalConfiguration value.Example: {…}
configuration.acceptedOutputModestext/markdown | application/json[]OptionalAccepted Output Modes value.Example: […]
configuration.historyLengthintegerOptionalHistory Length value.Example: 1
Response
Completed or failed Task envelope
application/a2a+json · SendAgentMessageResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource state prevents the operation
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
Fields vary by endpoint. See the example or run it to inspect the response.
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.
Parameters
A2A-VersionheaderstringRequiredThis interface supports A2A protocol version 1.0 only.Example: Example text
A2A-ExtensionsheaderstringOptionalComma-separated optional A2A extension URIs selected by the client.Example: Example text
X-CSRF-TokenheaderstringRequiredToken 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 · SendAgentMessageRequestmessageAgentMessageRequiredMessage value.Example: {…}
message.messageIdstring<uuid>RequiredMessage Id value.Example: Use an existing record ID
message.roleROLE_USER | ROLE_AGENTRequiredRole value.Example: user
message.partsAgentPart[]RequiredParts value.Example: […]
message.contextIdstring<uuid>OptionalContext Id value.Example: Use an existing record ID
message.taskIdstring<uuid>OptionalTask Id value.Example: Use an existing record ID
configurationAgentSendConfigurationOptionalConfiguration value.Example: {…}
configuration.acceptedOutputModestext/markdown | application/json[]OptionalAccepted Output Modes value.Example: […]
configuration.historyLengthintegerOptionalHistory Length value.Example: 1
Response
Ordered A2A SSE events ending at a terminal Task state
text/event-stream · stringInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource state prevents the operation
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
Fields vary by endpoint. See the example or run it to inspect the response.
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+
Parameters
A2A-VersionheaderstringRequiredThis interface supports A2A protocol version 1.0 only.Example: Example text
contextIdquerystring<uuid>OptionalContext Id value.Example: Use an existing record ID
pageSizequeryintegerOptionalPage Size value.Example: 50
Response
Owner-scoped Task page
application/a2a+json · AgentTaskListInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
Fields vary by endpoint. See the example or run it to inspect the response.
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+
Parameters
A2A-VersionheaderstringRequiredThis interface supports A2A protocol version 1.0 only.Example: Example text
idpathstring<uuid>RequiredId value.Example: Use an existing record ID
Response
Current Task snapshot
application/a2a+json · AgentTaskInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemResource not found
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
Fields vary by endpoint. See the example or run it to inspect the response.
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+
Parameters
A2A-VersionheaderstringRequiredThis interface supports A2A protocol version 1.0 only.Example: Example text
A2A-ExtensionsheaderstringOptionalComma-separated optional A2A extension URIs selected by the client.Example: Example text
X-CSRF-TokenheaderstringRequiredToken returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text
idpathstring<uuid>RequiredId value.Example: Use an existing record ID
Response
Current Task followed by ordered SSE updates
text/event-stream · stringInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemResource state prevents the operation
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
Fields vary by endpoint. See the example or run it to inspect the response.
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+
Parameters
A2A-VersionheaderstringRequiredThis interface supports A2A protocol version 1.0 only.Example: Example text
X-CSRF-TokenheaderstringRequiredToken returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text
idpathstring<uuid>RequiredId value.Example: Use an existing record ID
Request body
Optional
application/a2a+json · objectFields vary by endpoint. See the example or run it to inspect the response.
Response
Canceled Task snapshot
application/a2a+json · AgentTaskInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemResource state prevents the operation
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
Fields vary by endpoint. See the example or run it to inspect the response.
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.
GET/v1/content/sourcesList published content source operations+
Parameters
If-None-MatchheaderstringOptionalIf-None-Match value.Example: Example text
Response
Successful JSON response.
application/json · objectPublic metadata is semantically unchanged; no response body.
Invalid request
application/problem+json · ProblemSuccess response fields
metaobjectRequiredMeta value.Example: {…}
dataContentSource[]RequiredData value.Example: […]
curl --request GET \
'https://spark-data.cn/v1/content/sources'GET/v1/content/itemsRead the current workspace content index+
Parameters
qquerystringOptionalQ value.Example: Moutai
kindquerystringOptionalKind value.Example: Example text
operationquerystringOptionalOperation value.Example: FinancialStatement
publisherquerystringOptionalPublisher value.Example: Example text
entityquerystringOptionalEntity value.Example: Example text
startquerystringOptionalStart value.Example: 2026-09-01T00:00:00+08:00
endquerystringOptionalEnd value.Example: 2026-09-30T23:59:59+08:00
cursorquerystringOptionalCursor value.Example: Example text
page_sizequeryintegerOptionalPage size value.Example: 20
Response
Successful JSON response.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaobjectRequiredMeta value.Example: {…}
dataContentPageRequiredData value.Example: {…}
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+
Parameters
idpathstringRequiredId value.Example: Use an existing record ID
Response
Successful JSON response.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaobjectRequiredMeta value.Example: {…}
dataContentItemRequiredData value.Example: {…}
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.
Parameters
This operation has no parameters.
Request body
Required
application/json · AggregateQueryoperationstringRequiredCase-sensitive Excel operation name, for example FinancialStatement.Example: FinancialStatement
parametersobjectOptionalExact Excel input names and values; undeclared fields are rejected.Example: {…}
{
"operation": "NewsInfoList",
"parameters": {
"pageNo": 1,
"pageSize": 30
}
}Response
Successful JSON response.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaobjectRequiredMeta value.Example: {…}
dataContentItem[]RequiredData value.Example: […]
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.
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.
Parameters
operationpathstringRequiredOperation value.Example: FinancialStatement
Request body
Required
application/json · objectparametersobjectOptionalParameters value.Example: {…}
{
"parameters": {
"stockObject": [
"贵州茅台"
],
"finStatementSubject": [
"资产总计"
]
}
}Response
Complete upstream response plus resolved enum inputs and cache metadata
application/json · AggregateResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemTenant API-key rate limit exceeded
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
meta.request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
meta.schema_versionstringRequiredSchema version value.Example: Example text
meta.cache_statusCacheStatusRequiredCache status value.Example: {…}
meta.sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
meta.generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
dataAggregateDataRequiredData value.Example: {…}
data.api_idintegerRequiredApi id value.Example: Use an existing record ID
data.capabilityCapabilityRequiredCapability value.Example: {…}
data.operationstringRequiredOperation value.Example: FinancialStatement
data.resolved_parametersobjectRequiredExact request sent upstream after fixed-value insertion and enum resolution.Example: {…}
data.enum_resolutionsEnumResolution[]RequiredEnum resolutions value.Example: […]
data.enum_resolutions[].fieldstringRequiredField value.Example: Example text
data.enum_resolutions[].group_namestringRequiredGroup name value.Example: Example text
data.enum_resolutions[].inputobjectRequiredInput value.Example: {…}
data.enum_resolutions[].codestringRequiredCode value.Example: Example text
data.enum_resolutions[].captionstring | nullRequiredCaption value.Example: Example text
data.enum_resolutions[].provider_dataProviderDataRequiredProvider data value.Example: {…}
data.provider_dataProviderDataRequiredProvider data value.Example: {…}
data.provider_data.operationstringRequiredExact operation name from the published source contract or dictionary service.Example: FinancialStatement
data.provider_data.rawobjectRequiredExact untrimmed upstream envelope, row, or rows used for a derived record.Example: {…}
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.
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.
Parameters
This operation has no parameters.
Response
Published prices and channel availability.
application/json · objectInvalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
dataBillingCatalogRequiredData value.Example: {…}
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.
Parameters
tenant_idpathstring<uuid>RequiredTenant id value.Example: Use an existing record ID
Response
Current tenant billing information.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemInvalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
dataBillingEntitlementsRequiredData value.Example: {…}
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.
Parameters
tenant_idpathstring<uuid>RequiredTenant id value.Example: Use an existing record ID
offsetqueryintegerOptionalOffset value.Example: 0
Response
Current tenant billing information.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemInvalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
dataBillingOrdersRequiredData value.Example: {…}
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.
Parameters
tenant_idpathstring<uuid>RequiredTenant id value.Example: Use an existing record ID
X-CSRF-TokenheaderstringRequiredToken returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text
Originheaderstring<uri>RequiredOrigin value.Example: {…}
Idempotency-KeyheaderstringRequiredIdempotency-Key value.Example: Example text
Request body
Required
application/json · objectproduct_idstringRequiredUse a product ID from the catalog: plan: identifies a plan and api: identifies one API.Example: api:FinancialStatement
price_revisionintegerRequiredUse the product catalog revision to confirm the current quote.Example: 1
payment_provideralipay | wechatRequiredChoose an available provider: alipay for Alipay or wechat for WeChat Pay.Example: alipay
{
"product_id": "api:FinancialStatement",
"price_revision": 1,
"payment_provider": "alipay"
}Response
Persisted order; repeated requests return the same order.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemInvalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
dataBillingOrderRequiredData value.Example: {…}
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.
Parameters
tenant_idpathstring<uuid>RequiredTenant id value.Example: Use an existing record ID
order_idpathstringRequiredOrder id value.Example: Use an existing record ID
refreshquerybooleanOptionalReconcile pending orders with the payment channel.Example: false
Response
Current tenant billing information.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemInvalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
dataBillingOrderRequiredData value.Example: {…}
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.
Parameters
tenant_idpathstring<uuid>RequiredTenant id value.Example: Use an existing record ID
order_idpathstringRequiredOrder id value.Example: Use an existing record ID
X-CSRF-TokenheaderstringRequiredToken returned by login or GET /v1/me; Origin must also exactly match an allowed production origin.Example: Example text
Originheaderstring<uri>RequiredOrigin value.Example: {…}
Response
Authoritative current order status.
application/json · objectInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemAPI key lacks the required scope
application/problem+json · ProblemResource not found
application/problem+json · ProblemInvalid input, forbidden origin or CSRF, stale version, duplicate operation, login throttling or unavailable dependency. No credential values are included.
application/problem+json · ProblemSuccess response fields
metaResponseMetaRequiredMeta value.Example: {…}
dataBillingOrderRequiredData value.Example: {…}
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.
BillingProductobject+
idstringRequiredId value.Example: Use an existing record ID
kindplan | apiRequiredKind value.Example: plan
operationstring | nullRequiredOperation value.Example: FinancialStatement
plan_codefree | plus | pro | nullRequiredPlan code value.Example: free
title_zhstringRequiredTitle zh value.Example: Example text
title_enstringRequiredTitle en value.Example: Example text
price_minorinteger | nullRequiredAnnual price in CNY minor units: 59900 means CNY 599. null means unpriced.Example: 59900
sale_enabledbooleanRequiredSale enabled value.Example: false
revisionintegerRequiredRevision value.Example: 1
BillingCatalogobject+
currencystringRequiredCurrency value.Example: CNY
period_monthsintegerRequiredPeriod months value.Example: 12
productsBillingProduct[]RequiredProducts value.Example: […]
providersobject[]RequiredProviders value.Example: […]
enforcement_enabledbooleanRequiredIndicates whether paid subscriptions are open. No payment orders can be created when false.Example: false
BillingOrderobject+
idstringRequiredId value.Example: Use an existing record ID
tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
productBillingProductRequiredProduct value.Example: {…}
provideralipay | wechatRequiredProvider value.Example: alipay
amount_minorintegerRequiredThe amount due for this order in CNY minor units.Example: 19900
currencystringRequiredCurrency value.Example: CNY
period_monthsintegerRequiredPeriod months value.Example: 12
statuspending | paid | closed | reviewRequiredStatus value.Example: pending
payment_codestring | nullRequiredProvider 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_idstring | nullRequiredTrade id value.Example: Use an existing record ID
created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
expires_atstring<date-time>RequiredExpires at value.Example: 2026-09-30T15:00:00+08:00
paid_atstring | nullRequiredPaid at value.Example: Example text
entitlement_starts_atstring | nullRequiredEntitlement starts at value.Example: Example text
entitlement_ends_atstring | nullRequiredEntitlement ends at value.Example: Example text
BillingOrdersobject+
itemsBillingOrder[]RequiredItems value.Example: […]
offsetintegerRequiredOffset value.Example: 1
limitintegerRequiredLimit value.Example: 1
TrialAccessobject+
planfree | plus | proRequiredFree means trial access is disabled.Example: free
starts_atstring<date-time>RequiredStarts at value.Example: 2026-09-30T15:00:00+08:00
ends_atstring<date-time>RequiredEnds at value.Example: 2026-09-30T15:00:00+08:00
revisionintegerRequiredRevision value.Example: 1
BillingEntitlementsobject+
trialTrialAccess | nullRequiredTrial value.Example: {…}
effective_planfree | plus | proRequiredHighest active purchased or trial access.Example: free
enforcement_enabledbooleanRequiredIndicates whether paid subscriptions are open. No payment orders can be created when false.Example: false
itemsobject[]RequiredItems value.Example: […]
CatalogCategoryobject+
idstringRequiredId value.Example: Use an existing record ID
parent_idstring | nullRequiredParent id value.Example: Use an existing record ID
name_zhstringRequiredName zh value.Example: Example text
name_enstringRequiredName en value.Example: Example text
CatalogOperationobject+
capabilitystringOptionalCapability value.Example: Example text
legacy_http_pathstringOptionalDeprecated compatibility carrier path.Example: Example text
idstringRequiredId value.Example: Use an existing record ID
providerstringOptionalProvider value.Example: Example text
source_idintegerRequiredSource id value.Example: Use an existing record ID
operationstringRequiredOperation value.Example: FinancialStatement
source_groupstringOptionalSource group value.Example: Example text
category_idstringRequiredCategory id value.Example: Use an existing record ID
title_zhstringRequiredTitle zh value.Example: Example text
title_enstringRequiredTitle en value.Example: Example text
description_zhstringOptionalDescription zh value.Example: Example text
asset_tagsstring[]OptionalAsset tags value.Example: […]
required_planfree | plus | proOptionalRequired plan value.Example: free
plan_policy_statusstringRequiredPlan policy status value.Example: Example text
http_methodstringOptionalHttp method value.Example: Example text
http_pathstringRequiredHttp path value.Example: Example text
contract_statusstringOptionalContract status value.Example: Example text
coverage_statusstringRequiredCoverage status value.Example: Example text
rights_statusstringRequiredRights status value.Example: Example text
watermarkstring | nullOptionalWatermark value.Example: Example text
last_verified_atstringOptionalLast verified at value.Example: Example text
schema_versionstringOptionalSchema version value.Example: Example text
inputsobject[]RequiredInputs value.Example: […]
outputsobject[]RequiredOutputs value.Example: […]
CatalogPageobject+
itemsCatalogOperation[]RequiredItems value.Example: […]
totalintegerRequiredTotal value.Example: 1
pageintegerRequiredPage value.Example: 1
page_sizeintegerRequiredPage size value.Example: 20
schema_versionstringRequiredSchema version value.Example: Example text
ContentSourceobject+
operationstringRequiredOperation value.Example: FinancialStatement
name_zhstringRequiredName zh value.Example: Example text
name_enstringRequiredName en value.Example: Example text
kindstringRequiredKind value.Example: Example text
required_planstringRequiredRequired plan value.Example: Example text
rights_statusstringRequiredRights status value.Example: Example text
ContentItemobject+
idstringRequiredId value.Example: Use an existing record ID
sourcestringRequiredSource value.Example: Example text
source_operationstringRequiredSource operation value.Example: Example text
source_item_idstring | nullOptionalSource item id value.Example: Use an existing record ID
kindnews | announcement | research | qa | policyRequiredKind value.Example: news
titlestringRequiredTitle value.Example: Example text
summarystring | nullOptionalSummary value.Example: Example text
bodystring | nullOptionalBody value.Example: Example text
body_statusavailable | restricted | link_only | missingRequiredBody status value.Example: available
publisherstring | nullOptionalPublisher value.Example: Example text
source_urlstring | nullOptionalSource url value.Example: Example text
published_atstring | nullRequiredPublished at value.Example: Example text
published_datestring | nullRequiredPublished date value.Example: Example text
time_precisionsecond | date | unknownRequiredTime precision value.Example: second
ingested_atstring<date-time>RequiredIngested at value.Example: 2026-09-30T15:00:00+08:00
updated_atstring<date-time>OptionalUpdated at value.Example: 2026-09-30T15:00:00+08:00
entitiesstring[]RequiredEntities value.Example: […]
revisionintegerRequiredRevision value.Example: 1
content_hashstringOptionalContent hash value.Example: Example text
rights_scopestringRequiredRights scope value.Example: Example text
normalizer_versionstringOptionalNormalizer version value.Example: Example text
ContentPageobject+
itemsContentItem[]RequiredItems value.Example: […]
next_cursorstring | nullRequiredNext cursor value.Example: Example text
as_ofstring<date-time>RequiredAs of value.Example: 2026-09-30T15:00:00+08:00
page_sizeintegerRequiredPage size value.Example: 20
LlmPolicyobject+
enabledbooleanRequiredEnabled value.Example: true
tokens_per_dayintegerRequiredTokens per day value.Example: 1
max_output_tokensintegerRequiredMax output tokens value.Example: 1
max_concurrent_requestsintegerRequiredMax concurrent requests value.Example: 1
ChatCompletionRequestobject+
modelstringRequiredModel value.Example: qwen3.8-max
messagesobject[]RequiredMessages value.Example: [{"role":"user","content":"Hello"}]
max_completion_tokensintegerOptionalMax completion tokens value.Example: 128
max_tokensintegerOptionalAlias for the complete output budget; cannot be supplied together with max_completion_tokens.Example: 128
streambooleanOptionalStream value.Example: false
stream_optionsobjectOptionalStream options value.Example: {…}
nintegerOptionalN value.Example: 1
temperaturenumberOptionalTemperature value.Example: 0.7
top_pnumberOptionalTop p value.Example: 1
stopstring | string[]OptionalStop value.Example: […]
toolsobject[]OptionalTools value.Example: […]
tool_choicestring | objectOptionalTool choice value.Example: string
parallel_tool_callsbooleanOptionalParallel tool calls value.Example: true
response_formatobjectOptionalResponse format value.Example: {…}
enable_thinkingbooleanOptionalEnable thinking value.Example: true
ChatCompletionobject+
idstringRequiredId value.Example: Use an existing record ID
objectstringRequiredObject value.Example: Example text
createdintegerRequiredCreated value.Example: 1
modelstringRequiredModel value.Example: qwen3.8-max
choicesobject[]RequiredChoices value.Example: […]
usageobjectOptionalUsage value.Example: {…}
AgentCardobject+
namestringRequiredName value.Example: Example name
descriptionstringRequiredDescription value.Example: Example text
supportedInterfacesobject[]RequiredSupported Interfaces value.Example: […]
versionstringRequiredVersion value.Example: Example text
capabilitiesobjectRequiredCapabilities value.Example: {…}
defaultInputModesstring[]RequiredDefault Input Modes value.Example: […]
defaultOutputModesstring[]RequiredDefault Output Modes value.Example: […]
skillsobject[]RequiredSkills value.Example: […]
SendAgentMessageRequestobject+
messageAgentMessageRequiredMessage value.Example: {…}
configurationAgentSendConfigurationOptionalConfiguration value.Example: {…}
SendAgentMessageResponseobject+
taskAgentTaskRequiredTask value.Example: {…}
AgentSendConfigurationobject+
acceptedOutputModestext/markdown | application/json[]OptionalAccepted Output Modes value.Example: […]
historyLengthintegerOptionalHistory Length value.Example: 1
AgentMessageobject+
messageIdstring<uuid>RequiredMessage Id value.Example: Use an existing record ID
roleROLE_USER | ROLE_AGENTRequiredRole value.Example: user
partsAgentPart[]RequiredParts value.Example: […]
contextIdstring<uuid>OptionalContext Id value.Example: Use an existing record ID
taskIdstring<uuid>OptionalTask 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+
stateAgentTaskStateRequiredState value.Example: {…}
timestampstring<date-time>RequiredTimestamp value.Example: 2026-09-30T15:00:00+08:00
messageAgentMessageOptionalMessage value.Example: {…}
AgentArtifactobject+
artifactIdstringRequiredArtifact Id value.Example: Example text
namestringRequiredName value.Example: Example name
partsAgentPart[]RequiredParts value.Example: […]
extensionsstring<uri>[]OptionalExtensions value.Example: […]
metadataobjectOptionalMetadata value.Example: {…}
AgentTaskobject+
idstring<uuid>RequiredId value.Example: Use an existing record ID
contextIdstring<uuid>RequiredContext Id value.Example: Use an existing record ID
statusAgentTaskStatusRequiredStatus value.Example: {…}
artifactsAgentArtifact[]OptionalArtifacts value.Example: […]
historyAgentMessage[]OptionalHistory value.Example: […]
metadataobjectRequiredMetadata value.Example: {…}
AgentTaskListobject+
tasksAgentTask[]RequiredTasks value.Example: […]
nextPageTokenstringOptionalNext 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_idstringRequiredDataset id value.Example: Use an existing record ID
namestringRequiredName value.Example: Example name
descriptionstringRequiredDescription value.Example: Example text
marketsstring[]RequiredMarkets value.Example: […]
asset_classesstring[]RequiredAsset classes value.Example: […]
operation_countintegerRequiredOperation count value.Example: 1
capabilitiesCapability[]RequiredCapabilities value.Example: […]
normalizationmixed | provider_envelopeRequiredNormalization value.Example: mixed
rights_statusstringRequiredRights status value.Example: Example text
freshnessstringRequiredFreshness value.Example: Example text
contract_versionstringRequiredContract version value.Example: Example text
DatasetDetailobject+
Fields vary by endpoint. See the example or run it to inspect the response.
DatasetReadinessobject+
dataset_idstringRequiredDataset id value.Example: Use an existing record ID
contract_statusstringRequiredContract status value.Example: Example text
delivery_statusstringRequiredDelivery status value.Example: Example text
coverage_statusstringRequiredCoverage status value.Example: Example text
rights_statusstringRequiredRights status value.Example: Example text
watermarknull | stringRequiredWatermark value.Example: null
operation_countintegerRequiredOperation count value.Example: 1
observed_atstring<date-time>RequiredObserved at value.Example: 2026-09-30T15:00:00+08:00
ResearchTemplateobject+
template_idstringRequiredTemplate id value.Example: Use an existing record ID
versionstringRequiredVersion value.Example: Example text
namestringRequiredName value.Example: Example name
descriptionstringRequiredDescription value.Example: Example text
required_datasetsstring[]RequiredRequired datasets value.Example: […]
required_capabilitiesCapability[]RequiredRequired capabilities value.Example: […]
output_formatsapplication/json | text/markdown | text/html[]RequiredOutput formats value.Example: […]
evidence_requiredbooleanRequiredEvidence required value.Example: true
risk_noticestringRequiredRisk notice value.Example: Example text
FactorDefinitionobject+
idstring<uuid>RequiredId value.Example: Use an existing record ID
tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
namestringRequiredName value.Example: Example name
descriptionstringRequiredDescription value.Example: Example text
input_datasetsstring[]RequiredInput datasets value.Example: […]
universe_rulestringRequiredUniverse rule value.Example: Example text
created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
CreateFactorDefinitionobject+
namestringRequiredName value.Example: Example name
descriptionstringOptionalDescription value.Example: Example text
input_datasetsstring[]RequiredInput datasets value.Example: […]
universe_rulestringRequiredUniverse rule value.Example: Example text
FactorVersionobject+
idstring<uuid>RequiredId value.Example: Use an existing record ID
factor_idstring<uuid>RequiredFactor id value.Example: Use an existing record ID
version_numberintegerRequiredVersion number value.Example: 1
expressionstringRequiredExpression value.Example: Example text
lookback_daysintegerRequiredLookback days value.Example: 1
adjustmentraw | forward | backwardRequiredAdjustment value.Example: raw
created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
CreateFactorVersionobject+
expressionstringRequiredExpression value.Example: Example text
lookback_daysintegerRequiredLookback days value.Example: 1
adjustmentraw | forward | backwardOptionalAdjustment 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+
idstring<uuid>RequiredId value.Example: Use an existing record ID
tenant_idstring<uuid>RequiredTenant id value.Example: Use an existing record ID
kindExperimentKindRequiredKind value.Example: {…}
namestringRequiredName value.Example: Example name
factor_version_idstring | nullRequiredFactor version id value.Example: Use an existing record ID
research_template_idstring | nullRequiredResearch template id value.Example: Use an existing record ID
inputsobjectRequiredInputs value.Example: {…}
code_refstring | nullRequiredCode ref value.Example: Example text
data_manifest_refstring | nullRequiredData manifest ref value.Example: Example text
environmentobjectRequiredEnvironment value.Example: {…}
statusExperimentStatusRequiredStatus value.Example: {…}
resultobjectRequiredResult value.Example: {…}
created_atstring<date-time>RequiredCreated at value.Example: 2026-09-30T15:00:00+08:00
updated_atstring<date-time>RequiredUpdated at value.Example: 2026-09-30T15:00:00+08:00
CreateExperimentRunobject+
kindExperimentKindRequiredKind value.Example: {…}
namestringRequiredName value.Example: Example name
factor_version_idstring | nullOptionalFactor version id value.Example: Use an existing record ID
research_template_idstring | nullOptionalResearch template id value.Example: Use an existing record ID
inputsobjectOptionalInputs value.Example: {…}
code_refstring | nullOptionalCode ref value.Example: Example text
data_manifest_refstring | nullOptionalData manifest ref value.Example: Example text
environmentobjectOptionalEnvironment value.Example: {…}
UpdateExperimentRunobject+
statusExperimentStatusRequiredStatus value.Example: {…}
resultobjectOptionalResult 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_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
schema_versionstringRequiredSchema version value.Example: Example text
cache_statusCacheStatusRequiredCache status value.Example: {…}
sourcesparkdata-market-data | sparkdata-control-planeRequiredSource value.Example: sparkdata-market-data
generated_atstring<date-time>RequiredGenerated at value.Example: 2026-09-30T15:00:00+08:00
Instrumentobject+
instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
symbolstringRequiredSymbol value.Example: 600519
namestring | nullRequiredName value.Example: Example name
company_namestring | nullRequiredCompany name value.Example: Example text
micXSHG | XSHE | XBSERequiredMic value.Example: XSHG
asset_classequity | etf | indexRequiredAsset class value.Example: equity
currencystringRequiredCurrency value.Example: CNY
timezonestringRequiredTimezone value.Example: Asia/Shanghai
statusstringRequiredStatus value.Example: Example text
industrystring | nullRequiredIndustry value.Example: Example text
conceptsstring[]RequiredConcepts value.Example: […]
provider_dataProviderDataRequiredProvider data value.Example: {…}
ProviderDataobject+
operationstringRequiredExact operation name from the published source contract or dictionary service.Example: FinancialStatement
rawobjectRequiredExact 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+
namestringRequiredPublic parameter name accepted by SparkData.Example: Example name
upstream_namestringRequiredExact field name sent to the live upstream.Example: Example text
display_namestringRequiredDisplay name value.Example: Example text
data_typeContractDataTypeRequiredData type value.Example: {…}
descriptionstringRequiredDescription value.Example: Example text
requiredbooleanRequiredRequired value.Example: true
enum_groupstring | nullRequiredLive dictionary group when the workbook marks the input as enumerated.Example: Example text
enum_declarationstring | nullRequiredUnmodified enumeration declaration from the workbook.Example: Example text
fixed_valuestring | nullRequiredValue marked as fixed by the workbook and inserted by SparkData.Example: Example text
OutputContractobject+
namestringRequiredName value.Example: Example name
display_namestringRequiredDisplay name value.Example: Example text
data_typeContractDataTypeRequiredData type value.Example: {…}
descriptionstringRequiredDescription value.Example: Example text
OperationContractobject+
api_idintegerRequiredApi id value.Example: Use an existing record ID
sheet_namestringRequiredSheet name value.Example: Example text
display_namestringRequiredDisplay name value.Example: Example text
operationstringRequiredOperation value.Example: FinancialStatement
descriptionstringRequiredDescription value.Example: Example text
methodstringRequiredMethod value.Example: Example text
pathstringRequiredPath value.Example: Example text
capabilityCapabilityRequiredCapability value.Example: {…}
last_modifiedstringRequiredLast modified value.Example: Example text
inputsInputContract[]RequiredInputs value.Example: […]
outputsOutputContract[]RequiredOutputs value.Example: […]
OperationContractsResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataOperationContract[]RequiredData value.Example: […]
AggregateQueryobject+
operationstringRequiredCase-sensitive Excel operation name, for example FinancialStatement.Example: FinancialStatement
parametersobjectOptionalExact Excel input names and values; undeclared fields are rejected.Example: {…}
EnumResolutionobject+
fieldstringRequiredField value.Example: Example text
group_namestringRequiredGroup name value.Example: Example text
inputobjectRequiredInput value.Example: {…}
codestringRequiredCode value.Example: Example text
captionstring | nullRequiredCaption value.Example: Example text
provider_dataProviderDataRequiredProvider data value.Example: {…}
AggregateDataobject+
api_idintegerRequiredApi id value.Example: Use an existing record ID
capabilityCapabilityRequiredCapability value.Example: {…}
operationstringRequiredOperation value.Example: FinancialStatement
resolved_parametersobjectRequiredExact request sent upstream after fixed-value insertion and enum resolution.Example: {…}
enum_resolutionsEnumResolution[]RequiredEnum resolutions value.Example: […]
provider_dataProviderDataRequiredProvider data value.Example: {…}
AggregateResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataAggregateDataRequiredData value.Example: {…}
PriceLevelobject+
priceDecimalRequiredPrice value.Example: {…}
sizeDecimalRequiredSize value.Example: {…}
Quoteobject+
instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
event_timestring<date-time>RequiredEvent time value.Example: 2026-09-30T15:00:00+08:00
last_priceDecimalRequiredLast price value.Example: {…}
previous_closeDecimalRequiredPrevious close value.Example: {…}
openDecimalRequiredOpen value.Example: {…}
highDecimalRequiredHigh value.Example: {…}
lowDecimalRequiredLow value.Example: {…}
changeDecimal | nullRequiredChange value.Example: {…}
change_percentDecimal | nullRequiredChange percent value.Example: {…}
volumeDecimalRequiredVolume value.Example: {…}
turnoverDecimalRequiredTurnover value.Example: {…}
trade_statusstringRequiredTrade status value.Example: Example text
bid_levelsPriceLevel[]RequiredBid levels value.Example: […]
ask_levelsPriceLevel[]RequiredAsk levels value.Example: […]
provider_dataProviderDataRequiredProvider data value.Example: {…}
Barobject+
instrument_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
event_timestring<date-time>RequiredStart of the interval in UTC.Example: 2026-09-30T15:00:00+08:00
trading_datestring | nullRequiredUpstream trading or period-end date; null for derived intraday bars.Example: Example text
timeframeBarTimeframeRequiredTimeframe value.Example: 1d
openDecimalRequiredOpen value.Example: {…}
highDecimalRequiredHigh value.Example: {…}
lowDecimalRequiredLow value.Example: {…}
closeDecimalRequiredClose value.Example: {…}
previous_closeDecimal | nullRequiredPrevious close value.Example: {…}
volumeDecimalRequiredVolume value.Example: {…}
turnoverDecimal | nullRequiredTurnover value.Example: {…}
trade_countinteger | nullRequiredTrade count value.Example: 1
suspendedbooleanRequiredSuspended value.Example: true
adjustmentraw | forward | backwardRequiredAll 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_sourceprovider | snapshot_derived | daily_derivedRequiredAggregation source value.Example: provider
provider_dataProviderDataRequiredProvider data value.Example: {…}
StreamControlobject+
control_typestream_end | heartbeat | reconnectRequiredControl type value.Example: stream_end
request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
event_timestring<date-time>RequiredEvent time value.Example: 2026-09-30T15:00:00+08:00
records_sentintegerOptionalRecords 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_idInstrumentIdRequiredCanonical MIC-prefixed ID for a supported mainland equity, ETF, or index.Example: XSHG:600519
instrumentInstrumentRequiredInstrument value.Example: {…}
latest_quoteQuote | nullRequiredLatest quote value.Example: {…}
barsBar[]RequiredBars value.Example: […]
upstream_operationsstring[]RequiredUpstream operations value.Example: […]
AgentContextResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataAgentContextRequiredData value.Example: {…}
DatasetsResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataDatasetDefinition[]RequiredData value.Example: […]
DatasetDetailResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataDatasetDetailRequiredData value.Example: {…}
DataReadinessResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataDatasetReadiness[]RequiredData value.Example: […]
ResearchTemplatesResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataResearchTemplate[]RequiredData value.Example: […]
FactorResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataFactorDefinitionRequiredData value.Example: {…}
FactorsResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataFactorDefinition[]RequiredData value.Example: […]
FactorVersionResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataFactorVersionRequiredData value.Example: {…}
FactorVersionsResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataFactorVersion[]RequiredData value.Example: […]
ExperimentRunResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataExperimentRunRequiredData value.Example: {…}
ExperimentRunsResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataExperimentRun[]RequiredData value.Example: […]
InstrumentResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataInstrumentRequiredData value.Example: {…}
InstrumentResponseObjectobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataInstrumentRequiredData value.Example: {…}
BarsResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataBar[]RequiredData value.Example: […]
QuotesResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataQuote[]RequiredData value.Example: […]
MeResponseobject+
metaResponseMetaRequiredMeta value.Example: {…}
dataobjectRequiredData value.Example: {…}
InvalidParameterobject+
namestringRequiredName value.Example: Example name
reasonstringRequiredReason value.Example: Example text
Problemobject+
typestring<uri-reference>RequiredType value.Example: {…}
titlestringRequiredTitle value.Example: Example text
statusintegerRequiredStatus value.Example: 1
detailstringRequiredDetail value.Example: Example text
request_idstring<uuid>RequiredRequest id value.Example: Use an existing record ID
codestringRequiredCode value.Example: Example text
purchase_product_idstringOptionalOptional annual subscription to purchase when code is feature_not_purchased.Example: Use an existing record ID
invalid_parametersInvalidParameter[]RequiredInvalid parameters value.Example: […]