MCP App Store
by KeenEthics
Jet Tracker icon

Jet Tracker

By Medralia

Get New App Alerts

Overview

Jet Tracker brings Brazilian business aviation data into ChatGPT. Ask about any Brazilian-registered aircraft and get the official registry record (RAB/ANAC), the owner set with the company record from the Receita Federal, airworthiness validity, tracked flight activity (ADS-B/FR24), overnight base, market listings and certified maintenance shops (ANAC RBAC 145), with US (FAA) and worldwide (GAMA) context. Built for aircraft brokers, maintenance shops, lessors and analysts: find who owns a tail, list aircraft by model, state or owner city, see which aircraft landed at an airport, and follow registry changes. Every number carries a source and an as-of date. A registry change is never called a sale, missing tracking is never called "does not fly", and personal tax IDs are never returned.

Tools

jt_aircraft_base

ChatGPT
Overnight ranking of one registration over N days (default 365): aerodromes where the aircraft slept: nights = midnights elapsed between each arrival and the next departure from the same aerodrome (an ongoing stay counts up to now, ongoing=true), overnightEvents = stays that crossed at least one midnight, plus share and last arrival, side by side with the inferred hub (hubIcao), the owner city at the Receita and baseUf (the registered state of the owner in the RAB, which is not a base). inferredBase is the top of the ranking and confidence (high/medium/low/none) depends on how many nights were tracked. Answers "where is this aircraft based" honestly: these facts can disagree.

jt_aircraft_flights

ChatGPT
Tracked flights of one Brazilian registration in a period (default last 90 days, max 365): departure, arrival, arrivalConfidence (landed, last_seen, reported, inferred, unknown), duration, plus coverage (status never_seen/active/lost, first and last tracked flight, flights on record). Newest first, max 200 per call, paginate with nextCursor. Coverage is partial and a third of flights end at strips without ground coverage (see the caveat).

jt_aircraft_history

ChatGPT
Ownership/operator timeline of a Brazilian-registered aircraft by tail (matricula), the foreign origin when it was imported, and published accidents/incidents (CENIPA/NTSB/ASN). timeline[] is one item per RAB monthly snapshot where the owner and/or operator SET changed (first item is always change=first_seen, the earliest snapshot on record, not an event); dates are the photo where the change was first observed, not the exact day. foreignOrigin is only filled when the RAB recorded a previous foreign mark; country is only set (US) when an FAA deregistration record matches the mark by N-number AND serial number together (N-number alone is reused by the FAA across decades and is not proof by itself). Natural-person names may appear (public RAB data); no personal document (CPF) is ever returned.

jt_aircraft_lookup

ChatGPT
Full profile of a Brazilian-registered aircraft by its registration mark (matricula: PR-XXX, PT-XXX, PP-XXX, PS-XXX): RAB status, model, year, owner set (names + CNPJs + Receita Federal record with city, CNAE, size, contact and company partners/QSA), operator, base state, lien (gravame), airworthiness (CVA/CA validity), flight activity (ADS-B/FR24), market presence (listings) and a published value reference by vintage (confidence = vintage or model_range). The RAB has no base city or airport; the owner city is in owner.rfb.municipio.

jt_aircraft_lookup_batch

ChatGPT
Same profile as jt_aircraft_lookup for up to 25 registrations in one call (compact detail by default). Each item is found:true with the profile, or found:false with the reason. Debits one lookup per registration from the daily quota.

jt_airport_lookup

ChatGPT
Find an airport by ICAO code, IATA code, city or name (Brazil first): coordinates, elevation, runway length and type. Ranking: exact code > exact city or name > scheduled service / public use > large > medium > small > heliport > has runway on record > has ICAO; rankingReason explains the top pick and alternatives[] lists the rest. Many small strips have no ICAO or runway length on record.

jt_airport_traffic

