SSPARKDATA

THE PUBLIC MARKET DATA CONTRACT FOR AGENTS

Give your agenta direct line to the market.

This reference contains only customer-facing market data, instrument, agent, and LLM endpoints. Every parameter, response mode, and object is generated from the current OpenAPI contract.

LLM · OpenAI-compatible API

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

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

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

Make your first trustworthy quote request

Authenticate with the tenant API key you claimed. Each response carries its source, cache state, and generation time alongside the data.

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

LLM

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

2 ENDPOINTS
GET/v1/modelsList authorized language models

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

Operation ID
listModels
Auth
Tenant API key

Parameters

This operation has no parameters.

Responses

200

OpenAI-compatible model list.

application/json · object
401

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

application/json · object
403

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

application/json · object
503

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

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

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

Operation ID
createChatCompletion
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · ChatCompletionRequest

Responses

200

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

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

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

application/json · object
401

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

application/json · object
403

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

application/json · object
413

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

application/json · object
429

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

application/json · object
502

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

application/json · object
503

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

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

Instruments

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

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

Parameters

instrument_idpath
InstrumentIdRequired

Example: XSHG:600570

Responses

200

Instrument found

application/json · InstrumentResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Market Data

Cached quotes, bars, and best-effort streams.

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

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

Operation ID
listBars
Auth
Tenant API key

Parameters

symbolsquery
InstrumentId[]Required

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

startquery
string<date-time>Required

Inclusive UTC timestamp.

endquery
string<date-time>Required

Exclusive UTC timestamp; tenant range limits apply.

timeframequery
BarTimeframeOptional

adjustmentquery
raw | forward | backwardOptional

ETF and index bars accept `raw` only.Example: raw

feedquery
auto | realtime | delayedOptionalDeprecated

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

sortquery
asc | descOptional

Example: asc

Responses

200

Bars or an NDJSON bar stream

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

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/market-data/bars?symbols=XSHG%3A600570%2CXSHE%3A000001&start=2026-07-01T00%3A00%3A00Z&end=2026-08-01T00%3A00%3A00Z' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/market-data/quotes/latestGet latest quotes for multiple equities, ETFs, or indexes
Operation ID
getLatestQuotes
Auth
Tenant API key

Parameters

symbolsquery
InstrumentId[]Required

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

feedquery
auto | realtime | delayedOptionalDeprecated

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

Responses

200

Latest quotes

application/json · QuotesResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

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

Operation ID
streamMarketData
Auth
Tenant API key

Parameters

symbolsquery
InstrumentId[]Required

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

feedquery
auto | realtime | delayedOptionalDeprecated

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

heartbeat_secondsquery
integerOptional

Example: 20

Responses

200

SSE quote stream

text/event-stream · MarketEvent
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Agent Context

Agent-oriented compound views assembled from reusable cached resources.

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

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

Operation ID
getAgentContext
Auth
Tenant API key

Parameters

instrument_idpath
InstrumentIdRequired

Example: XSHG:600570

startquery
string<date-time>Optional

Inclusive UTC timestamp; must be paired with `end`.

endquery
string<date-time>Optional

Exclusive UTC timestamp; must be paired with `start`.

timeframequery
BarTimeframeOptional

adjustmentquery
raw | forward | backwardOptional

ETF and index bars accept `raw` only.Example: raw

sortquery
asc | descOptional

Example: asc

Responses

200

Agent context assembled from reusable cached resources

application/json · AgentContextResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Aggregate Data

Nine agent-facing capability APIs covering all 371 published operations.

