Skip to content

Free tool · live search, rate-limited

Chengdu to Beijing flight prices, live

Pick a date and see what CTU → PEK actually costs right now, next to Google's own view of whether that is a low, typical or high fare for this route.

Runs a REAL search on our key, live against Google Flights, capped per visitor per day. Complex routes can take ~5–20s.

CTU → PEK

nothing searched yet

Nothing here yet, and nothing cached from months ago pretending to be current. Pick a date and press Check the price: the fares below come from one real search against live Google Flights, with Google's own price band and verdict attached.

Know before the response shape changes

One email when something ships that changes what you can build: a new endpoint, a changed field, a deprecation, a price move. Nothing else goes to this list.

The address is stored to send that list and nothing else. It is not sold, not shared with the marketplaces, and not used to build a profile. Unsubscribe from any email, or from the unsubscribe page. More in privacy.

This route

CTU → PEK, in facts rather than adjectives

Airport names, countries and time zones come from the OurAirports-derived airport dataset. The distance is great-circle, computed from those two coordinate pairs. Prices are not here because a price that is not live is not a price.

Origin

Chengdu Shuangliu International AirportCTU · Chengdu, China

Destination

Beijing Capital International AirportPEK · Beijing, China

Great-circle distance

1,556 km967 miles between the two airports

Time zones

Asia/Shanghaito Asia/Shanghai

Search type

DomesticBoth airports are in China. The request is identical either way: two IATA codes and a date.

Why this page exists

busiest routes by available seats, 2025Rank 21 in that published table. We build a page for a route people actually fly, and only for those.

The bit other price checkers skip

A price on its own does not tell you anything

Every fare here carries the context that makes it a decision instead of a number.

price_insights_low / high

The band Google has seen this route trade in. A fare near the bottom of the band is a different thing from the cheapest fare on a bad day.

The verdict

price_range_in_relation_to_other_periods is Google’s own low, typical or high call, published where Google publishes it. Most flight APIs drop this field entirely.

X-Search-Status

The header that separates "no flights exist" from "the search did not finish". Without it, an empty array is ambiguous and you end up telling users there are no flights when there are.

One date here, every date on your key

Checking CTU → PEK once is a page. Checking it every morning is an API

A fare alert, a price history, a comparison across a whole calendar: all of them are this same request on a schedule, and none of them fit in a free tool that runs on our key.

Routes next door

Other pages through CTU and PEK

Every one of these is in the same published ranking, and every one runs the same live search.

The full list of route and city pages is on the tools index.

Questions, answered plainly

How much is a flight from Chengdu to Beijing?
It depends entirely on the date, which is why this page runs the search instead of printing a number. Pick a date above and the answer comes from one real Google Flights search made while you wait, with the fare, the airline, the stops and the duration.
Is that fare a good one?
That is what the band under each row is for. Google publishes price_insights_low and price_insights_high for the route, plus a low, typical or high verdict against its own history, and we pass all three through. A cheap-looking fare marked "high" is not a bargain, and a fare marked "low" usually is.
Do I need an account or a key to use this?
No. No account, no email, nothing gated. The search runs on our key, which is why it is capped per visitor per day. If you want to run it in bulk, that is the point at which a key of your own makes sense.
The result came back empty. Is the tool broken?
Probably not. The API reports search outcome in an X-Search-Status header: "empty" means Google genuinely returned no itineraries for that route and date, which is itself an answer, and "degraded" means the search did not complete and should be retried. Most APIs return an empty list for both and let you guess.
Can I check PEK to CTU as well?
Yes. Swap the codes in the form. Nothing about the request depends on the direction.
How would I do this from my own code?
The card under the result is the same request in cURL, Python and Node, filled in with this route and date, against either the RapidAPI host or api.flightpowers.com. One POST, one JSON array back.