ChatGPT
Which aircraft arrived at or departed from an airport (ICAO) in a period, from tracked flights (ADS-B/FR24) kept by Jet Tracker: arrivals, departures, arrivalsInferred, nights slept there (nights = midnights elapsed between arrival and the next departure, ongoing stays count up to now; overnightEvents = number of stays that crossed at least one midnight), relation (based = hub or 4+ nights, recurring = 3+ movements, occasional), first and last seen, whether the airport is the aircraft inferred hub, plus model, owner set and RAB status. Default period: last 90 days; max 365. Ordered by nights then activity. Max 100 per call, paginate with nextCursor. Coverage is partial (see the caveat). It answers "who flies to my region", not "who is registered in my city".

jt_compute_tco

ChatGPT
Total cost of ownership across FIVE operating models (own, fractional, charter, jetcard, invest + charter) for a model with a full cost profile, given hours per year, horizon and opportunity rate: average annual and hourly cost, undiscounted horizon total, NPV and the year-by-year cashflows of every scenario (sign convention: outflows negative), plus assumptions (variable per hour and fixed per year from the SAME canonical cost engine as jt_model_specs, costModelVersion, fractional hours included). Accepts the catalog slug or any alias (phenom-300, embraer-phenom-300e, hawker 400xp); comparadorProfiles in jt_model_search lists the five profiles. Values in USD; Brazilian opportunity rate (CDI/Selic) by default.

jt_cross_registry

ChatGPT
Given a registration (Brazilian PR-/PT-, US N-number, or CA/AU/NZ/MX) or a serial number, find the same airframe in the other registries Jet Tracker indexes (Brazil, USA, Canada, Australia, New Zealand, Mexico), matched by serial + compatible manufacturer/model. Traces an aircraft moving between countries. Serial numbers repeat across models (see the caveat).

jt_fleet_stats

ChatGPT
Brazilian fleet of a catalog model (slug or alias, whole family; model.matchedBy says how it resolved) from the RAB. Two separate rulers: registryTotal (= total) counts REGISTRATIONS in every status, cancelled included (history); alive counts the LIVE fleet (operational + mark reservation + suspended) and is the headline. airframes and aliveAirframes deduplicate by serial (physical aircraft). byRbac is the split over the REGISTRY universe and byRbacAlive over the LIVE universe. Also as_of (RAB snapshot date), source.url (page where a human checks the records) and scope (the exact cut). Live count, not a survey.

jt_fractional_fit

ChatGPT
Score 0-100 of how well one registration fits a fractional/shared-ownership program, as a transparent sum of public-record evidence: owner role (natural person or personal holding), owner fleet size (a single-aircraft owner is a stronger fit), aircraft age, tracked utilization in the last 365 days, base state (Southeast/South demand pool) and model category (light jet, vlj, midsize or turboprop). Each contributing fact is in evidence[] with its weight; coverage[] says which inputs existed. It is a heuristic fit, not an appraisal or an offer.

jt_fractional_market

ChatGPT
Brazilian RBAC 91K shared/fractional ownership program: ANAC-certified administrators (EA, Especificação Administrativa) cross-referenced with their LIVE RAB fleet by CNPJ root, plus monitored non-certified operators (e.g. Flapper, no EA on file). Views: operators (roster: brand, legal name, CNPJ roots, EA revision/date, initial certification, authorized models, key people, owner states of the fleet (baseUfs), live fleet totals, certified/monitored flag), aircraft (live 91K fleet, one row per physical aircraft, paginated), models (fleet_by_model aggregated across operators, no double count for a co-operated tail), timeline (EA revision changelog + delisting events, all operators merged, newest first), bases (operator x owner state counts; the RAB has no aircraft base). Filter any view to one operator with operator (slug, brand, legal name or CNPJ/root). EA (Especificação Administrativa) data is the ANAC administrative specification for shared/fractional ownership programs (RBAC 91K), from published SEI documents: it authorizes MODELS, not tails. Fleet counts and the aircraft view are the RAB cross-referenced by the operator CNPJ root (getFractionalView), not the EA text. "monitored" operators (e.g. Flapper) run a shared-use program with no ANAC EA on file: they are never certified, and carry certified:false.

