insights.read reads the Workforce: what the pilots of MyPilotIndex look like as a market, in aggregates. A pilot app with a grant that holds insights.position reads where one pilot stands against that pilot’s cohort.
Read the Workforce
overview, geography, qualifications, aircraft, score and intent. Each takes the same filters a member’s screen takes, at most three at a time. The API reference lists them. An unknown filter, a repeated one, or a value outside the vocabulary answers 400 invalid_request, and a name outside the six screens answers 404 not_found.
How the figures are protected
The server applies the floors, so your code never has to:- A cohort under the floor answers
status: "insufficient"and no section. - A cell under its floor is suppressed, and the share it held shows in
unpublished_pct. - A filter that would leave too few pilots is dropped, and the answer says so in
filters.broadened.
schema_version, screen, generated_at and cohort, with status not_ready.
Show a pilot their position
total_hours, pic_hours, score, type_rating_count, years_experience and international_hours. Each has a status of ok, missing or insufficient, and percentile and cohort_median appear only with ok.
cohort.level says which rung of the cohort answered, from 1, the most specific, to 4, everyone. The answer names the pilot nowhere.