18 ENDPOINTS
GET/v1/discoveryList exact discovery operation contracts
Operation ID
describeDiscovery
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/discovery' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/discoveryInvoke a discovery or screening operation
Operation ID
queryDiscovery
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/discovery' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"FinancialProductFilter","parameters":{}}'
GET/v1/entitiesList exact entity operation contracts
Operation ID
describeEntities
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/entities' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/entitiesInvoke an entity or reference-data operation
Operation ID
queryEntities
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/entities' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"CompanyBasicInfo","parameters":{"stockObject":["600570"],"pageSize":1}}'
GET/v1/market-dataList exact market-data operation contracts
Operation ID
describeMarketData
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/market-data' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/market-dataInvoke a unified market-data operation
Operation ID
queryMarketData
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/market-data' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"AShareLiveQuote","parameters":{"stockObject":["600570"],"pageSize":1}}'
GET/v1/fundamentalsList exact fundamentals operation contracts
Operation ID
describeFundamentals
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/fundamentals' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/fundamentalsInvoke a fundamentals or forecast operation
Operation ID
queryFundamentals
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/fundamentals' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"MangOperationAnalysis","parameters":{"stockObject":["600570"],"pageSize":1}}'
GET/v1/ownershipList exact ownership operation contracts
Operation ID
describeOwnership
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/ownership' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/ownershipInvoke an ownership or portfolio operation
Operation ID
queryOwnership
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/ownership' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"FundCompanyFund","parameters":{}}'
GET/v1/eventsList exact event operation contracts
Operation ID
describeEvents
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/events' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/eventsInvoke an event, corporate-action, or risk operation
Operation ID
queryEvents
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/events' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"ConvertibleBondIssue","parameters":{}}'
GET/v1/analyticsList exact analytics operation contracts
Operation ID
describeAnalytics
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/analytics' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/analyticsInvoke an analytics, valuation, or ranking operation
Operation ID
queryAnalytics
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/analytics' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"FundMarketSizeStats","parameters":{}}'
GET/v1/economyList exact economy operation contracts
Operation ID
describeEconomy
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/economy' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/economyInvoke a macro, regional, or industry-economy operation
Operation ID
queryEconomy
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/economy' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"RegionalEconomicData","parameters":{}}'
GET/v1/contentList exact content operation contracts
Operation ID
describeContent
Auth
Tenant API key

Parameters

operationquery
stringOptional

Case-sensitive operation name. Omit to list every operation in the capability.

Responses

200

Exact generated workbook contracts for the selected capability

application/json · OperationContractsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/content' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
POST/v1/contentInvoke a research, filing, news, or policy operation
Operation ID
queryContent
Auth
Tenant API key

Parameters

This operation has no parameters.

Request body

Required

application/json · AggregateQuery

Responses

200

Complete upstream response plus resolved enum inputs and cache metadata

application/json · AggregateResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request POST \
  'https://spark-data.cn/v1/content' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"operation":"ResearchReport","parameters":{}}'

Data Catalog

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

3 ENDPOINTS
GET/v1/datasetsList stable dataset groups covering all 371 operations
Operation ID
listDatasets
Auth
Tenant API key

Parameters

This operation has no parameters.

Responses

200

Dataset catalog

application/json · DatasetsResponse
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/datasets' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/datasets/{dataset_id}Return one dataset and its stable operation names
Operation ID
getDataset
Auth
Tenant API key

Parameters

dataset_idpath
cn-equity | funds | bonds | indices | classifications | wealth-products | hk-equity | us-equity | neeq | macro-research | announcements | news-policy | business-risk | smart-screeningRequired

Responses

200

Dataset detail

application/json · DatasetDetailResponse
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/datasets/cn-equity' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"
GET/v1/data-readinessReturn observed readiness without inventing coverage, rights, or watermarks
Operation ID
getDataReadiness
Auth
Tenant API key

Parameters

This operation has no parameters.

Responses

200

Observed catalog readiness

application/json · DataReadinessResponse
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

application/problem+json · Problem
cURL
curl --request GET \
  'https://spark-data.cn/v1/data-readiness' \
  --header "Authorization: Bearer $SPARKDATA_API_KEY"

Research

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

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

Parameters

This operation has no parameters.

Responses

200

Published research templates

application/json · ResearchTemplatesResponse
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

This operation has no parameters.

Responses

200

Experiment records

application/json · ExperimentRunsResponse
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

This operation has no parameters.

Request body

Required

application/json · CreateExperimentRun

Responses

201

Experiment metadata created