jt_fuel_prices

ChatGPT
Latest jet fuel reference prices in Brazil (ANP weekly national average for QAV/Jet A-1, R$ per liter) and the US (EIA Gulf Coast spot), both also in USD per gallon and per liter, the Brazil premium over the US in percent, the USD/BRL PTAX, monthly averages for the last N months (default 12, max 60) and the marked market events in that window. Wholesale references, not into-plane prices at a given airport.

jt_global_fleet_stats

ChatGPT
Worldwide general aviation factory shipments from the GAMA Shipment Report (2005 to the current quarter): view "industry" (jets, turboprops, pistons, turbine helicopters and billings by year), "regions" (business jets by region), "oems" (by manufacturer) or "models" (by model group, filter by oem or query). Deliveries, not fleet in service; current year is partial.

jt_ground_events

ChatGPT
Stays of 7+ days (minDays) at an airport without a following tracked departure, for one registration or for one airport (at least one is required). Each event says the airport, arrival, departure (null and ongoing=true if still there), days, whether it is the aircraft hub (atHub), and coverageGap=true when the next departure was seen from a different airport (the aircraft moved unseen: not a real stay). Useful to see where an aircraft spends long periods away from home (often a maintenance shop) and which aircraft are parked at a given airport. Default period: last 90 days; max 365. Max 100 per call. Tracked flights only (see the caveat).

jt_import_signals

ChatGPT
Brazilian mark reservations (reserva de marca) that appeared in the RAB in a period AND whose airframe exists in a foreign registry (FAA N-number or CA/AU/NZ/MX), matched by serial number + compatible model. One signal per physical AIRFRAME: when the same serial got several reservations (a broker reserving PS-XXX, PS-YYY and PR-ZZZ for one Learjet), registrations[] lists them all and airframeCount is distinct from registrationCount. This is the import signal: an aircraft entering Brazil, useful for brokers, lenders and insurers. Max 60 per call; scans up to 200 reservations per page, paginate with nextCursor. It is a signal, not a completed transfer (see the caveat).

jt_maintenance_signal

ChatGPT
Composes what is known about one registration into maintenance signals: CVA/CA validity (RAB), stays of 5+ days away from hub at aerodromes with a certified shop (RBAC 145, ANAC list), idle days, heavy or falling tracked utilization, coverage status and owner status. Each signal has a kind, a severity and the facts behind it. It never estimates an inspection due date or airframe hours: those are not in the data. The signals are hints to prioritise outreach, not facts about the aircraft.

jt_market_index

ChatGPT
Jet Tracker Index for the Brazilian used business aviation market (frozen monthly edition, the same numbers as jettracker.com.br/indice): per segment, the fleet base (operational plus suspended in the RAB), how many distinct aircraft are for sale as a range (low, central, high), that range as a share of the fleet, and the asking price (median and quartiles in USD, with how many listings had a price). reading=fragile rows give only the central count. Asking price, not closing price.

jt_market_listings

ChatGPT
For-sale listings of a catalog model (slug or alias, whole family) tracked by Jet Tracker: total and active count, priceStats (n, min, median, max) over active priced listings, and a sample with portal, listing URL, country/region, first and last seen and effectiveStatus (active, stale = not re-seen for 30+ days, expired = 60+ days). Prices as advertised by portals, not appraisals.

jt_model_maintenance

ChatGPT
Maintenance reference for one catalog model, each figure with its source: engine program (program name, TBO and HSI hours, overhaul reserve per hour per engine), published maintenance intervals, how many ANAC-certified shops (RBAC 145) are rated for the model, and its published accidents and incidents (CENIPA/NTSB/ASN: totals, fatal, last 10 years, most recent). Model level only: Jet Tracker has no airframe or engine hours, so it never says when a given aircraft is due. Built for MRO, insurer, lender or buyer questions about a type; the events of one tail are in jt_aircraft_history.

