> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flightportrait.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Airline aircraft

> The aircraft the network currently observes flying this airline's callsigns, from the airframe lifetime record: an airframe counts when its latest airline stint is this airline's and it was seen in the record's last 60 days. Per aircraft: hex, reg, type, country (address block), built_year (registry, else tar1090), msn, since (start of the stint; since_first_seen true when that is simply where the network's view of the airframe begins), last_seen, airlines (distinct airlines the record saw it fly for) and notable (public incident reports and squawks). Observation, not a published fleet list. Rate: 300 per 600 s (bucket `refdata`). Cache: 1 h edge.



## OpenAPI

````yaml /openapi.json get /v1/airlines/{icao}/airframes
openapi: 3.1.0
info:
  title: FlightPortrait network API
  description: >-
    Open data from the FlightPortrait receiver network. No API key.


    **Stability.** Operations marked `x-stability: stable` only ever gain
    fields; names and types are frozen. Operations marked `x-stability: map`
    exist for the first-party map and can change with it.


    **Field dialects.** `/v1/aircraft` and `/v2/point` pass readsb's wire fields
    through unchanged (`hex`, `t`, `r`, `gs`, ...) so ecosystem tooling works
    as-is. Every other resource uses full words: `reg`, `type`, `org`, `dst`.
    Airport codes in history resources are IATA; `/v1/airports/{code}` accepts
    IATA or ICAO. Event times are unix seconds UTC; registry timestamps are ISO
    8601 UTC; board and schedule times are HH:MM in the origin airport's local
    time.


    **Data honesty.** History is observation, never an official registry. Gaps
    mean the network's sources did not hear it, nothing more. Responses carry
    `coverage: "observed"` as a reminder. The one exception is the airport
    departures board, whose rows may be inferred from published timetables —
    each board row carries its own `source` (observed / published / both); a
    published row is not a receiver observation. Likewise a flight's
    `route_source`: `observed` when both ends were seen, `observed+catalog` when
    the community supplied the end coverage never reached, `catalog` when it
    supplied both. Catalog answers are checked against observation and reviewed
    before they are served, and observation outranks them whenever it speaks.
    This API is read-only; answers go to the contribution door at
    contribute.flightportrait.com.


    **Errors.** Every non-200 body is `{"error": <code>, "detail": <human
    text>}` with `Cache-Control: no-store`. 404 `not_found` / `not_observed`,
    422 `invalid_request`, 429 `rate_limited` (with `Retry-After` and
    `RateLimit-*` headers), 503 `stale_snapshot` (live snapshot older than 60 s)
    or `artifact_unavailable` (a history artifact is not loaded).


    **Rate limits.** Per IP, per bucket, over a 600 second window; each
    operation notes its bucket and default limit. 429 means wait for
    `Retry-After` seconds.


    Data is ODbL 1.0. Credit "FlightPortrait network feeders" and link the
    credits page, which lists every source the data draws on and the credit each
    one asks for; republishing carries them too.

    Credits: https://flightportrait.com/network/credits.html

    Terms: https://flightportrait.com/network/terms
  version: 1.0.0
servers:
  - url: https://data.flightportrait.com
security: []
tags:
  - name: Live
    description: What the network hears now.
  - name: History
    description: Observed airframes, flights, airports.
  - name: Stations
    description: Feeder roster.
  - name: Reference
    description: Airlines, alliances, types.
  - name: Contributions
    description: What observation could not settle, and the community answers to it.
  - name: Meta
    description: Index and health.
paths:
  /v1/airlines/{icao}/airframes:
    get:
      tags:
        - Reference
      summary: Airline aircraft
      description: >-
        The aircraft the network currently observes flying this airline's
        callsigns, from the airframe lifetime record: an airframe counts when
        its latest airline stint is this airline's and it was seen in the
        record's last 60 days. Per aircraft: hex, reg, type, country (address
        block), built_year (registry, else tar1090), msn, since (start of the
        stint; since_first_seen true when that is simply where the network's
        view of the airframe begins), last_seen, airlines (distinct airlines the
        record saw it fly for) and notable (public incident reports and
        squawks). Observation, not a published fleet list. Rate: 300 per 600 s
        (bucket `refdata`). Cache: 1 h edge.
      operationId: airline_airframes
      parameters:
        - name: icao
          in: path
          required: true
          schema:
            type: string
            description: Airline ICAO code.
            title: Icao
          description: Airline ICAO code.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: {}
              example:
                icao: TVS
                as_of: '2026-09-22'
                current_days: 60
                airframes:
                  - hex: 49d283
                    reg: OK-TVY
                    type: B738
                    country: CZ
                    since: '2026-05-08'
                    since_first_seen: false
                    last_seen: '2026-09-21'
                    airlines: 3
                    notable: 0
        '404':
          description: Not found or not observed.
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                    description: >-
                      Machine code: not_found, not_observed, invalid_request,
                      rate_limited, stale_snapshot, artifact_unavailable,
                      upstream_unavailable.
                  detail:
                    type: string
                    description: Human-readable explanation.
                type: object
                required:
                  - error
                  - detail
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: >-
            Rate limited. Wait Retry-After seconds. Headers: Retry-After,
            RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset.
          content:
            application/json:
              schema:
                properties:
                  error:
                    type: string
                    description: >-
                      Machine code: not_found, not_observed, invalid_request,
                      rate_limited, stale_snapshot, artifact_unavailable,
                      upstream_unavailable.
                  detail:
                    type: string
                    description: Human-readable explanation.
                type: object
                required:
                  - error
                  - detail
              example:
                error: rate_limited
                detail: slow down
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError

````