application/json · ExperimentRunResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

run_idpath
string<uuid>Required

Responses

200

Experiment metadata

application/json · ExperimentRunResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

run_idpath
string<uuid>Required

Request body

Required

application/json · UpdateExperimentRun

Responses

200

Experiment metadata updated

application/json · ExperimentRunResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Factors

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

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

Parameters

This operation has no parameters.

Responses

200

Factor definitions

application/json · FactorsResponse
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

This operation has no parameters.

Request body

Required

application/json · CreateFactorDefinition

Responses

201

Factor definition created

application/json · FactorResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

factor_idpath
string<uuid>Required

Responses

200

Factor definition

application/json · FactorResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

factor_idpath
string<uuid>Required

Responses

200

Factor versions

application/json · FactorVersionsResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

factor_idpath
string<uuid>Required

Request body

Required

application/json · CreateFactorVersion

Responses

201

Factor version created

application/json · FactorVersionResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
429

Tenant API-key rate limit exceeded

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Online Agent

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

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

Parameters

This operation has no parameters.

Responses

200

Public A2A Agent Card

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

Parameters

A2A-Versionheader
stringRequired

This interface supports A2A protocol version 1.0 only.

A2A-Extensionsheader
stringOptional

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

X-CSRF-Tokenheader
stringRequired

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

Request body

Required

application/a2a+json · SendAgentMessageRequest

Responses

200

Completed or failed Task envelope

application/a2a+json · SendAgentMessageResponse
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

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

Operation ID
streamAgentMessage
Auth
User session cookie

Parameters

A2A-Versionheader
stringRequired

This interface supports A2A protocol version 1.0 only.

A2A-Extensionsheader
stringOptional

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

X-CSRF-Tokenheader
stringRequired

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

Request body

Required

application/a2a+json · SendAgentMessageRequest

Responses

200

Ordered A2A SSE events ending at a terminal Task state

text/event-stream · string
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

A2A-Versionheader
stringRequired

This interface supports A2A protocol version 1.0 only.

contextIdquery
string<uuid>Optional

pageSizequery
integerOptional

Example: 50

Responses

200

Owner-scoped Task page

application/a2a+json · AgentTaskList
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

A2A-Versionheader
stringRequired

This interface supports A2A protocol version 1.0 only.

idpath
string<uuid>Required

Responses

200

Current Task snapshot

application/a2a+json · AgentTask
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

A2A-Versionheader
stringRequired

This interface supports A2A protocol version 1.0 only.

A2A-Extensionsheader
stringOptional

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

X-CSRF-Tokenheader
stringRequired

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

idpath
string<uuid>Required

Responses

200

Current Task followed by ordered SSE updates

text/event-stream · string
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Parameters

A2A-Versionheader
stringRequired

This interface supports A2A protocol version 1.0 only.

X-CSRF-Tokenheader
stringRequired

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

idpath
string<uuid>Required

Request body

Optional

application/a2a+json · object

Responses

200

Canceled Task snapshot

application/a2a+json · AgentTask
400

Invalid request

application/problem+json · Problem
401

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

application/problem+json · Problem
403

API key lacks the required scope

application/problem+json · Problem
404

Resource not found

application/problem+json · Problem
409

Resource state prevents the operation

application/problem+json · Problem
503

MySQL, Redis, or upstream dependency is unavailable

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

Public data objects

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