jt_model_moves

ChatGPT
How the Brazilian fleet of a model (whole family by default) moved between monthly RAB snapshots over the last N months (default 12, max 120): entries, entries that came in as mark reservation or suspended, exits and net, per snapshot and in total, plus the live fleet today. Snapshots where the catalog gained coverage are flagged coverageJump (old registrations appearing at once, not demand). Same numbers as the Jet Tracker model page and market view. For the aircraft behind each movement, jt_registry_changes lists them.

jt_model_specs

ChatGPT
Technical specs of a catalog model (slug, family slug, slug with or without manufacturer prefix, or name; model.matchedBy says how it was resolved) plus the canonical operating cost engine: variable cost per hour, fixed cost per year, total per hour at 400 h/year, acquisition curve, with costModelVersion. Same numbers as the Jet Tracker model page and as jt_compute_tco assumptions.

jt_movements

ChatGPT
DEPRECATED name of jt_registry_changes (same behaviour, kept until 2026-12-09). Changes in the Brazilian REGISTRY (RAB) between two dates, not airport movements: entry (new registration), exit (cancelled), owner_change, operator_change, status_change. Read from the RAB changelog kept by Jet Tracker since 2026-02-03. Filters (type, model, owner state uf, RBAC, segment; default executive) are applied in the database: total is the exact count for the filter in the period, found:false means zero in the whole period, and truncated only means there are more pages (nextCursor). Max 200 per call. Each row carries sameAirframeAs (other live registrations of the same serial + model: three reservations for one airframe are one aircraft, count once). A registry change is NOT a sale (see the caveat field). Aircraft arriving at or leaving an airport are not registry changes.

jt_mro_capabilities

ChatGPT
What a Brazilian certified maintenance shop (oficina, RBAC 145) is rated by ANAC to work on, from its Operations Specifications (EO): airframes (including helicopters), engines, propellers and equipment, each with the ANAC limitation text, plus the shop bases and status. Two modes, one per call. (1) A shop by com (ANAC certificate number), cnpj or q (name): returns the profile, capabilities, fleetSearchModels (catalog slugs ready for jt_fleet_search) and, when the account includes fleet counts, the live Brazilian fleet per rated model with how many have CVA expiring in 60 days, each split into exact (the aircraft ANAC designation is an EO item) and approximate (counted only because its catalog model was linked to a neighbouring EO item); each capability carries matchType exact or approximate. Quote the exact numbers as the shop market and present approximate ones as needing a rating check. A name matching several shops returns up to 5 candidates: let the user pick one. (2) model (catalog slug): certified shops rated for that model: total is always returned; the list (up to 50, full ratings first, then those limited to light inspections) uses the daily records quota. Use this when a lead is a maintenance shop: jt_company_search finds its CNPJ but a shop rarely owns aircraft, so its market is the fleet of the models in its EO, not jt_owner_fleet.

jt_operator_profile

ChatGPT
The company-side profile behind a Brazilian operator/owner group, the same cut as the public /operadores page: legal entities (CNPJ roots, role, Receita Federal status), dominant RBAC, the RBAC-91K shared-ownership program when the group runs one (EA revision, authorized models), fleet aggregates (total, operational, top models, base states, capped at 100 tails with fleetTruncated when the group is bigger), decision-maker names from the public QSA (no CPF, ever), a minimal vulnerability read (CVA expiring within 90 days, tails idle 90+ tracked days, liens/gravame count) and whether the group also runs an RBAC 145 maintenance shop. query accepts a brand/URL slug (as in /operadores/<slug>), a commercial or legal name, or a CNPJ (14 digits) or its 8-digit root. A brand spanning several CNPJs (e.g. a cooperative plus its holding) is returned as ONE group. found:false means no group matched the text (spelling or a CNPJ root can differ).

jt_operators_stats

