"Cessna 3-4-Papa, squawk four-two-seven-one." If you've ever listened to air traffic control, you've heard controllers hand out squawk codes — four-digit numbers pilots dial into the transponder. They're how ATC keeps every blip on the radar sorted out, and three of them — 7500, 7600, and 7700 — are reserved for emergencies every pilot memorizes. Here's what a squawk code is, how it works, and what those special codes mean.
What a squawk code is
A squawk code is a four-digit number the pilot sets on the aircraft's transponder so air traffic control can identify that specific aircraft on radar. Each digit runs 0 through 7 (the codes are octal), which gives 4,096 possible combinations from 0000 to 7777. When ATC assigns you a code and you dial it in, your transponder broadcasts it back on every interrogation, and the controller's screen tags your radar return with your callsign and altitude. Without it, you're an anonymous dot; with it, you're your flight.
The odd word "squawk" is a leftover from World War II. The original military identification system was codenamed "Parrot," so telling a friendly aircraft to turn on its transponder became "squawk" — and the name stuck into civil aviation.

How it works with the transponder
The squawk is the Mode A part of the transponder's reply — the identity code. Mode C adds pressure altitude, so the controller sees who you are and how high you are. Mode S (and ADS-B on top of it) adds much more, including the aircraft's permanent ICAO 24-bit hex address.
That last point trips people up, so it's worth being clear: the squawk code and the hex address are different things. The squawk is a temporary, four-digit code ATC assigns for this flight and reassigns to someone else tomorrow. The ICAO24 hex is baked into the airframe for life. One is a session ticket; the other is a permanent serial number.
The special codes: 7500, 7600, 7700
Most codes are unremarkable, but a handful are reserved worldwide and never assigned as routine — because dialing one sets off an immediate alert on every controller's scope. The three emergencies:
- 7500 — unlawful interference (hijack). The universal signal that the aircraft has been commandeered. Controllers treat it with extreme seriousness and will discreetly seek confirmation.
- 7600 — lost communications. Set this when the radio fails, so ATC knows you can't hear them and will accommodate you (light signals, expected routing).
- 7700 — general emergency. The catch-all for any emergency — medical, mechanical, fire. It flags the flight for priority handling everywhere.
A common mnemonic keeps them straight: 7500 you've been taken (hijack), 7600 you can't hear (radio), 7700 you're going to heaven if this isn't handled (emergency).
A few non-emergency codes are also standardized: 1200 is the VFR "just flying around" code in the US, 7000 is its equivalent in most of Europe, and 2000 is a default when entering airspace without an assigned code.

Squawk, callsign, and hex — three identifiers
A single flight carries three identifiers that people constantly mix up, and knowing which is which is the key to understanding flight data:
- Squawk code (
4271) — the temporary Mode A code ATC assigns for this flight. - Callsign (
BAW117) — the radio/operational identity, tied to the flight (see callsign vs flight number). - ICAO24 hex (
40621D) — the permanent airframe address, and the key ADS-B tracking is actually built on.
For developers, that hierarchy matters: when you consume live tracking data, the aircraft is anchored by its hex address, not its squawk. SkyLink API's ADS-B endpoint returns each aircraft's identity and position keyed on that permanent hex, which you can enrich with registration and type via aircraft lookup. For the broadcast itself, What Is ADS-B? explains the signal all of this rides on.
SkyLink API gives you a free tier of 1,000 requests/month to build live-tracking tools against, with paid plans from $19/mo for production. It's available through the free trial — sign up, grab a key, and turn transponder signals into a live picture.