70 PUBLIC OBJECTS
LlmPolicyobject
PropertyType
enabledbooleanRequired
tokens_per_dayintegerRequired
max_output_tokensintegerRequired
max_concurrent_requestsintegerRequired
ChatCompletionRequestobject
PropertyType
modelstringRequired
messagesobject[]Required
max_completion_tokensintegerOptional
max_tokensintegerOptional · Alias for the complete output budget; cannot be supplied together with max_completion_tokens.
streambooleanOptional
stream_optionsobjectOptional
nintegerOptional
temperaturenumberOptional
top_pnumberOptional
stopstring | string[]Optional
toolsobject[]Optional
tool_choicestring | objectOptional
parallel_tool_callsbooleanOptional
response_formatobjectOptional
enable_thinkingbooleanOptional
ChatCompletionobject
PropertyType
idstringRequired
objectstringRequired
createdintegerRequired
modelstringRequired
choicesobject[]Required
usageobjectOptional
AgentCardobject
PropertyType
namestringRequired
descriptionstringRequired
supportedInterfacesobject[]Required
versionstringRequired
capabilitiesobjectRequired
defaultInputModesstring[]Required
defaultOutputModesstring[]Required
skillsobject[]Required
SendAgentMessageRequestobject
PropertyType
messageAgentMessageRequired
configurationAgentSendConfigurationOptional
SendAgentMessageResponseobject
PropertyType
taskAgentTaskRequired
AgentSendConfigurationobject
PropertyType
acceptedOutputModestext/markdown | application/json[]Optional
historyLengthintegerOptional
AgentMessageobject
PropertyType
messageIdstring<uuid>Required
roleROLE_USER | ROLE_AGENTRequired
partsAgentPart[]Required
contextIdstring<uuid>Optional
taskIdstring<uuid>Optional
AgentPartobject | object
PropertyType
AgentTaskStateTASK_STATE_SUBMITTED | TASK_STATE_WORKING | TASK_STATE_COMPLETED | TASK_STATE_FAILED | TASK_STATE_CANCELED
PropertyType
AgentTaskStatusobject
PropertyType
stateAgentTaskStateRequired
timestampstring<date-time>Required
messageAgentMessageOptional
AgentArtifactobject
PropertyType
artifactIdstringRequired
namestringRequired
partsAgentPart[]Required
extensionsstring<uri>[]Optional
metadataobjectOptional
AgentTaskobject
PropertyType
idstring<uuid>Required
contextIdstring<uuid>Required
statusAgentTaskStatusRequired
artifactsAgentArtifact[]Optional
historyAgentMessage[]Optional
metadataobjectRequired
AgentTaskListobject
PropertyType
tasksAgentTask[]Required
nextPageTokenstringOptional
IdentityProvideremail | phone | wechat
PropertyType
DatasetDefinitionobject
PropertyType
dataset_idstringRequired
namestringRequired
descriptionstringRequired
marketsstring[]Required
asset_classesstring[]Required
operation_countintegerRequired
capabilitiesCapability[]Required
normalizationmixed | provider_envelopeRequired
rights_statusstringRequired
freshnessstringRequired
contract_versionstringRequired
DatasetDetailobject
PropertyType
DatasetReadinessobject
PropertyType
dataset_idstringRequired
contract_statusstringRequired
delivery_statusstringRequired
coverage_statusstringRequired
rights_statusstringRequired
watermarknull | stringRequired
operation_countintegerRequired
observed_atstring<date-time>Required
ResearchTemplateobject
PropertyType
template_idstringRequired
versionstringRequired
namestringRequired
descriptionstringRequired
required_datasetsstring[]Required
required_capabilitiesCapability[]Required
output_formatsapplication/json | text/markdown | text/html[]Required
evidence_requiredbooleanRequired
risk_noticestringRequired
FactorDefinitionobject
PropertyType
idstring<uuid>Required
tenant_idstring<uuid>Required
namestringRequired
descriptionstringRequired
input_datasetsstring[]Required
universe_rulestringRequired
created_atstring<date-time>Required
CreateFactorDefinitionobject
PropertyType
namestringRequired
descriptionstringOptional
input_datasetsstring[]Required
universe_rulestringRequired
FactorVersionobject
PropertyType
idstring<uuid>Required
factor_idstring<uuid>Required
version_numberintegerRequired
expressionstringRequired
lookback_daysintegerRequired
adjustmentraw | forward | backwardRequired
created_atstring<date-time>Required
CreateFactorVersionobject
PropertyType
expressionstringRequired
lookback_daysintegerRequired
adjustmentraw | forward | backwardOptional
ExperimentKindresearch | factor
PropertyType
ExperimentStatusplanned | running | succeeded | failed | cancelled
PropertyType
ExperimentRunobject
PropertyType
idstring<uuid>Required
tenant_idstring<uuid>Required
kindExperimentKindRequired
namestringRequired
factor_version_idstring | nullRequired
research_template_idstring | nullRequired
inputsobjectRequired
code_refstring | nullRequired
data_manifest_refstring | nullRequired
environmentobjectRequired
statusExperimentStatusRequired
resultobjectRequired
created_atstring<date-time>Required
updated_atstring<date-time>Required
CreateExperimentRunobject
PropertyType
kindExperimentKindRequired
namestringRequired
factor_version_idstring | nullOptional
research_template_idstring | nullOptional
inputsobjectOptional
code_refstring | nullOptional
data_manifest_refstring | nullOptional
environmentobjectOptional
UpdateExperimentRunobject
PropertyType
statusExperimentStatusRequired
resultobjectOptional
InstrumentIdstring

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

