00 / Authentication
Two keys. Deliberately separate powers.
Market requests use a tenant API key beginning with spk_. Tenant, quota, and key administration uses an operator key held only in the service Secret. Public health checks require no authentication.
Authorization: Bearer YOUR_API_KEYSystem
Kubernetes liveness and dependency readiness.
GET/health/liveCheck process liveness+
Parameters
This operation has no parameters.
Responses
Process is alive
application/json · Healthcurl --request GET \
'https://test.spark-data.cn/health/live'GET/health/readyCheck MySQL and Redis readiness+
Parameters
This operation has no parameters.
Responses
Dependencies are ready
application/json · HealthMySQL, Redis, or upstream dependency is unavailable
application/problem+json · Problemcurl --request GET \
'https://test.spark-data.cn/health/ready'Control Plane
Operator-only tenant, quota, and API-key management.
GET/v1/admin/tenantsList tenants+
Parameters
This operation has no parameters.
Responses
Tenant list
application/json · TenantsResponseMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · Problemcurl --request GET \
'https://test.spark-data.cn/v1/admin/tenants' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/admin/tenantsCreate a tenant with service limits+
Parameters
This operation has no parameters.
Request body
Required
application/json · CreateTenantResponses
Tenant created
application/json · TenantResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
application/problem+json · ProblemResource state prevents the operation
application/problem+json · ProblemMySQL, Redis, or upstream dependency is unavailable
application/problem+json · Problemcurl --request POST \
'https://test.spark-data.cn/v1/admin/tenants' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/admin/tenants/{tenant_id}Get a tenant+
Parameters
tenant_idpathstring<uuid>Required—
Responses
Tenant found
application/json · TenantResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/admin/tenants/TENANT_ID' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'PATCH/v1/admin/tenants/{tenant_id}Update tenant status or limits+
Parameters
tenant_idpathstring<uuid>Required—
Request body
Required
application/json · UpdateTenantResponses
Tenant updated
application/json · TenantResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
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 · Problemcurl --request PATCH \
'https://test.spark-data.cn/v1/admin/tenants/TENANT_ID' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/admin/tenants/{tenant_id}/api-keysList API-key metadata without secrets+
Parameters
tenant_idpathstring<uuid>Required—
Responses
API-key metadata list
application/json · ApiKeysResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/admin/tenants/TENANT_ID/api-keys' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/admin/tenants/{tenant_id}/api-keysIssue an API key; plaintext is returned once+
Parameters
tenant_idpathstring<uuid>Required—
Request body
Required
application/json · CreateApiKeyResponses
API key issued
application/json · IssuedApiKeyResponseInvalid request
application/problem+json · ProblemMissing, malformed, expired, revoked, or unknown API key
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/admin/tenants/TENANT_ID/api-keys' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'DELETE/v1/admin/tenants/{tenant_id}/api-keys/{api_key_id}Revoke an API key immediately+
Parameters
tenant_idpathstring<uuid>Required—
api_key_idpathstring<uuid>Required—
Responses
API key revoked
Invalid 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 · Problemcurl --request DELETE \
'https://test.spark-data.cn/v1/admin/tenants/TENANT_ID/api-keys/API_KEY_ID' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'Instruments
Normalized equity, ETF, and index security-master resources.
GET/v1/instruments/{instrument_id}Get a normalized equity, ETF, or index+
Parameters
instrument_idpathInstrumentIdRequired—Example: XSHG:600570
Responses
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 · Problemcurl --request GET \
'https://test.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.
endquerystring<date-time>RequiredExclusive UTC timestamp; tenant range limits apply.
timeframequeryBarTimeframeOptional—
adjustmentqueryraw | forward | backwardOptionalETF and index bars accept `raw` only.Example: raw
feedqueryauto | realtime | delayedOptionalDeprecatedCompatibility routing hint; the currently deployed source exposes one feed.Example: auto
sortqueryasc | descOptional—Example: asc
Responses
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 · Problemcurl --request GET \
'https://test.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+
Parameters
symbolsqueryInstrumentId[]RequiredComma-separated canonical IDs; tenant limits apply.Example: ["XSHG:600570","XSHE:000001"]
feedqueryauto | realtime | delayedOptionalDeprecatedCompatibility routing hint; the currently deployed source exposes one feed.Example: auto
Responses
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 · Problemcurl --request GET \
'https://test.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 | delayedOptionalDeprecatedCompatibility routing hint; the currently deployed source exposes one feed.Example: auto
heartbeat_secondsqueryintegerOptional—Example: 20
Responses
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 · Problemcurl --request GET \
'https://test.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_idpathInstrumentIdRequired—Example: XSHG:600570
startquerystring<date-time>OptionalInclusive UTC timestamp; must be paired with `end`.
endquerystring<date-time>OptionalExclusive UTC timestamp; must be paired with `start`.
timeframequeryBarTimeframeOptional—
adjustmentqueryraw | forward | backwardOptionalETF and index bars accept `raw` only.Example: raw
sortqueryasc | descOptional—Example: asc
Responses
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 · Problemcurl --request GET \
'https://test.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.
GET/v1/discoveryList exact discovery operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/discovery' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/discoveryInvoke a discovery or screening operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/discovery' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/entitiesList exact entity operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/entities' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/entitiesInvoke an entity or reference-data operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/entities' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/market-dataList exact market-data operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/market-data' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/market-dataInvoke a unified market-data operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/market-data' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/fundamentalsList exact fundamentals operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/fundamentals' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/fundamentalsInvoke a fundamentals or forecast operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/fundamentals' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/ownershipList exact ownership operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/ownership' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/ownershipInvoke an ownership or portfolio operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/ownership' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/eventsList exact event operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/events' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/eventsInvoke an event, corporate-action, or risk operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/events' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/analyticsList exact analytics operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/analytics' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/analyticsInvoke an analytics, valuation, or ranking operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/analytics' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/economyList exact economy operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/economy' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/economyInvoke a macro, regional, or industry-economy operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/economy' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'GET/v1/contentList exact content operation contracts+
Parameters
operationquerystringOptionalCase-sensitive operation name. Omit to list every operation in the capability.
Responses
Exact generated workbook contracts for the selected capability
application/json · OperationContractsResponseInvalid 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 · Problemcurl --request GET \
'https://test.spark-data.cn/v1/content' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY'POST/v1/contentInvoke a research, filing, news, or policy operation+
Parameters
This operation has no parameters.
Request body
`operation` must be one of the operations assigned to this capability in the published operation catalog. `parameters` uses the exact contract field names. Enumeration parameters accept a dictionary code, caption, reference code, or canonical A-share ID; SparkData resolves and validates the upstream code.
application/json · AggregateQueryResponses
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 · Problemcurl --request POST \
'https://test.spark-data.cn/v1/content' \
--header 'Authorization: Bearer $SPARKDATA_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"operation":"operation_code","params":{}}'Data models
Reusable schemas defined by the OpenAPI contract. Expand a model to inspect its fields, types, and requirements.
Healthobject+
statusstringRequiredInstrumentIdstring+
Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.
Decimalstring+
BarTimeframe1m | 5m | 15m | 30m | 1h | 1d | 1w | 1mo | 1q | 1y+
CacheStatushit | miss | mixed | bypass+
ResponseMetaobject+
request_idstring<uuid>Requiredschema_versionstringRequiredcache_statusCacheStatusRequiredsourcesparkdata-market-data | sparkdata-control-planeRequiredgenerated_atstring<date-time>RequiredTenantobject+
idstring<uuid>RequirednamestringRequiredstatusactive | suspendedRequiredrequests_per_minuteintegerRequiredmax_symbols_per_requestintegerRequiredmax_bar_range_daysintegerRequiredcreated_atstring<date-time>Requiredupdated_atstring<date-time>RequiredCreateTenantobject+
namestringRequiredrequests_per_minuteintegerOptionalmax_symbols_per_requestintegerOptionalmax_bar_range_daysintegerOptionalUpdateTenantobject+
namestringOptionalstatusactive | suspendedOptionalrequests_per_minuteintegerOptionalmax_symbols_per_requestintegerOptionalmax_bar_range_daysintegerOptionalApiKeyobject+
idstring<uuid>Requiredtenant_idstring<uuid>RequirednamestringRequiredkey_prefixstringRequired · Non-secret prefix for identifying the key.scopesmarket-data:read[]Requiredstatusactive | revokedRequiredexpires_atstring,null<date-time>Requiredcreated_atstring<date-time>Requiredrevoked_atstring,null<date-time>RequiredIssuedApiKeyobject+
CreateApiKeyobject+
namestringRequiredscopesmarket-data:read[]Optionalexpires_atstring,null<date-time>OptionalInstrumentobject+
instrument_idInstrumentIdRequired · Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.symbolstringRequirednamestringnullRequiredcompany_namestringnullRequiredmicXSHG | XSHE | XBSERequiredasset_classequity | etf | indexRequiredcurrencystringRequiredtimezonestringRequiredstatusstringRequiredindustrystringnullRequiredconceptsstring[]Requiredprovider_dataProviderDataRequiredProviderDataobject+
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+
ContractDataTypestring | string_array | number | number_array | date | date_array+
InputContractobject+
namestringRequired · Public parameter name accepted by SparkData.upstream_namestringRequired · Exact field name sent to the live upstream.display_namestringRequireddata_typeContractDataTypeRequireddescriptionstringRequiredrequiredbooleanRequiredenum_groupstringnullRequired · Live dictionary group when the workbook marks the input as enumerated.enum_declarationstringnullRequired · Unmodified enumeration declaration from the workbook.fixed_valuestringnullRequired · Value marked as fixed by the workbook and inserted by SparkData.OutputContractobject+
namestringRequireddisplay_namestringRequireddata_typeContractDataTypeRequireddescriptionstringRequiredOperationContractobject+
api_idintegerRequiredsheet_namestringRequireddisplay_namestringRequiredoperationstringRequireddescriptionstringRequiredmethodstringRequiredpathstringRequiredcapabilityCapabilityRequiredlast_modifiedstringRequiredinputsInputContract[]RequiredoutputsOutputContract[]RequiredOperationContractsResponseobject+
metaResponseMetaRequireddataOperationContract[]RequiredAggregateQueryobject+
operationstringRequired · Case-sensitive Excel operation name, for example FinancialStatement.parametersobjectOptional · Exact Excel input names and values; undeclared fields are rejected.EnumResolutionobject+
fieldstringRequiredgroup_namestringRequiredinputobjectRequiredcodestringRequiredcaptionstringnullRequiredprovider_dataProviderDataRequiredAggregateDataobject+
api_idintegerRequiredcapabilityCapabilityRequiredoperationstringRequiredresolved_parametersobjectRequired · Exact request sent upstream after fixed-value insertion and enum resolution.enum_resolutionsEnumResolution[]Requiredprovider_dataProviderDataRequiredAggregateResponseobject+
metaResponseMetaRequireddataAggregateDataRequiredPriceLevelobject+
priceDecimalRequiredsizeDecimalRequiredQuoteobject+
instrument_idInstrumentIdRequired · Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.event_timestring<date-time>Requiredlast_priceDecimalRequiredprevious_closeDecimalRequiredopenDecimalRequiredhighDecimalRequiredlowDecimalRequiredchangeDecimal | nullRequiredchange_percentDecimal | nullRequiredvolumeDecimalRequiredturnoverDecimalRequiredtrade_statusstringRequiredbid_levelsPriceLevel[]Requiredask_levelsPriceLevel[]Requiredprovider_dataProviderDataRequiredBarobject+
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,null<date>Required · Upstream trading or period-end date; null for derived intraday bars.timeframeBarTimeframeRequiredopenDecimalRequiredhighDecimalRequiredlowDecimalRequiredcloseDecimalRequiredprevious_closeDecimal | nullRequiredvolumeDecimalRequiredturnoverDecimal | nullRequiredtrade_countintegernullRequiredsuspendedbooleanRequiredadjustmentraw | forward | backwardRequired · ETF and index bars accept `raw` only.aggregation_sourceprovider | snapshot_derived | daily_derivedRequiredprovider_dataProviderDataRequiredStreamControlobject+
control_typestream_end | heartbeat | reconnectRequiredrequest_idstring<uuid>Requiredevent_timestring<date-time>Requiredrecords_sentintegerOptionalMarketEventQuote | StreamControl+
BarStreamRecordBar | StreamControl+
AgentContextobject+
instrument_idInstrumentIdRequired · Canonical MIC-prefixed ID for a supported mainland equity, ETF, or index.instrumentInstrumentRequiredlatest_quoteQuote | nullRequiredbarsBar[]Requiredupstream_operationsstring[]RequiredAgentContextResponseobject+
metaResponseMetaRequireddataAgentContextRequiredInstrumentResponseobject+
metaResponseMetaRequireddataInstrumentRequiredInstrumentResponseObjectobject+
metaResponseMetaRequireddataInstrumentRequiredBarsResponseobject+
metaResponseMetaRequireddataBar[]RequiredQuotesResponseobject+
metaResponseMetaRequireddataQuote[]RequiredTenantResponseobject+
metaResponseMetaRequireddataTenantRequiredTenantsResponseobject+
metaResponseMetaRequireddataTenant[]RequiredApiKeysResponseobject+
metaResponseMetaRequireddataApiKey[]RequiredIssuedApiKeyResponseobject+
metaResponseMetaRequireddataIssuedApiKeyRequiredInvalidParameterobject+
namestringRequiredreasonstringRequiredProblemobject+
typestring<uri-reference>RequiredtitlestringRequiredstatusintegerRequireddetailstringRequiredrequest_idstring<uuid>RequiredcodestringRequiredinvalid_parametersInvalidParameter[]Required