COST
扣费规则
每次请求按固定额度扣费,不随返回条数变化。
固定 1 点额度/次
实际扣费以响应头 x-api-cost 为准。
请求说明
参数
路径参数
trainCodestring 必填
要查询的车次号,例如 D2212。
示例:D2212
响应说明
状态码与响应格式
200
当前日期下的完整车次时刻表。
响应头
x-api-remainx-api-cost
application/jsonobject
响应结构
{
"type": "object",
"required": [
"ok",
"data",
"error"
],
"properties": {
"ok": {
"type": "boolean",
"required": true
},
"data": {
"type": "object",
"required": true,
"shape": {
"type": "object",
"required": [
"updatedAt",
"requestTrainCode",
"trainCode",
"internalCode",
"allCodes",
"bureauCode",
"bureauName",
"trainDepartment",
"passengerDepartment",
"referenceModels",
"startStation",
"endStation",
"startAt",
"endAt",
"circulation",
"stops"
],
"properties": {
"updatedAt": {
"type": "integer | null",
"required": true
},
"requestTrainCode": {
"type": "string",
"required": true
},
"trainCode": {
"type": "string",
"required": true
},
"internalCode": {
"type": "string",
"required": true
},
"allCodes": {
"type": "array<string>",
"required": true,
"shape": {
"type": "array",
"items": {
"type": "string"
}
}
},
"bureauCode": {
"type": "string",
"required": true
},
"bureauName": {
"type": "string",
"required": true
},
"trainDepartment": {
"type": "string",
"required": true
},
"passengerDepartment": {
"type": "string",
"required": true
},
"referenceModels": {
"type": "array<object>",
"required": true,
"shape": {
"type": "array",
"items": {
"type": "object",
"required": [
"model",
"weightedShare"
],
"properties": {
"model": {
"type": "string",
"required": true
},
"weightedShare": {
"type": "number",
"required": true
}
}
}
}
},
"startStation": {
"type": "string",
"required": true
},
"endStation": {
"type": "string",
"required": true
},
"startAt": {
"type": "integer",
"description": "当前车次始发时间,Unix 时间戳(秒)。",
"required": true
},
"endAt": {
"type": "integer",
"description": "当前车次终到时间,Unix 时间戳(秒)。",
"required": true
},
"circulation": {
"type": "object",
"required": true,
"shape": {
"oneOf": [
{
"type": "object",
"required": [
"source",
"refreshAt",
"nodes"
],
"properties": {
"source": {
"type": "official | inferred",
"required": true,
"enum": [
"official",
"inferred"
]
},
"refreshAt": {
"type": "integer | null",
"required": true
},
"nodes": {
"type": "array<object>",
"required": true,
"shape": {
"type": "array",
"items": {
"type": "object",
"required": [
"internalCode",
"allCodes",
"startStation",
"endStation",
"startAt",
"endAt"
],
"properties": {
"internalCode": {
"type": "string",
"required": true
},
"allCodes": {
"type": "array<string>",
"required": true,
"shape": {
"type": "array",
"items": {
"type": "string"
}
}
},
"startStation": {
"type": "string",
"required": true
},
"endStation": {
"type": "string",
"required": true
},
"startAt": {
"type": "integer",
"description": "交路内的日内偏移秒数,不是绝对 Unix 时间戳。",
"required": true
},
"endAt": {
"type": "integer",
"description": "交路内的日内偏移秒数,不是绝对 Unix 时间戳。",
"required": true
}
}
}
}
},
"metadata": {
"type": "object",
"shape": {
"type": "object",
"required": [
"routeId",
"windowStart",
"windowEnd",
"threshold",
"lowestLinkWeight",
"lowestLinkSupportCount",
"containsLoopBreak",
"nodes"
],
"properties": {
"routeId": {
"type": "string",
"required": true
},
"windowStart": {
"type": "integer",
"required": true
},
"windowEnd": {
"type": "integer",
"required": true
},
"threshold": {
"type": "number",
"required": true
},
"lowestLinkWeight": {
"type": "number | null",
"required": true
},
"lowestLinkSupportCount": {
"type": "integer | null",
"required": true
},
"containsLoopBreak": {
"type": "boolean",
"required": true
},
"nodes": {
"type": "array<object>",
"required": true,
"shape": {
"type": "array",
"items": {
"type": "object",
"required": [
"internalCode",
"allCodes",
"startStation",
"endStation",
"startAt",
"endAt"
],
"properties": {
"internalCode": {
"type": "string",
"required": true
},
"allCodes": {
"type": "array<string>",
"required": true,
"shape": {
"type": "array",
"items": {
"type": "string"
}
}
},
"startStation": {
"type": "string",
"required": true
},
"endStation": {
"type": "string",
"required": true
},
"startAt": {
"type": "integer",
"description": "交路内的日内偏移秒数,不是绝对 Unix 时间戳。",
"required": true
},
"endAt": {
"type": "integer",
"description": "交路内的日内偏移秒数,不是绝对 Unix 时间戳。",
"required": true
}
}
}
}
}
}
}
}
}
}
]
}
},
"stops": {
"type": "array<object>",
"required": true,
"shape": {
"type": "array",
"items": {
"type": "object",
"required": [
"stationNo",
"stationName",
"arriveAt",
"departAt",
"stationTrainCode",
"wicket",
"isStart",
"isEnd"
],
"properties": {
"stationNo": {
"type": "integer",
"required": true
},
"stationName": {
"type": "string",
"required": true
},
"arriveAt": {
"type": "integer | null",
"required": true
},
"departAt": {
"type": "integer | null",
"required": true
},
"stationTrainCode": {
"type": "string | null",
"required": true
},
"wicket": {
"type": "string | null",
"required": true
},
"isStart": {
"type": "boolean",
"required": true
},
"isEnd": {
"type": "boolean",
"required": true
}
}
}
}
}
}
}
},
"error": {
"type": "string",
"required": true
}
}
}示例响应
{
"ok": true,
"data": {
"updatedAt": 1778692621,
"requestTrainCode": "G2492",
"trainCode": "G2492",
"internalCode": "33000G249204",
"allCodes": [
"G2492"
],
"bureauCode": "C",
"bureauName": "呼和浩特局集团",
"trainDepartment": "包头车辆段",
"passengerDepartment": "包头客运段",
"referenceModels": [
{
"model": "CR400BF-G",
"weightedShare": 1
}
],
"startStation": "包头",
"endStation": "北京北",
"startAt": 1778887920,
"endAt": 1778899800,
"circulation": {
"source": "official",
"refreshAt": 1778868346,
"nodes": [
{
"internalCode": "33000G249204",
"allCodes": [
"G2492"
],
"startStation": "包头",
"endStation": "北京北",
"startAt": 27120,
"endAt": 39000
},
{
"internalCode": "24000G249307",
"allCodes": [
"G2493"
],
"startStation": "北京北",
"endStation": "包头",
"startAt": 42840,
"endAt": 56220
},
{
"internalCode": "33000G249608",
"allCodes": [
"G2496"
],
"startStation": "包头",
"endStation": "北京北",
"startAt": 58560,
"endAt": 73080
},
{
"internalCode": "24000G249108",
"allCodes": [
"G2491"
],
"startStation": "北京北",
"endStation": "包头",
"startAt": 117120,
"endAt": 129960
},
{
"internalCode": "33000G249408",
"allCodes": [
"G2494"
],
"startStation": "包头",
"endStation": "北京北",
"startAt": 131640,
"endAt": 145560
},
{
"internalCode": "24000G249505",
"allCodes": [
"G2495"
],
"startStation": "北京北",
"endStation": "包头",
"startAt": 147300,
"endAt": 159120
},
{
"internalCode": "33000D67580J",
"allCodes": [
"D6758"
],
"startStation": "包头",
"endStation": "呼和浩特东",
"startAt": 160680,
"endAt": 165300
}
]
},
"stops": [
{
"stationNo": 1,
"stationName": "包头",
"arriveAt": 1778887920,
"departAt": 1778887920,
"stationTrainCode": "G2492",
"wicket": "一层2检票口",
"isStart": true,
"isEnd": false
},
{
"stationNo": 2,
"stationName": "呼和浩特",
"arriveAt": 1778891460,
"departAt": 1778891760,
"stationTrainCode": "G2492",
"wicket": "4检票口",
"isStart": false,
"isEnd": false
},
{
"stationNo": 3,
"stationName": "北京北",
"arriveAt": 1778899800,
"departAt": 1778899800,
"stationTrainCode": "G2492",
"wicket": "",
"isStart": false,
"isEnd": true
}
]
},
"error": ""
}400
Invalid path parameters.
响应头
x-api-remainx-api-cost
application/jsonobject
响应结构
{
"type": "object",
"required": [
"ok",
"data",
"error"
],
"properties": {
"ok": {
"type": "boolean",
"required": true
},
"data": {
"type": "string",
"required": true
},
"error": {
"type": "string",
"required": true
}
}
}示例响应
{
"ok": false,
"data": "trainCode 不能为空。",
"error": "invalid_param"
}404
当前时刻表暂不可用。
响应头
x-api-remainx-api-cost
application/jsonobject
响应结构
{
"type": "object",
"required": [
"ok",
"data",
"error"
],
"properties": {
"ok": {
"type": "boolean",
"required": true
},
"data": {
"type": "string",
"required": true
},
"error": {
"type": "string",
"required": true
}
}
}示例响应
{
"ok": false,
"data": "当前暂无时刻表。",
"error": "not_found"
}