Skip to content

FinancialDataset data ingestion API reference (V3).

The Ingest API receives batched data pushes from the FinancialDataset platform. It uses FD-API-KEY header authentication.

Authentication

All ingest endpoints require a valid API key passed in the FD-API-KEY header.

POST /api/v1/financialdataset/ingest/batches
Content-Type: application/json
FD-API-KEY: your-api-key-here

Endpoints

POST /api/v1/financialdataset/ingest/batches

Batch data ingestion endpoint. Supports both incremental updates and full snapshots.

Request Body:

{
"meta": {
"schema_version": "3.0",
"batch_id": "fdp_20260530_100000_etf_daily_0001",
"source_system": "financialdataset",
"source_run_id": "run_20260530_001",
"dataset": "etf_daily",
"table": "etf_daily",
"operation": "upsert",
"snapshot_type": "incremental",
"business_date": "2026-05-30",
"source": "eastmoney.etf_spot_em",
"record_count": 1485,
"send_time": "2026-05-30T10:00:00Z"
},
"records": [{
"idempotency_key": "etf_daily:symbol=510300.SH:date=2026-05-30:source=eastmoney.etf_spot_em",
"unique_key": {"symbol": "510300.SH", "date": "2026-05-30", "source": "eastmoney.etf_spot_em"},
"data": {
"symbol": "510300.SH",
"date": "2026-05-30",
"close": 4.923,
"volume": 6566854,
"source": "eastmoney.etf_spot_em",
"updated_at": "2026-05-30T10:00:00Z"
}
}],
"checksum": {
"sha256": "abc123..."
}
}

Meta Fields:

FieldTypeRequiredDescription
schema_versionstringFixed "3.0"
batch_idstringUnique batch identifier
source_systemstringFixed "financialdataset"
source_run_idstringCollection run ID
datasetstringDataset name (see supported datasets below)
tablestringTarget table name
operationstringFixed "upsert"
snapshot_typestring"incremental" or "full_snapshot"
business_datestringBusiness date YYYY-MM-DD
sourcestringData source identifier
record_countnumberNumber of records
send_timestringISO 8601 UTC timestamp

Responses:

StatusBodyDescription
200{status: "accepted"}All records processed successfully
200{status: "duplicate"}Batch already processed (idempotent)
207{status: "partial"}Some records failed validation
400{code: 4001}Invalid request (missing meta/records/unknown dataset)
422{code: 4220}Checksum mismatch

GET /api/v1/financialdataset/ingest/batches/:batch_id

Query batch processing status.

Response:

{
"code": 0,
"message": "ok",
"batch_id": "fdp_20260530_100000_etf_daily_0001",
"dataset": "etf_daily",
"source": "eastmoney.etf_spot_em",
"operation": "upsert",
"snapshot_type": "incremental",
"business_date": "2026-05-30",
"source_system": "financialdataset",
"source_run_id": "run_20260530_001",
"record_count": 1485,
"checksum": "abc123...",
"status": "accepted",
"accepted": 1485,
"rejected": 0,
"duplicate": 0,
"errors": [],
"created_at": "2026-05-30T10:00:05Z",
"processed_at": "2026-05-30T10:00:06Z"
}

Supported Datasets

Silver Layer — Standardized Market Data

DatasetTableDescription
etf_dailyetf_dailyETF daily quotes (~1,500 ETFs)
index_dailyindex_dailyIndex daily quotes (A-share & US)
fxfxForeign exchange rates
qdii_navqdii_navQDII fund NAV
industry_swindustry_swShenwan industry classification
stock_dailystock_dailyA-share individual stock daily quotes

Gold Layer — Feature Factors

DatasetTableDescription
etf_daily_featuresetf_daily_featuresETF daily technical indicators
etf_risk_featuresetf_risk_featuresETF risk metrics (multi-window)
etf_cross_border_featuresetf_cross_border_featuresQDII cross-border ETF factors
index_daily_featuresindex_daily_featuresIndex daily factor indicators

Error Codes

CodeStatusMeaning
4010401Missing FD-API-KEY header
4012401Invalid API key
4001400Invalid request format or missing required fields
4220422Checksum mismatch
4040404Batch not found
2070207Partial success (some records rejected)