PropertyType
Decimalstring
PropertyType
BarTimeframe1m | 5m | 15m | 30m | 1h | 1d | 1w | 1mo | 1q | 1y
PropertyType
CacheStatushit | miss | mixed | bypass
PropertyType
ResponseMetaobject
PropertyType
request_idstring<uuid>Required
schema_versionstringRequired
cache_statusCacheStatusRequired
sourcesparkdata-market-data | sparkdata-control-planeRequired
generated_atstring<date-time>Required
Instrumentobject
PropertyType
instrument_idInstrumentIdRequired · Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.
symbolstringRequired
namestring | nullRequired
company_namestring | nullRequired
micXSHG | XSHE | XBSERequired
asset_classequity | etf | indexRequired
currencystringRequired
timezonestringRequired
statusstringRequired
industrystring | nullRequired
conceptsstring[]Required
provider_dataProviderDataRequired
ProviderDataobject
PropertyType
operationstringRequired · Exact operation name from the published source contract or dictionary service.
rawobjectRequired · Exact untrimmed upstream envelope, row, or rows used for a derived record.
Capabilitydiscovery | entities | market_data | fundamentals | ownership | events | analytics | economy | content
PropertyType
ContractDataTypestring | string_array | number | number_array | date | date_array
PropertyType
InputContractobject
PropertyType
namestringRequired · Public parameter name accepted by SparkData.
upstream_namestringRequired · Exact field name sent to the live upstream.
display_namestringRequired
data_typeContractDataTypeRequired
descriptionstringRequired
requiredbooleanRequired
enum_groupstring | nullRequired · Live dictionary group when the workbook marks the input as enumerated.
enum_declarationstring | nullRequired · Unmodified enumeration declaration from the workbook.
fixed_valuestring | nullRequired · Value marked as fixed by the workbook and inserted by SparkData.
OutputContractobject
PropertyType
namestringRequired
display_namestringRequired
data_typeContractDataTypeRequired
descriptionstringRequired
OperationContractobject
PropertyType
api_idintegerRequired
sheet_namestringRequired
display_namestringRequired
operationstringRequired
descriptionstringRequired
methodstringRequired
pathstringRequired
capabilityCapabilityRequired
last_modifiedstringRequired
inputsInputContract[]Required
outputsOutputContract[]Required
OperationContractsResponseobject
PropertyType
metaResponseMetaRequired
dataOperationContract[]Required
AggregateQueryobject
PropertyType
operationstringRequired · Case-sensitive Excel operation name, for example FinancialStatement.
parametersobjectOptional · Exact Excel input names and values; undeclared fields are rejected.
EnumResolutionobject
PropertyType
fieldstringRequired
group_namestringRequired
inputobjectRequired
codestringRequired
captionstring | nullRequired
provider_dataProviderDataRequired
AggregateDataobject
PropertyType
api_idintegerRequired
capabilityCapabilityRequired
operationstringRequired
resolved_parametersobjectRequired · Exact request sent upstream after fixed-value insertion and enum resolution.
enum_resolutionsEnumResolution[]Required
provider_dataProviderDataRequired
AggregateResponseobject
PropertyType
metaResponseMetaRequired
dataAggregateDataRequired
PriceLevelobject
PropertyType
priceDecimalRequired
sizeDecimalRequired
Quoteobject
PropertyType
instrument_idInstrumentIdRequired · Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.
event_timestring<date-time>Required
last_priceDecimalRequired
previous_closeDecimalRequired
openDecimalRequired
highDecimalRequired
lowDecimalRequired
changeDecimal | nullRequired
change_percentDecimal | nullRequired
volumeDecimalRequired
turnoverDecimalRequired
trade_statusstringRequired
bid_levelsPriceLevel[]Required
ask_levelsPriceLevel[]Required
provider_dataProviderDataRequired
Barobject
PropertyType
instrument_idInstrumentIdRequired · Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.
event_timestring<date-time>Required · Start of the interval in UTC.
trading_datestring | nullRequired · Upstream trading or period-end date; null for derived intraday bars.
timeframeBarTimeframeRequired
openDecimalRequired
highDecimalRequired
lowDecimalRequired
closeDecimalRequired
previous_closeDecimal | nullRequired
volumeDecimalRequired
turnoverDecimal | nullRequired
trade_countinteger | nullRequired
suspendedbooleanRequired
adjustmentraw | forward | backwardRequired · ETF and index bars accept `raw` only.
aggregation_sourceprovider | snapshot_derived | daily_derivedRequired
provider_dataProviderDataRequired
StreamControlobject
PropertyType
control_typestream_end | heartbeat | reconnectRequired
request_idstring<uuid>Required
event_timestring<date-time>Required
records_sentintegerOptional
MarketEventQuote | StreamControl
PropertyType
BarStreamRecordBar | StreamControl
PropertyType
AgentContextobject
PropertyType
instrument_idInstrumentIdRequired · Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.
instrumentInstrumentRequired
latest_quoteQuote | nullRequired
barsBar[]Required
upstream_operationsstring[]Required
AgentContextResponseobject
PropertyType
metaResponseMetaRequired
dataAgentContextRequired
DatasetsResponseobject
PropertyType
metaResponseMetaRequired
dataDatasetDefinition[]Required
DatasetDetailResponseobject
PropertyType
metaResponseMetaRequired
dataDatasetDetailRequired
DataReadinessResponseobject
PropertyType
metaResponseMetaRequired
dataDatasetReadiness[]Required
ResearchTemplatesResponseobject
PropertyType
metaResponseMetaRequired
dataResearchTemplate[]Required
FactorResponseobject
PropertyType
metaResponseMetaRequired
dataFactorDefinitionRequired
FactorsResponseobject
PropertyType
metaResponseMetaRequired
dataFactorDefinition[]Required
FactorVersionResponseobject
PropertyType
metaResponseMetaRequired
dataFactorVersionRequired
FactorVersionsResponseobject
PropertyType
metaResponseMetaRequired
dataFactorVersion[]Required
ExperimentRunResponseobject
PropertyType
metaResponseMetaRequired
dataExperimentRunRequired
ExperimentRunsResponseobject
PropertyType
metaResponseMetaRequired
dataExperimentRun[]Required
InstrumentResponseobject
PropertyType
metaResponseMetaRequired
dataInstrumentRequired
InstrumentResponseObjectobject
PropertyType
metaResponseMetaRequired
dataInstrumentRequired
BarsResponseobject
PropertyType
metaResponseMetaRequired
dataBar[]Required
QuotesResponseobject
PropertyType
metaResponseMetaRequired
dataQuote[]Required
MeResponseobject
PropertyType
metaResponseMetaRequired
dataobjectRequired
InvalidParameterobject
PropertyType
namestringRequired
reasonstringRequired
Problemobject
PropertyType
typestring<uri-reference>Required
titlestringRequired
statusintegerRequired
detailstringRequired
request_idstring<uuid>Required
codestringRequired
invalid_parametersInvalidParameter[]Required

Ready to give your agent real market data?

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

Start nowDownload OpenAPI YAML