Status: Live. Call the authenticated, read-only ADSBiq gRPC API through public TLS using the versioned Protobuf contract.

Endpoint and contract

Endpoint: adsbiq.com:443 using standard gRPC over TLS and HTTP/2. Download the versioned adsbiq.proto contract.

python -m grpc_tools.protoc -I . \
  --python_out=. --grpc_python_out=. adsbiq.proto

import os, grpc
import adsbiq_pb2, adsbiq_pb2_grpc

# Store the key in ADSBIQ_API_KEY; do not put it in source or a URL.
metadata = (("authorization", f"Bearer {os.environ['ADSBIQ_API_KEY']}"),)
with grpc.secure_channel("adsbiq.com:443",
                         grpc.ssl_channel_credentials()) as channel:
    client = adsbiq_pb2_grpc.AircraftServiceStub(channel)
    result = client.NearbyAircraft(
        adsbiq_pb2.NearbyAircraftRequest(
            lat=26.68, lon=-80.10, radius_nm=50, limit=10),
        metadata=metadata, timeout=10)

RPC methods

Authentication and errors

Send authorization: Bearer … as gRPC metadata. API keys are never accepted in the target URI. Standard status codes include UNAUTHENTICATED, INVALID_ARGUMENT, NOT_FOUND, RESOURCE_EXHAUSTED, and UNAVAILABLE. Always set a client deadline.

Production bounds

Each feeder is limited to 60 RPCs per minute. Nearby radius cannot exceed 250 nautical miles and results cannot exceed 50 aircraft. Server scans are capped at 5,000 aircraft, requests at 8 KiB, responses at 1 MiB, concurrent HTTP/2 streams at 32, and worker threads at four. The service is read-only.

Compatibility and verification

Contract version: adsbiq.v1. Python bindings use grpcio 1.78.0 and protobuf 6.33.5. Production verification exercises all three layers—direct service, nginx origin TLS/HTTP/2, and public Cloudflare TLS—with authenticated bounded calls.


All integration technologies · REST docs · Open data