ChatGPT
AGGREGATED operator statistics of a model in Brazil: distinct operators (by CNPJ root), RBAC 91 vs 135 split, concentration by state, average fleet age, plus as_of (RAB snapshot date), source.url and scope (only mark reservations or tails classified as RBAC 91/135). This aggregate never names operators; jt_fleet_search and jt_owner_fleet do return names (their own access rules apply).

jt_owner_fleet

ChatGPT
Aircraft in the Brazilian registry linked to a company CNPJ, matched by the 8-digit company root (a branch does not hide the parent company aircraft). Each item says the role (owner = belongs to it, operator = only operates it), status, segment, lien and co-owners. An empty list is a valid answer ("no aircraft" is information).

jt_owner_group

ChatGPT
Companies related to a CNPJ (or to the owner of a registration) that own or operate live Brazilian aircraft, with why they are linked (basis: same_root, seed_partner_company, seed_is_partner, shared_partner, same_email, same_phone, same_address, same_name_prefix), a confidence per member (high = same root, partner link or shared partner; medium = shared e-mail, or phone + address; low = only a shared address or phone, which at an airport, hangar or accounting office links unrelated companies), the shared partner names (public QSA), the Receita record, the owner role and the aircraft of each member. aircraftTotal counts every member; aircraftTotalConfident excludes low-confidence members. The RAB splits a group into many CNPJs (SPEs, farms, holdings, family companies); this gives the whole set in one call so one conversation covers all of them. Max 50 members. Links are hints from public records, not a legal structure (see the caveat).

jt_parts_suppliers

ChatGPT
Companies accredited or registered to make or sell aircraft parts (OEM portals, ANAC RBAC 21 and FAA/ASA-100 accredited distributors, Brazilian CESAER/DCTA registry, curated traders), with city, credentials, part types, website and public contact. Free-text q matches name, category, part type, brand, credential and city (accents ignored), e.g. "pneus", "avionica", "PT6A", "Pratt". total is always returned; the list (default 20, max 50, OEM and curated first) uses the daily records quota. It is a directory, not a stock check.

jt_price_history

ChatGPT
Curated pre-owned price curve of a catalog model (by slug): current median/min/max, history by year and 5-year residual, with research date. found=false means there is no curated curve for this model.

jt_registry_changes

ChatGPT
Changes in the Brazilian REGISTRY (RAB) between two dates, not airport movements: entry (new registration), exit (cancelled), owner_change, operator_change, status_change. Read from the RAB changelog kept by Jet Tracker since 2026-02-03. Filters (type, model, owner state uf, RBAC, segment; default executive) are applied in the database: total is the exact count for the filter in the period, found:false means zero in the whole period, and truncated only means there are more pages (nextCursor). Max 200 per call. Each row carries sameAirframeAs (other live registrations of the same serial + model: three reservations for one airframe are one aircraft, count once). A registry change is NOT a sale (see the caveat field). Aircraft arriving at or leaving an airport are not registry changes.

jt_runway_check

ChatGPT
Can this model operate at this airport? Compares the model takeoff/landing distances with the runway of the airport (ICAO, city or name). verdict is the overall answer: ok, marginal, insufficient, unknown, or conditional (fits a private RBAC 91 flight but NOT an RBAC 135 air-taxi operation with the 60% landing factor). verdictByRegime gives private, taxi135Dry and taxi135Wet separately.

jt_sale_propensity

ChatGPT
Score 0-100 of how likely one registration is to reach the market, built as a transparent sum of public-record evidence: idle days (tracked flights), CVA/CA status, owner change recency (registry history), active or stale market listing, owner role (a financeira/creditor selling collateral is a stronger signal), aircraft age and, when the internal predictor has scored this tail, its probability. Each contributing fact is in evidence[] with its weight; coverage[] says which inputs existed. It is not a prediction of sale: it ranks who to contact first.

jt_sector_indicators

