# VariFlight DataWorks【Flight Status Query API V3.0 】API Documentation **Product Page:** https://dataworks.variflight.com/products/flight-status-data/ **Contact Us:** [https://dataworks.variflight.com/about-us/contact/](https://dataworks.variflight.com/about-us/contact/) **Provider:** VariFlight DataWorks **Website:** [https://dataworks.variflight.com/](https://dataworks.variflight.com/) **Email:** dataworks@variflight.com **Address:** Building E, High-tech Innovation Valley, Wenqu Road, High-tech Zone, Hefei, P.R.China **Singapore Entity Address:** 1 Raffles Place, #02-209, Singapore 048616 Flight Status API Introduction This document specifies the VariFlight flight status query API, covering the request format, authentication, parameters, response structures and error codes. UTF-8 encoding is used throughout. Endpoint https://open-al.variflight.com/api/flight Request method: GET Response format: JSON (UTF-8) Authentication When the partnership is established, VariFlight assigns each partner a user identification code (appid) and a registration code (appsecurity). Every request is validated by two mechanisms — a request token and an IP allowlist: • IP allowlist: requests are accepted only from allowlisted IP addresses; any other source receives error\_code = 2. • Token: computed for every request with the algorithm below and passed in the token parameter. Token generation algorithm • 1. Collect all request parameters in the URL except token, then sort them by parameter name in ascending ASCII order. • 2. Join the parameters as name=value pairs with "\&", using the raw values (before URL encoding). • 3. Append the registration code (appsecurity) to the resulting string. • 4. Apply MD5 twice: token = md5(md5(str + appsecurity)). Each digest is a 32-character lowercase hexadecimal string. Note: the token itself never takes part in the signature. Every other parameter actually present in the URL — including optional parameters such as fid and lang — must be included. Request the registration code from your VariFlight administrator. It is used for mutual authentication and must be kept strictly confidential. Example (PHP): ksort($data); foreach($data as $k=>$v){ $strtomd5\[]=$k.'='.$v; } $token= md5(md5(implode('\&',$strtomd5).$appsecurity)); Example (Java): public static String generateToken(Map data, String appsecurity) { String concatenatedString = data.entrySet().stream() .sorted(Map.Entry.comparingByKey()) .map(entry -> entry.getKey() + "=" + entry.getValue()) .reduce((s1, s2) -> s1 + "\&" + s2) .orElse("") + appsecurity; return calculateMD5Hash(calculateMD5Hash(concatenatedString)); } public static String calculateMD5Hash(String input) { try { MessageDigest md = MessageDigest.getInstance("MD5"); byte\[] hashBytes = md.digest(input.getBytes()); StringBuilder hexString = new StringBuilder(); for (byte b : hashBytes) { hexString.append(String.format("%02x", b)); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { throw new RuntimeException(e); } } Example (C#): static string GenerateToken(Dictionary data, string appsecurity) { var strtomd5 = data.OrderBy(kvp => kvp.Key) .Select(kvp => $"{kvp.Key}={kvp.Value}") .ToArray(); string concatenatedString = string.Join("\&", strtomd5) + appsecurity; return CalculateMD5Hash(CalculateMD5Hash(concatenatedString)); } static string CalculateMD5Hash(string input) { byte\[] inputBytes = Encoding.UTF8.GetBytes(input); byte\[] hashBytes = MD5.HashData(inputBytes); return BitConverter.ToString(hashBytes).Replace("-", "").ToLower(); } Note: appsecurity in the samples above denotes the registration code. Worked example Query by Flight Number + Date (Route Empty): Request URL: https://open-al.variflight.com/api/flight?appid=${appid}\&date=2023-02-24\&fnum=GX8915\&token=${token} Step 1 — take all request parameters except token and sort them by parameter name in ascending ASCII order to obtain the signature string str: str = appid=${appid}\&date=2023-02-24\&fnum=GX8915 Step 2 — take the registration code appsecurity: appsecurity = ${appsecurity} Step 3 — concatenate the two strings and apply MD5 twice to obtain the token: token = md5(md5(str + appsecurity)) Request and Response Parameters The API supports multiple query modes. The sections below are grouped by response structure; each group lists its query modes together with the corresponding request and response fields. Response group 1 Query mode 1: Query by Flight Number + Date (Route Empty) |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |fnum|Flight Number|GX8915|Yes|string|| |date|Flight Date|2023-02-24|Yes|string|| |appid|App ID||Yes|string|| |token|Token||Yes|string|| |lang|Language Type|EN|No|string|| |fid|Flight ID||No|string|| Query mode 2: Query by Airport Route + Date (Flight Number Empty) |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |dep|Departure Airport IATA Code|HAK|Yes|string|| |arr|Arrival Airport IATA Code|YIH|Yes|string|| |date|Flight Date|2014-09-18|Yes|string|| |appid|App ID||Yes|string|| |token|Token||Yes|string|| |lang|Language Type|EN|No|string|| |fid|Flight ID||No|string|| Remark: lang is optional; defaults to Chinese when not provided. Query mode 3: Query by City Route + Date (Flight Number Empty) |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |depcity|Departure City IATA Code|BJS|Yes|string|| |arrcity|Arrival City IATA Code|SHA|Yes|string|| |date|Flight Date|2014-09-18|Yes|string|| |appid|App ID||Yes|string|| |token|Token||Yes|string|| |lang|Language Type|EN|No|string|| |fid|Flight ID||No|string|| Remark: lang is optional; defaults to Chinese when not provided. Query mode 4: Query by Flight Four Elements |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |fnum|Flight Number|GX8915|Yes|string|| |dep|Departure Airport IATA Code|HAK|Yes|string|| |arr|Arrival Airport IATA Code|YIH|Yes|string|| |date|Date|2014-09-18|Yes|string|| |appid|App ID||Yes|string|| |token|Token||Yes|string|| |lang|Language|EN|No|string|| |fid|Flight ID||No|string|| Remark: lang is optional; defaults to Chinese when not provided. Query mode 5: Query by Flight Number + Departure (Optional) + Arrival + Arrival Date |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |appid|App ID||Yes|string|| |token|Token||Yes|string|| |fnum|Flight Number|GX8915|No|string|| |dep|Departure Airport IATA Code|HAK|No|string|| |arr|Arrival Airport IATA Code|YIH|No|string|| |arrDate|Arrival Date|2024-08-19|Yes|string|| |lang|Language|EN|No|string|| |fid|Flight ID||No|string|| Remark: lang is optional; defaults to Chinese when not provided. Response fields: |Parameter|Description|Example|Type|Rules| |-|-|-|-|-| |fcategory|Flight Attribute|0|string|| |ftype|Aircraft Type Code|B738|string|| |fservice|Type Of Aircraft|J|string|| |FirstClassCheckinTable|First Class Check-In Counter|C3|string|| |BusinessCheckinTable|Business Class Check-In Counter|C3|string|| |FlightNo|Flight Number|SC7621|string|| |FlightCompany|Airline Name|Shandong Airlines|string|| |FlightDepcode|Departure Airport IATA Code|YNT|string|| |FlightArrcode|Arrival Airport Code|CAN|string|| |AircraftNumber|Aircraft Number|B306R|string|| |FlightDeptimePlanDate|Scheduled Departure Time|2023-12-22 08:20:00|string|| |FlightArrtimePlanDate|Scheduled Arrival Time|2023-12-22 11:50:00|string|| |FFlightDeptimePlanDate|Original Scheduled Departure Time|2023-12-22 07:05:00|string|| |FFlightArrtimePlanDate|Original Scheduled Arrival Time|2023-12-22 10:35:00|string|| |FlightDeptimeReadyDate|Official Estimated Departure Time|2023-12-22 08:20:00|string|| |FlightArrtimeReadyDate|Official Estimated Arrival Time|2023-12-22 11:42:12|string|| |FlightDeptimeDate|Actual Departure Time|2023-12-22 08:28:00|string|| |FlightArrtimeDate|Actual Arrival Time|2023-12-22 11:43:00|string|| |FlightIngateTime|On-Block Actual Time|2023-12-22 11:57:00|string|| |FlightOutgateTime|Off-Block Actual Time|2023-12-22 08:09:00|string|| |CheckinTable|Check-In Counter|C|string|| |CheckDoor|Airport Entrance Door|gate 4|string|| |BoardGate|Boarding Gate|15|string|| |ReachExit|Airport Arrival Exit|W1|string|| |BaggageID|Baggage Turntable|7|string|| |BoardState|Boarding Status|check-in|string|| |BoardGateTime|Security Gate To Boarding Gate Walking Time|1|string|| |ArrStandGate|Inbound Aircraft Stand|212|string|| |DepStandGate|Departure Aircraft Stand|309|string|| |DelayReason|Delay Reason|Flow control|string|| |Food|Meal|M|string|| |LastCheckinTime|Latest Check-In Cutoff Time|2023-12-22 07:45:00|string|| |EstimateBoardingStartTime|Estimated Boarding Start Time||string|| |EstimateBoardingEndTime|Estimated Boarding End Time||string|| |VeryZhunReadyDeptimeDate|VariFlight Estimated Departure Time|2023-12-22 08:29:00|string|| |VeryZhunReadyArrtimeDate|VariFlight Estimated Arrival Time|2023-12-22 11:43:18|string|| |FlightState|Flight Status|schedule|string|| |FlightStateNum|Flight Status Value|1|number|| |FlightHTerminal|Departure Terminal|T1|string|| |FlightTerminal|Arrival Terminal|T1|string|| |FlightDep|Departure City Name|Yantai|string|| |FlightArr|Arrival City Name|Guangzhou|string|| |deptel|Departure Airport Information Hotline|0535-5134352|string|| |arrtel|Arrival Airport Information Hotline|020-96158|string|| |airlinetel|Airline Information Hotline|95369|string|| |FlightWaitData|Flight Queue Status|0|number|| |bridge|Outbound Boarding Bridge|not utilize aerobridge|string|| |arr\_bridge|Inbound Boarding Bridge|utilize aerobridge|string|| |TodayTimeRate|Today On-Time Rate||string|| |OntimeRate|Historical Punctuality Rate|80.00%|string|| |generic|Aircraft Type|Boeing 737-85N|string|| |FlightYear|Aircraft Age|7.3|number|| |ArrOntimeRate|Historical Arrival On-Time Rate|83.33%|string|| |DepWeather|Departure Airport Weather|Snow shower turning to cloudy\|\|\|89\|-4/-10|string|| |ArrWeather|Arrival Airport Weather|Cloudy\|\|\|102\|12/3|string|| |FlightDuration|Duration Of Flight|171|string|| |distance|Flight Distance|2132|string|| |FastestExitDuration|Fastest Exit Duration|62.8|number|| |SlowestExitDuration|Slowest Exit Duration|73.8|number|| |FastestExitTime|Fastest Exit Time|2023-12-22 12:45:48|string|| |SlowestExitTime|Slowest Exit Time|2023-12-22 12:56:48|string|| |ChangePlane|Aircraft Change Flag|0|string|| |AssistFlightState|Auxiliary Flight Status|arrival|string|| |DepAirportLat|Departure Airport Latitude|37.660556|string|| |DepAirportLon|Departure Airport Longitude|120.979167|string|| |DepTerminalLat|Departure Terminal Latitude|37.664518|string|| |DepTerminalLon|Departure Terminal Longitude|120.99807|string|| |ArrAirportLat|Arrival Airport Latitude|23.387861|string|| |ArrAirportLon|Arrival Airport Longitude|113.29734|string|| |ArrTerminalLat|Arrival Terminal Latitude|23.393169|string|| |ArrTerminalLon|Arrival Terminal Longitude|113.309858|string|| |FlightDepAirport|Departure Airport Name|Yantai Penglai|string|| |FlightArrAirport|Arrival Airport Name|Guangzhou Baiyun|string|| |dst\_timezone|Destination Time Zone|28800|string|| |org\_timezone|Departure Time Zone|28800|string|| |StopAirportCode|Stopover Airport IATA Code||string|| |StopCity|Stopover City||string|| |StopFlag|Stop Flag|1|string|| |ShareFlag|Code Share Flag|1|string|| |VirtualFlag|Virtual Flag|0|string|| |LegFlag|Segment Flag|0|string|| |ShareFlightNo|Codeshare Flight Number||string|| |FlightCancelTime|Flight Cancellation Time||string|| |FillFlightNo|Substituted Flight Number||string|| |AlternateDeptime|Diverted Actual Departure Time||string|| |alternate\_info|Diversion Information||array|| |AlternateStatus|Diverted Flight Status||string|| |AlternateDepCity|Diverted Departure Airport Name||string|| |AlternateArrCity|Diverted Arrival Airport Name||string|| |AlternateDepAirport|Post-Diversion Departure Airport IATA Code||string|| |AlternateArrAirport|Post-Diversion Arrival Airport IATA Code||string|| |AlternateDeptimePlan|Post-Diversion Scheduled Takeoff Time||string|| |AlternateArrtimePlan|Post-Diversion Scheduled Arrival Time||string|| |AlternateArrtime|Diverted Actual Arrival Time||string|| |AlternateDepTimezone|Post-Diversion Departure Airport Time Zone||string|| |AlternateArrTimezone|Diversion Arrival Airport Time Zone||string|| |ArrOnCargodoorTime|Arrival Cargo Door Open Time||string|| |ArrOffCargodoorTime|Arrival Cargo Door Close Time||string|| |DepOnCargodoorTime|Takeoff Cargo Door Open Time||string|| |DepOffCargodoorTime|Departure Cargo Door Close Time||string|| |depctry|Departure Country Alpha-2 Code||string|| |arrctry|Arrival Country Alpha-2 Code||string|| |depcontinent|Departure Country Continent||string|| |depprov|Departure Airport Province||string|| |arrcontinent|Arrival Country Continent||string|| |arrprov|Arrival Airport Province||string|| |fid|Flight ID||string|| |FillFlightInfo|Extra Flight Info||object|| |FlightNo|Replacement Flight Number|9C668Q|string|| |FlightDepcode|Extra Flight Departure Airport IATA Code|URC|string|| |FlightArrcode|Replacement Flight Arrival Airport IATA Code|AAT|string|| |FlightState|Makeup Flight Status|schedule|string|| |FlightDeptimePlanDate|Replacement Flight Scheduled Departure Time|2025-11-14 12:30:00|string|| |FlightArrtimePlanDate|Extra Flight Scheduled Arrival Time|2025-11-14 13:40:00|string|| |FlightDeptimeDate|Replacement Flight Actual Departure Time|2025-11-14 12:30:00|string|| |FlightArrtimeDate|Replacement Flight Actual Departure Time|2025-11-14 13:40:00|string|| Response examples: Successful response: \[ { "fcategory" : "0", "ftype" : "B738", "fservice" : "J", "FirstClassCheckinTable" : "C3", "BusinessCheckinTable" : "C3", "FlightNo" : "SC7621", "FlightCompany" : "Shandong Airlines", "FlightDepcode" : "YNT", "FlightArrcode" : "CAN", "AircraftNumber" : "B306R", "FlightDeptimePlanDate" : "2023-12-22 08:20:00", "FlightArrtimePlanDate" : "2023-12-22 11:50:00", "FFlightDeptimePlanDate" : "2023-12-22 07:05:00", "FFlightArrtimePlanDate" : "2023-12-22 10:35:00", "FlightDeptimeReadyDate" : "2023-12-22 08:20:00", "FlightArrtimeReadyDate" : "2023-12-22 11:42:12", "FlightDeptimeDate" : "2023-12-22 08:28:00", "FlightArrtimeDate" : "2023-12-22 11:43:00", "FlightIngateTime" : "2023-12-22 11:57:00", "FlightOutgateTime" : "2023-12-22 08:09:00", "CheckinTable" : "C", "CheckDoor" : "gate 4", "BoardGate" : "15", "ReachExit" : "W1", "BaggageID" : "7", "BoardState" : "check-in", "BoardGateTime" : "1", "ArrStandGate" : "212", "DepStandGate" : "309", "DelayReason" : "Flow control", "Food" : "M", "LastCheckinTime" : "2023-12-22 07:45:00", "EstimateBoardingStartTime" : "0", "EstimateBoardingEndTime" : "0", "VeryZhunReadyDeptimeDate" : "2023-12-22 08:29:00", "VeryZhunReadyArrtimeDate" : "2023-12-22 11:43:18", "FlightState" : "schedule", "FlightStateNum" : 1, "FlightHTerminal" : "T1", "FlightTerminal" : "T1", "FlightDep" : "Yantai", "FlightArr" : "Guangzhou", "deptel" : "0535-5134352", "arrtel" : "020-96158", "airlinetel" : "95369", "FlightWaitData" : 0, "bridge" : "not utilize aerobridge", "arr\_bridge" : "utilize aerobridge", "TodayTimeRate" : "0", "OntimeRate" : "80.00%", "generic" : "Boeing 737-85N", "FlightYear" : 7.3, "ArrOntimeRate" : "83.33%", "DepWeather" : "Snow shower turning to cloudy|||89|-4/-10", "ArrWeather" : "Cloudy|||102|12/3", "FlightDuration" : "171", "distance" : "2132", "FastestExitDuration" : 62.8, "SlowestExitDuration" : 73.8, "FastestExitTime" : "2023-12-22 12:45:48", "SlowestExitTime" : "2023-12-22 12:56:48", "ChangePlane" : "0", "AssistFlightState" : "arrival", "DepAirportLat" : "37.660556", "DepAirportLon" : "120.979167", "DepTerminalLat" : "37.664518", "DepTerminalLon" : "120.99807", "ArrAirportLat" : "23.387861", "ArrAirportLon" : "113.29734", "ArrTerminalLat" : "23.393169", "ArrTerminalLon" : "113.309858", "FlightDepAirport" : "Yantai Penglai", "FlightArrAirport" : "Guangzhou Baiyun", "dst\_timezone" : "28800", "org\_timezone" : "28800", "StopAirportCode" : "0", "StopCity" : "0", "StopFlag" : "1", "ShareFlag" : "1", "VirtualFlag" : "0", "LegFlag" : "0", "ShareFlightNo" : "0", "FlightCancelTime" : "0", "FillFlightNo" : "0", "alternate\_info" : \[ { "AlternateDeptime" : "0", "AlternateStatus" : "0", "AlternateDepCity" : "0", "AlternateArrCity" : "0", "AlternateDepAirport" : "0", "AlternateArrAirport" : "0", "AlternateDeptimePlan" : "0", "AlternateArrtimePlan" : "0", "AlternateArrtime" : "0", "AlternateDepTimezone" : "0", "AlternateArrTimezone" : "0" } ], "ArrOnCargodoorTime" : "0", "ArrOffCargodoorTime" : "0", "DepOnCargodoorTime" : "0", "DepOffCargodoorTime" : "0", "depctry" : "0", "arrctry" : "0", "depcontinent" : "0", "depprov" : "0", "arrcontinent" : "0", "arrprov" : "0", "fid" : "0", "FillFlightInfo" : { "FlightNo" : "9C668Q", "FlightDepcode" : "URC", "FlightArrcode" : "AAT", "FlightState" : "schedule", "FlightDeptimePlanDate" : "2025-11-14 12:30:00", "FlightArrtimePlanDate" : "2025-11-14 13:40:00", "FlightDeptimeDate" : "2025-11-14 12:30:00", "FlightArrtimeDate" : "2025-11-14 13:40:00" } } ] Error response: { "error\_code": 3, "error": "Lack of parameters or parameter identification failed" } Response group 2 Query mode 1: Query by Airport IATA Code + Date + In/Outbound Flag |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |perpage|Items Per Page|100|No|number|| |lang|Language Type|en|No|string|| |token|Token||Yes|string|| |status|Inbound/Outbound Flag|DEP|No|string|| |date|Flight Date|2024-09-28|Yes|string|| |appid|App ID||Yes|string|| |airport|Airport IATA Code|PEK|Yes|string|| |page|Page Number|1|No|number|| |fid|Flight ID||No|string|| Query mode 2: Query by Airport IATA Code + Date + In/Outbound Flag + Time Range |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |token|Token||Yes|string|| |lang|Language Type|en|No|string|| |page|Page Number|1|No|number|| |date|Flight Date|2024-09-28|Yes|string|-3| |endAt|Period End Time|16:00|Yes|string|| |airport|Airport IATA Code|PEK|Yes|string|| |perpage|Items Per Page|100|No|number|| |appid|App ID||Yes|string|| |status|Inbound/Outbound Flag|DEP|No|string|| |startAt|Period Start Time|09:00|Yes|string|| |fid|Flight ID||No|string|| Query mode 3: Query by Departure Airport + Date + Arrival City |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |arrcity|Arrival City IATA Code|BJS|Yes|string|| |date|Departure Date|2024-09-28|Yes|string|| |dep|Departure Airport IATA Code|SHA|Yes|string|| |lang|Language Type|en|No|string|| |appid|App ID||Yes|string|| |token|Token||Yes|string|| |page|Page Number|1|No|number|| |perpage|Items Per Page|100|No|number|| Query mode 4: Query by Departure City + Date + Arrival Airport |Parameter|Description|Example|Required|Type|Rules| |-|-|-|-|-|-| |arr|Arrival Airport IATA Code|SHA|Yes|string|| |lang|Language Type|en|No|string|| |appid|App ID||Yes|string|| |date|Departure Date|2024-09-28|Yes|string|| |token|Token||Yes|string|| |depcity|Departure City IATA Code|BJS|Yes|string|| |page|Page Number|1|No|number|| |perpage|Items Per Page|100|No|number|| Response fields: |Parameter|Description|Example|Type|Rules| |-|-|-|-|-| |count|Record Count|1670|number|| |totalpage|Total Pages|10|number|| |page|Page Number|1|number|| |perpage|Page Size|20|number|| |data|Returned Data||array|| |ftype|Aircraft Type Code|B738|string|| |fservice|Type Of Aircraft|J|string|| |FirstClassCheckinTable|First Class Check-In Counter|C3|string|| |BusinessCheckinTable|Business Class Check-In Counter|C3|string|| |FlightNo|Flight Number|SC7621|string|| |FlightCompany|Airline Name|Shandong Airlines|string|| |FlightDepcode|Departure Airport IATA Code|YNT|string|| |FlightArrcode|Arrival Airport Code|CAN|string|| |AircraftNumber|Aircraft Number|B306R|string|| |FlightDeptimePlanDate|Scheduled Departure Time|2023-12-22 08:20:00|string|| |FlightArrtimePlanDate|Scheduled Arrival Time|2023-12-22 11:50:00|string|| |FFlightDeptimePlanDate|Original Scheduled Departure Time|2023-12-22 07:05:00|string|| |FFlightArrtimePlanDate|Original Scheduled Arrival Time|2023-12-22 10:35:00|string|| |FlightDeptimeReadyDate|Official Estimated Departure Time|2023-12-22 08:20:00|string|| |FlightArrtimeReadyDate|Official Estimated Arrival Time|2023-12-22 11:42:12|string|| |FlightDeptimeDate|Actual Departure Time|2023-12-22 08:28:00|string|| |FlightArrtimeDate|Actual Arrival Time|2023-12-22 11:43:00|string|| |FlightIngateTime|On-Block Actual Time|2023-12-22 11:57:00|string|| |FlightOutgateTime|Off-Block Actual Time|2023-12-22 08:09:00|string|| |CheckinTable|Check-In Counter|C|string|| |CheckDoor|Airport Entrance Door|gate 4|string|| |BoardGate|Boarding Gate|15|string|| |ReachExit|Airport Arrival Exit|W1|string|| |BaggageID|Baggage Turntable|7|string|| |BoardState|Boarding Status|check-in|string|| |BoardGateTime|Security Gate To Boarding Gate Walking Time|1|string|| |ArrStandGate|Inbound Aircraft Stand|212|string|| |DepStandGate|Departure Aircraft Stand|309|string|| |DelayReason|Delay Reason|Flow control|string|| |Food|Meal|M|string|| |LastCheckinTime|Latest Check-In Cutoff Time|2023-12-22 07:45:00|string|| |EstimateBoardingStartTime|Estimated Boarding Start Time||string|| |EstimateBoardingEndTime|Estimated Boarding End Time||string|| |VeryZhunReadyDeptimeDate|VariFlight Estimated Departure Time|2023-12-22 08:29:00|string|| |VeryZhunReadyArrtimeDate|VariFlight Estimated Arrival Time|2023-12-22 11:43:18|string|| |FlightState|Flight Status|schedule|string|| |FlightStateNum|Flight Status Value|1|number|| |FlightHTerminal|Departure Terminal|T1|string|| |FlightTerminal|Arrival Terminal|T1|string|| |FlightDep|Departure City Name|Yantai|string|| |FlightArr|Arrival City Name|Guangzhou|string|| |deptel|Departure Airport Information Hotline|0535-5134352|string|| |arrtel|Arrival Airport Information Hotline|020-96158|string|| |airlinetel|Airline Information Hotline|95369|string|| |FlightWaitData|Flight Queue Status|0|number|| |bridge|Outbound Boarding Bridge|not utilize aerobridge|string|| |arr\_bridge|Inbound Boarding Bridge|utilize aerobridge|string|| |TodayTimeRate|Today On-Time Rate||string|| |OntimeRate|Historical Punctuality Rate|80.00%|string|| |generic|Aircraft Type|Boeing 737-85N|string|| |FlightYear|Aircraft Age|7.3|number|| |ArrOntimeRate|Historical Arrival On-Time Rate|83.33%|string|| |DepWeather|Departure Airport Weather|Snow shower turning to cloudy\|\|\|89\|-4/-10|string|| |ArrWeather|Arrival Airport Weather|Cloudy\|\|\|102\|12/3|string|| |FlightDuration|Duration Of Flight|171|string|| |distance|Flight Distance|2132|string|| |FastestExitDuration|Fastest Exit Duration|62.8|number|| |SlowestExitDuration|Slowest Exit Duration|73.8|number|| |FastestExitTime|Fastest Exit Time|2023-12-22 12:45:48|string|| |SlowestExitTime|Slowest Exit Time|2023-12-22 12:56:48|string|| |ChangePlane|Aircraft Change Flag|0|string|| |AssistFlightState|Auxiliary Flight Status|arrival|string|| |DepAirportLat|Departure Airport Latitude|37.660556|string|| |DepAirportLon|Departure Airport Longitude|120.979167|string|| |DepTerminalLat|Departure Terminal Latitude|37.664518|string|| |DepTerminalLon|Departure Terminal Longitude|120.99807|string|| |ArrAirportLat|Arrival Airport Latitude|23.387861|string|| |ArrAirportLon|Arrival Airport Longitude|113.29734|string|| |ArrTerminalLat|Arrival Terminal Latitude|23.393169|string|| |ArrTerminalLon|Arrival Terminal Longitude|113.309858|string|| |FlightDepAirport|Departure Airport Name|Yantai Penglai|string|| |FlightArrAirport|Arrival Airport Name|Guangzhou Baiyun|string|| |dst\_timezone|Destination Time Zone|28800|string|| |org\_timezone|Departure Time Zone|28800|string|| |StopAirportCode|Stopover Airport IATA Code||string|| |StopCity|Stopover City||string|| |StopFlag|Stop Flag|1|string|| |ShareFlag|Code Share Flag|1|string|| |VirtualFlag|Virtual Flag|0|string|| |LegFlag|Segment Flag|0|string|| |ShareFlightNo|Codeshare Flight Number||string|| |FlightCancelTime|Flight Cancellation Time||string|| |FillFlightNo|Substituted Flight Number||string|| |alternate\_info|Diversion Information||array|| |AlternateStatus|Diverted Flight Status||string|| |AlternateDepCity|Diverted Departure Airport Name||string|| |AlternateArrCity|Diverted Arrival Airport Name||string|| |AlternateDepAirport|Post-Diversion Departure Airport IATA Code||string|| |AlternateArrAirport|Post-Diversion Arrival Airport IATA Code||string|| |AlternateDeptimePlan|Post-Diversion Scheduled Takeoff Time||string|| |AlternateArrtimePlan|Post-Diversion Scheduled Arrival Time||string|| |AlternateDeptime|Diverted Actual Departure Time||string|| |AlternateArrtime|Diverted Actual Arrival Time||string|| |AlternateDepTimezone|Post-Diversion Departure Airport Time Zone||string|| |AlternateArrTimezone|Diversion Arrival Airport Time Zone||string|| |ArrOnCargodoorTime|Arrival Cargo Door Open Time||string|| |ArrOffCargodoorTime|Arrival Cargo Door Close Time||string|| |DepOnCargodoorTime|Takeoff Cargo Door Open Time||string|| |DepOffCargodoorTime|Departure Cargo Door Close Time||string|| |depctry|Departure Country Alpha-2 Code||string|| |arrctry|Arrival Country Alpha-2 Code||string|| |depcontinent|Departure Country Continent||string|| |depprov|Departure Airport Province||string|| |arrcontinent|Arrival Country Continent||string|| |arrprov|Arrival Airport Province||string|| |fcategory|Flight Attribute|0|string|| |fid|Flight ID||string|| |FillFlightInfo|Extra Flight Info||object|| |FlightNo|Replacement Flight Number|9C668Q|string|| |FlightDepcode|Extra Flight Departure Airport IATA Code|URC|string|| |FlightArrcode|Replacement Flight Arrival Airport IATA Code|AAT|string|| |FlightState|Makeup Flight Status|schedule|string|| |FlightDeptimePlanDate|Extra Flight Scheduled Takeoff Time|2025-11-14 12:30:00|string|| |FlightArrtimePlanDate|Extra Flight Scheduled Arrival Time|2025-11-14 13:40:00|string|| |FlightDeptimeDate|Replacement Flight Actual Departure Time|2025-11-14 12:30:00|string|| |FlightArrtimeDate|Makeup Flight Actual Arrival Time|2025-11-14 13:40:00|string|| Response examples: Successful response: { "count" : 1670, "totalpage" : 10, "page" : 1, "perpage" : 20, "data" : \[ { "ftype" : "B738", "fservice" : "J", "FirstClassCheckinTable" : "C3", "BusinessCheckinTable" : "C3", "FlightNo" : "SC7621", "FlightCompany" : "Shandong Airlines", "FlightDepcode" : "YNT", "FlightArrcode" : "CAN", "AircraftNumber" : "B306R", "FlightDeptimePlanDate" : "2023-12-22 08:20:00", "FlightArrtimePlanDate" : "2023-12-22 11:50:00", "FFlightDeptimePlanDate" : "2023-12-22 07:05:00", "FFlightArrtimePlanDate" : "2023-12-22 10:35:00", "FlightDeptimeReadyDate" : "2023-12-22 08:20:00", "FlightArrtimeReadyDate" : "2023-12-22 11:42:12", "FlightDeptimeDate" : "2023-12-22 08:28:00", "FlightArrtimeDate" : "2023-12-22 11:43:00", "FlightIngateTime" : "2023-12-22 11:57:00", "FlightOutgateTime" : "2023-12-22 08:09:00", "CheckinTable" : "C", "CheckDoor" : "gate 4", "BoardGate" : "15", "ReachExit" : "W1", "BaggageID" : "7", "BoardState" : "check-in", "BoardGateTime" : "1", "ArrStandGate" : "212", "DepStandGate" : "309", "DelayReason" : "Flow control", "Food" : "M", "LastCheckinTime" : "2023-12-22 07:45:00", "EstimateBoardingStartTime" : "0", "EstimateBoardingEndTime" : "0", "VeryZhunReadyDeptimeDate" : "2023-12-22 08:29:00", "VeryZhunReadyArrtimeDate" : "2023-12-22 11:43:18", "FlightState" : "schedule", "FlightStateNum" : 1, "FlightHTerminal" : "T1", "FlightTerminal" : "T1", "FlightDep" : "Yantai", "FlightArr" : "Guangzhou", "deptel" : "0535-5134352", "arrtel" : "020-96158", "airlinetel" : "95369", "FlightWaitData" : 0, "bridge" : "not utilize aerobridge", "arr\_bridge" : "utilize aerobridge", "TodayTimeRate" : "0", "OntimeRate" : "80.00%", "generic" : "Boeing 737-85N", "FlightYear" : 7.3, "ArrOntimeRate" : "83.33%", "DepWeather" : "Snow shower turning to cloudy|||89|-4/-10", "ArrWeather" : "Cloudy|||102|12/3", "FlightDuration" : "171", "distance" : "2132", "FastestExitDuration" : 62.8, "SlowestExitDuration" : 73.8, "FastestExitTime" : "2023-12-22 12:45:48", "SlowestExitTime" : "2023-12-22 12:56:48", "ChangePlane" : "0", "AssistFlightState" : "arrival", "DepAirportLat" : "37.660556", "DepAirportLon" : "120.979167", "DepTerminalLat" : "37.664518", "DepTerminalLon" : "120.99807", "ArrAirportLat" : "23.387861", "ArrAirportLon" : "113.29734", "ArrTerminalLat" : "23.393169", "ArrTerminalLon" : "113.309858", "FlightDepAirport" : "Yantai Penglai", "FlightArrAirport" : "Guangzhou Baiyun", "dst\_timezone" : "28800", "org\_timezone" : "28800", "StopAirportCode" : "0", "StopCity" : "0", "StopFlag" : "1", "ShareFlag" : "1", "VirtualFlag" : "0", "LegFlag" : "0", "ShareFlightNo" : "0", "FlightCancelTime" : "0", "FillFlightNo" : "0", "alternate\_info" : \[ { "AlternateStatus" : "0", "AlternateDepCity" : "0", "AlternateArrCity" : "0", "AlternateDepAirport" : "0", "AlternateArrAirport" : "0", "AlternateDeptimePlan" : "0", "AlternateArrtimePlan" : "0", "AlternateDeptime" : "0", "AlternateArrtime" : "0", "AlternateDepTimezone" : "0", "AlternateArrTimezone" : "0" } ], "ArrOnCargodoorTime" : "0", "ArrOffCargodoorTime" : "0", "DepOnCargodoorTime" : "0", "DepOffCargodoorTime" : "0", "depctry" : "0", "arrctry" : "0", "depcontinent" : "0", "depprov" : "0", "arrcontinent" : "0", "arrprov" : "0", "fcategory" : "0", "fid" : "0", "FillFlightInfo" : { "FlightNo" : "9C668Q", "FlightDepcode" : "URC", "FlightArrcode" : "AAT", "FlightState" : "schedule", "FlightDeptimePlanDate" : "2025-11-14 12:30:00", "FlightArrtimePlanDate" : "2025-11-14 13:40:00", "FlightDeptimeDate" : "2025-11-14 12:30:00", "FlightArrtimeDate" : "2025-11-14 13:40:00" } } ] } Error response: { "error\_code": 3, "error": "Lack of parameters or parameter identification failed" } Error Codes |error\_code|Description| |-|-| |2|The requesting IP address is not on the IP allowlist| |3|Missing parameter or parameter validation failed (e.g. missing appid, invalid token, or invalid flight number / date / origin / destination format)| |4|No data permission (interface not enabled, disabled or expired)| |10|No data available (including the case where all records are filtered out by data permissions)| |500|Unknown error (internal server error)| Note: when the call quota is exceeded, the error code and message follow the quota policy configured for your account; refer to your service agreement. Flight Status Codes In response and push payloads, the FlightStateNum field carries the numeric status code and the FlightState field carries the status text, mapped as follows: |FlightStateNum|FlightState (zh)|FlightState (lang=EN)| |-|-|-| |0|计划|schedule| |1|起飞|departure| |2|到达|arrival| |3|取消|cancel| |4|延误|delay| |5|备降|diversion| |11|返航|return| |13|可能延误|delay alert| |14|可能取消|cancellation alert| |31|备降起飞|diverted flight departure| |32|备降到达|diverted flight arrival| |33|备降取消|diverted flight cancel| |41|返航起飞|returned flight departure| |42|返航到达|returned flight arrival| |43|返航取消|returned flight cancel| |73|提前取消|cancel in advance| Supplementary Notes • Airport departure/arrival (full-listing) queries are paginated by default: page starts at 1; perpage defaults to 20 and is capped at 1000. Responses contain count, totalpage, page, perpage and data (the array of records). • Flight numbers are normalized automatically: leading zeros after the airline code are stripped (e.g. CA0123 → CA123); 3-letter airline codes are converted to 2-letter IATA codes; 4-letter ICAO airport codes in dep/arr are converted to 3-letter IATA codes. • fid is a caller-defined identifier; when provided, it is echoed back verbatim in the response. • Pass lang=EN for English responses.