You can contribute flight data to AeroDataBox from your own ADS-B receiver and earn API credits to access the API on top of / in lieu of paid subscription. This would potentially allow you to use AeroDataBox API for free.
NOTE: You may feed ADS-B to us at any point, but receiving API credits in return is ONLY possible when you subscribe to the API directly with us (NOT through marketplaces)!
Why Contribute
AeroDataBox builds part of its data coverage from a community of receivers. When you feed the aircraft positions your receiver picks up, you help improve that coverage. As a token of gratitude we now allow converting contributed ADS-B positions into API credits that you can use to access all our data.
API credits are tied to your API key. They work exactly the same way as API units granted to you monthly with your API subscription, but there are two critical differences:
- They do not expire. Once earned, they stay on your account until you use them.
- They work with or without a subscription. If you have no active subscription, credits alone let you call the API at standard rates. If you do have a subscription, credits are used automatically only after your monthly API units run out.
This means a receiver can power your API usage for free, or act as a buffer on top of a plan.
API credits are shown on your Subscription & Billing dashboard. They are separate from Flight Alert credits and API units.
What You Need
An ADS-B receiver
ADS-B (Automatic Dependent Surveillance–Broadcast) is a signal that most aircraft broadcast on 1090 MHz, containing their position, altitude, and identity. A receiver is a small setup that listens for these signals and decodes them.
A typical home receiver consists of:
- A single-board computer, most commonly a Raspberry Pi.
- A software-defined radio (SDR) USB dongle tuned for 1090 MHz.
- A 1090 MHz antenna, ideally mounted with a clear view of the sky.
You do not need aviation experience to run one. The hardware is inexpensive, and the software is free and well documented.
Where to learn and buy
These community guides explain the hardware and step-by-step assembly better than we can here:
- FlightAware — Build a PiAware receiver
- adsb.im — Ready-to-flash images for ADS-B feeders
- RTL-SDR.com — ADS-B aircraft radar guide
- SDR Enthusiasts — ADS-B documentation
Once your receiver is assembled and decoding aircraft, you are ready to feed AeroDataBox.
Feeding Data to AeroDataBox
We recommend Ultrafeeder (the docker-adsb-ultrafeeder container from the SDR Enthusiasts project). It decodes your SDR and can send data to many aggregators, including AeroDataBox, at the same time. See its full documentation here: docker-adsb-ultrafeeder on GitHub.
To feed AeroDataBox, add our endpoint to your Ultrafeeder configuration and set a receiver UUID.
Feeding Data to AeroDataBox
1. Choose a receiver ID (UUID)
Your receiver is identified by a UUID — an ID in the standard GUID format, for example:
1b4e28ba-2fa1-11d2-883f-0016d3cca427
This ID is important. It is how AeroDataBox recognizes your receiver, and it is the ID you will later use to claim the receiver on your account. Choose it once and keep it stable.
If you do not already have one, generate a random GUID. Any standard generator works, for example:
- guidgenerator.com
- On Linux/macOS: run
uuidgenin a terminal. - In PowerShell: run
[guid]::NewGuid().
ℹ️ Already feeding other networks? If you run a receiver that already feeds services such as ADSBExchange, adsb.lol, or airplanes.live, it very likely already has a UUID. You can reuse that same UUID for AeroDataBox — there is no need to generate a new one.
⚠️ Treat the UUID like an identifier you own. Keep a copy of it. If you lose it, your receiver will report under a new ID and you will need to claim the new one.
2. Add the AeroDataBox feed
Ultrafeeder runs as a Docker container, so you configure it through Docker. If you have not used Docker before, follow the SDR Enthusiasts Docker install guide first. There are two common ways to run it.
Option A: Docker Compose (recommended)
Docker Compose describes the container in a single text file named docker-compose.yml. This is the easiest method to maintain.
In your Ultrafeeder service, add our endpoint to ULTRAFEEDER_CONFIG and set the UUID:
services:
ultrafeeder:
image: ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder
container_name: ultrafeeder
restart: unless-stopped
environment:
# Your receiver ID in GUID format (see step 1):
- UUID=1b4e28ba-2fa1-11d2-883f-0016d3cca427
# Send ADS-B data to AeroDataBox (and, optionally, other aggregators):
- ULTRAFEEDER_CONFIG=
adsb,feed.aerodatabox.com,30004,beast_reduce_plus_out;
# ... your SDR and decoder settings (READSB_DEVICE_TYPE, READSB_LAT, etc.)
To run it, save the file (for example under /opt/adsb/docker-compose.yml), then from that folder start the container:
docker compose up -d
Whenever you change the file, run the same command again to apply the changes. A full, ready-to-edit example is provided in the Ultrafeeder repository.
Option B: docker run (without Compose)
If you prefer not to use Compose, you can start the same container directly. Pass the same settings as command-line options:
docker run -d --name ultrafeeder --restart unless-stopped \
-e UUID=1b4e28ba-2fa1-11d2-883f-0016d3cca427 \
-e ULTRAFEEDER_CONFIG="adsb,feed.aerodatabox.com,30004,beast_reduce_plus_out;" \
# ... your SDR and decoder settings, device access, and volumes
ghcr.io/sdr-enthusiasts/docker-adsb-ultrafeeder
The AeroDataBox feed line
Whichever method you use, the AeroDataBox entry is:
adsb,feed.aerodatabox.com,30004,beast_reduce_plus_out;
If you already feed other aggregators, simply add this line alongside them — keep each entry on its own line and end it with a semicolon.
ℹ️ Setting
UUIDapplies the same ID to every feed that accepts one. If you would rather use a different ID only for AeroDataBox, append it to the line instead:adsb,feed.aerodatabox.com,30004,beast_reduce_plus_out,uuid=<your-guid>;
Not using Docker at all?
Ultrafeeder itself is only distributed as a Docker container. If you run a native (non-Docker) decoder directly on your system, you can still feed AeroDataBox — but reporting a receiver UUID requires readsb (the same decoder Ultrafeeder uses under the hood). Other decoders like dump1090 decoders (dump1090-fa, dump1090-mutability) do not support a receiver UUID. While they still allow to contribute data, they may not allow us to identify your receiver for credit conversion.
With readsb, add an outgoing connection to our host and port, and point it at your UUID file:
--net-connector feed.aerodatabox.com,30004,beast_reduce_plus_out --uuid-file /path/to/your-uuid
Ready-made feeder images such as adsb.im (which use readsb under the hood) let you add a custom feed to feed.aerodatabox.com on port 30004 from a web interface, without editing files by hand.
Getting Data Back
If you want you can exchange contributed data to API credits that allow access to the rest of our data. This step is optional. If you are not interested in claiming your receiver and getting data back you may stop reading here.
Claiming Your Receiver
After your receiver feeds for the first time, AeroDataBox registers it automatically using the UUID you configured. There is nothing to create by hand.
To link that receiver to your account:
- Sign in and open the My Receivers page.
- Click Assign receiver.
- Enter your receiver’s UUID and confirm.
The receiver must be feeding and unclaimed. If you just started feeding, allow a short delay before it becomes claimable — the system needs time to recognize a new receiver.
Once claimed, the receiver appears in your list with its status (online/offline), IP address, creation date, last activity, and the total number of positions it has reported. Position and status figures update on a short interval, so very recent activity may briefly show as “Recently” rather than an exact time.
You can also unassign a receiver at any time. It keeps feeding, but it leaves your list and becomes available to claim again.
Converting Positions into API Credits
Each position your receiver reports counts toward a balance you can convert into API credits.
From the My Receivers page, click Convert to API credits to open the conversion dialog. There you can:
- See the total positions reported across all your receivers.
- See how many API credits those positions are currently worth.
- Enter how many API credits to receive and perform converstion.
Converted positions are deducted from the selected receivers, and the credits are added to your account immediately.
Remarks
- Currently positions convert to credits at a fixed rate (a number of positions per one API credit). This rate may change in the future.
- The minimum to convert is 500 API credits. If your receivers cannot reach that minimum yet, the dialog tells you and blocks the conversion until more positions accumulate.
- Only whole credits are converted. Positions that do not add up to a full credit are not lost — they stay on the receiver and count toward your next conversion.
- Conversion is one-way and final: once positions become credits, they cannot be turned back into positions.
- Data contribution and rewarding credits are governed by terms of use. Make sure to review relevant “Data contribution” section carefully.
Because reported figures refresh on an interval, positions from very recent activity may take a few minutes to appear as convertible.