ChatGPT
Brazilian aviation sector indicators from official open data (Comex Stat and ANP), monthly: imports and exports of aircraft, parts and drones (chapter 88, FOB USD), aircraft imported by size class (units), top origin and destination countries over 12 months, and jet fuel (QAV) and aviation gasoline (AVGAS) volume sold by distributors, with sales by state. Year to date against the same months of the prior year. Trade includes commercial and military aviation.

jt_status

ChatGPT
Health of the Jet Tracker data behind the tools: last sync of each source (RAB/ANAC registry, Receita Federal records, FAA registry, tracked flights, market listings, GAMA report, RBAC 91K programs) with lag in hours, tracking coverage, the tools this key can call, and the daily quota used, remaining and resetAt (UTC).

jt_trip_cost

ChatGPT
Cost of a trip origin to destination (ICAO codes or city names) for a model with a full cost profile, across charter, fractional and owned (variable cost only) models, with distance and block time. Same aliases as jt_compute_tco. Origin equal to destination returns error degenerate_route.

jt_us_aircraft_lookup

ChatGPT
US-registered aircraft (FAA registry) by N-number: status (here "reserve" is FAA code R, registration pending, never a mark reservation; see statusNote), model, year, airworthiness date, registrant type, registrant city/state (base.city / base.state: the FAA registrant address, not a hangar), ICAO24 hex, plus the Jet Tracker link to Brazil: the same airframe (serial + compatible model) found in the Brazilian registry (a PR-/PT- mark reservation means the aircraft is likely being imported into Brazil). Individuals are not named.

jt_watch_add

ChatGPT
Add registration(s) to this account's watch list WITHOUT touching the rest (unlike jt_watch_set, which replaces the whole list). Invalid registrations come back in invalid[]; already-watched ones come back in alreadyWatched[]. Max 500 watched registrations total. Requires a Jet Tracker account connection (OAuth or an account key), not a system key.

jt_watch_list

ChatGPT
Registrations this account watches: the webhook delivers a change (owner, operator, status, owner state, lien) only for tails in this list. Requires a Jet Tracker account connection (OAuth or an account key), not a system key.

jt_watch_remove

ChatGPT
Remove registration(s) from this account's watch list WITHOUT touching the rest. Invalid registrations come back in invalid[]. Requires a Jet Tracker account connection (OAuth or an account key), not a system key.

jt_watch_rule_add

ChatGPT
Create a watch rule by profile: every field is optional and null means "no filter on this"; at least one of modelFamily/uf/category/rbac should be set or the rule watches the whole live fleet. eventTypes picks which business events this rule delivers (registry.changed, airworthiness.cva_expiring, airworthiness.cva_expired, flight.ground_stay, program.ea_revised). dryRun=true only returns preview.count (how many live registrations match right now) without saving. Requires a Jet Tracker account connection (OAuth or an account key), not a system key.

jt_watch_rule_remove

ChatGPT
Delete a watch-by-profile rule by id (ids come from jt_watch_rules_list). Does not touch explicit registrations from jt_watch_set/jt_watch_add. Requires a Jet Tracker account connection (OAuth or an account key), not a system key.

jt_watch_rules_list

ChatGPT
Rules this account uses to watch aircraft BY PROFILE (model family, owner state, category, RBAC classification) instead of one registration at a time: every live tail matching a rule is watched, including ones registered after the rule was created. Adds to (never replaces) the explicit list from jt_watch_list. Max 50 rules. Requires a Jet Tracker account connection (OAuth or an account key), not a system key.

jt_watch_set

ChatGPT
Replace the whole watch list of this account (idempotent: sending the same list twice changes nothing). Watched aircraft feed the account webhook with registry.changed plus business events: airworthiness.cva_expiring (30 and 7 days), airworthiness.cva_expired and flight.ground_stay. Invalid registrations are returned in invalid[] and the rest is saved. Max 500. Requires a Jet Tracker account connection (OAuth or an account key), not a system key.

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

Similar Apps