fw.ops

JSON Payload Documentation: Schedule Update

This documentation makes reference to the layout fw.ops-scheduleWebhook.

1. Overview

This document describes the structure of the Schedule update JSON payload. This payload provides a comprehensive update related to airport turnaround operations. It includes details about the event time, the specific stand, the aircraft, and the associated flight schedule (arrival and/or departure).

2. Root Object Structure

The root object contains the following top-level properties:

Field
Type
Description

timestamp

string

The ISO 8601 timestamp indicating when the update was generated.

name

string

The name of the event generator tool. It is a free string like "TOPs update" or "Polaris update".

stand

object

An object containing details about the primary airport stand for this event.

fwot

object

An object containing aircraft-specific information.

schedule

array

An array of flight objects associated with this update.

3. Field Details

3.1. stand Object

Details about the airport stand related to this update.

  • name (string): The identifier for the stand (e.g., "C02").

  • type (string): The category or type of stand (e.g., "PLB stand").

  • position (object): An object containing the coordinates and orientation of the stand.

    • x (number): The X-coordinate.

    • y (number): The Y-coordinate.

    • z (number): The Z-coordinate (e.g., altitude).

    • heading (number): The orientation of the stand, likely in degrees.

3.2 fwot Object

Contains aircraft-specific information.

  • reg (string): The aircraft registration number (tail number), e.g., "G-ABCD".

3.3. schedule Array

An array containing one or more flight objects. Each object represents a flight leg (e.g., an arrival or a departure). Each object in the array has the following structure:

  • flightId (string): The unique identifier for the flight, typically the callsign (e.g., "BA123M").

  • flightNumber (string): The commercial flight number (e.g., "1234").

  • from (object): An object detailing the flight's origin. See Flight Leg Details.

  • to (object): An object detailing the flight's destination. See Flight Leg Details.

3.4. Flight Leg Details (from / to Objects)

The from (origin) and to (destination) objects share a similar structure to describe a flight leg's endpoint.

  • ETD (string): (In from object) The Estimated Time of Departure in ISO 8601 format.

  • ETA (string): (In to object) The Estimated Time of Arrival in ISO 8601 format.

  • icao (string): The 4-letter ICAO code for the airport (e.g., "EGLL").

  • iata (string): The 3-letter IATA code for the airport (e.g., "LHR").

  • stand (object): Details about the arrival or departure stand.

    • name (string): The stand identifier at that airport (e.g., "B01").

    • type (string): The type of stand at that airport (e.g., "PLB stand").

4. Full JSON Example

{
    "timestamp": "2019-01-01T00:00:00Z",
    "name": "TOPs update",
    "stand": {
        "name": "C02",
        "type": "PLB stand"
    },
    "fwot": {
        "reg": "G-ABCD"
    },
    "schedule": [
        {
            "flightId": "BA123M", // the callsign
            "flightNumber": "1234",
            "from": {
                "ETD": "2024-08-24T15:39:00Z",
                "icao": "LHR",
                "iata": "LHR",
                "stand": {
                    "name": "B01",
                    "type": "PLB stand"
                }
            },
            "to": {
                "ETA": "2024-08-24T22:12:00Z",
                "icao": "LFBO",
                "iata": "TLS",
                "stand": {
                    "name": "101",
                    "type": "PLB stand"
                }
            }
        }
    ]
}

JSON Schema: Mandatory fields

Mandatory Fields:

  • At the root level, schedule and fwot are required (along with timestamp and name).

  • The fwot object must contain the reg field.

  • Each item in the schedule array must contain a from object, which in turn must contain the ETD field.

Schema Definition:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Schedule Update",
  "description": "Payload describing a TOPs update, including stand, aircraft, and schedule information.",
  "type": "object",
  "properties": {
    "timestamp": {
      "description": "The ISO 8601 timestamp when the update was generated.",
      "type": "string",
      "format": "date-time"
    },
    "name": {
      "description": "The name of the event type.",
      "type": "string",
      "const": "TOPs update"
    },
    "stand": {
      "description": "Details about the primary airport stand for this event.",
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "position": {
          "type": "object",
          "properties": {
            "x": {
              "type": "number"
            },
            "y": {
              "type": "number"
            },
            "z": {
              "type": "number"
            },
            "heading": {
              "type": "number"
            }
          },
          "required": ["x", "y", "z", "heading"]
        }
      },
      "required": ["name", "type", "position"]
    },
    "fwot": {
      "description": "Aircraft-specific information.",
      "type": "object",
      "properties": {
        "reg": {
          "description": "Aircraft registration number (tail number).",
          "type": "string"
        }
      },
      "required": ["reg"]
    },
    "schedule": {
      "description": "An array of flight objects associated with this update.",
      "type": "array",
      "items": {
        "$ref": "#/definitions/flight"
      }
    }
  },
  "required": ["timestamp", "name", "fwot", "schedule"],
  "definitions": {
    "flight": {
      "type": "object",
      "properties": {
        "flightId": {
          "description": "The unique identifier for the flight (callsign).",
          "type": "string"
        },
        "flightNumber": {
          "type": "string"
        },
        "from": {
          "description": "Flight origin details.",
          "$ref": "#/definitions/flightLegFrom"
        },
        "to": {
          "description": "Flight destination details.",
          "$ref": "#/definitions/flightLegTo"
        }
      },
      "required": ["flightId", "from", "to"]
    },
    "flightLegFrom": {
      "type": "object",
      "properties": {
        "ETD": {
          "description": "Estimated Time of Departure (ISO 8601).",
          "type": "string",
          "format": "date-time"
        },
        "icao": {
          "type": "string"
        },
        "iata": {
          "type": "string"
        },
        "stand": {
          "$ref": "#/definitions/legStand"
        }
      },
      "required": ["ETD"]
    },
    "flightLegTo": {
      "type": "object",
      "properties": {
        "ETA": {
          "description": "Estimated Time of Arrival (ISO 8601).",
          "type": "string",
          "format": "date-time"
        },
        "icao": {
          "type": "string"
        },
        "iata": {
          "type": "string"
        },
        "stand": {
          "$ref": "#/definitions/legStand"
        }
      }
    },
    "legStand": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        }
      }
    }
  }
}

Last updated

Was this helpful?