# Create roster assignment Creates a new roster assignment for a crew member. This is equivalent to adding a duty or day in the FL3XX roster interface. Features: - Create various duty types (e.g., Off, Flight, Standby, Training) - Supports detailed duty information including aircraft, airports, and notes - Dynamic validation based on the selected roster type Example Use Case: An automated scheduling system creates a "Standby" duty for a crew member, providing the start and end times, and ensuring all required references are correctly resolved. Important: The fields required for a successful creation depend on the selected roster type. You should first check the roster type's configuration using the Roster Types endpoints to determine which features (e.g., aircraft, airports, FTL) are enabled. Endpoint: POST /api/v2/rosters Version: 2.4.0 Security: X-Api-Client-Id, X-Auth-Token ## Request fields (application/json): - `crewId` (string, required) Identifier of the crew member to assign. - `rosterTypeId` (string, required) Id of the roster type from roster-types API. - `startDateTime` (string, required) - `endDateTime` (string, required) - `dutySubtype` (string) Only when roster type has isSubtypeVisible. Enum: "EARLY", "LATE", "ALL_DAY", "NIGHT" - `crewRole` (string) Only when roster type has isRoleVisible. - `actualStartDateTime` (string) - `actualEndDateTime` (string) - `locationAirportId` (string) - `departureAirportId` (string) - `arrivalAirportId` (string) - `serviceAirportId` (string) - `flightNumber` (string) - `flightId` (string) - `quoteId` (string) - `takeoffDateTime` (string) - `landingDateTime` (string) - `aircraft` (object) Aircraft assignment for create/update. Only send when roster type has isAircraftEnabled. Same as response but without read-only aircraftVariant. - `aircraft.aircraftId` (string) - `aircraft.crewPositionId` (string) - `aircraft.aircraftTypeId` (string) - `aircraft.typeRating` (string) - `aircraft.externalAircraftRegistration` (string) - `aircraft.engineConfiguration` (string) Enum: "SINGLE_ENGINE", "MULTI_ENGINE" - `logbook` (object) Logbook/AFT data. Only send when roster type enables logbook (e.g. isLandingsVisible, isOperationalConditionVisible, isApproachesVisible, isPilotFlightTypeVisible). For SIM duties, isFullMotionSimulator is used. - `logbook.logbookFlightType` (string) Enum: "SINGLE_PILOT", "MULTI_PILOT" - `logbook.operationalCondition` (string) Enum: "IFR", "VFR", "NIGHT" - `logbook.operationType` (string) Enum: "COMMERCIAL", "PRIVATE" - `logbook.aocId` (string) Id of AOC (Operation Type); when duty counts as duty time and multiple AOCs exist. - `logbook.dayTakeoffs` (integer) - `logbook.nightTakeoffs` (integer) - `logbook.dayLandings` (integer) - `logbook.nightLandings` (integer) - `logbook.precisionApproaches` (integer) - `logbook.approachCategory` (string) e.g. CAT1, CAT2, CAT3, ILS, etc. - `logbook.nonPrecisionApproaches` (integer) - `logbook.isVisualApproach` (boolean) - `logbook.isInstrumentHold` (boolean) - `logbook.isFullMotionSimulator` (boolean) For SIM duties only. - `ftl` (object) FTL duty period flags and manual times. Only send when roster type has isDutyTimeVisible. Split-duty and period start/end flags only apply when isCountedAsDutyTime is true. - `ftl.isCountedAsDutyTime` (boolean) - `ftl.isDutyPeriodStart` (boolean) - `ftl.isDutyPeriodEnd` (boolean) - `ftl.isSplitDutyBreakStart` (boolean) - `ftl.isSplitDutyBreakEnd` (boolean) - `ftl.dutyTimeMinutes` (integer) - `ftl.fdpTimeMinutes` (integer) - `ftl.blockTimeMinutes` (integer) - `notes` (string) - `bookingPairing` (string) ## Response 201 fields (application/json): - `id` (string) Unique identifier of this roster assignment. - `crewId` (string) Identifier of the crew member. - `rosterTypeId` (string) Id of the roster type (same as RosterTypeDto.id from roster-types API). - `dutySubtype` (string) Time-of-day subdivision; only when type has isSubtypeVisible. Enum: "EARLY", "LATE", "ALL_DAY", "NIGHT" - `crewRole` (string) Crew role (e.g. PIC, SIC); only when type has isRoleVisible. - `startDateTime` (string) Scheduled duty start (Begins / Check-in). - `endDateTime` (string) Scheduled duty end (Ends / Check-out). - `actualStartDateTime` (string) Actual duty start when different from scheduled; only when type has isActualTimeVisible. - `actualEndDateTime` (string) Actual duty end when different from scheduled; only when type has isActualTimeVisible. - `locationAirportId` (string) Airport where crew is stationed (In); only when type has isLocationVisible. - `departureAirportId` (string) Departure airport (From); only when type has isDepartureAirportEnabled. - `arrivalAirportId` (string) Arrival airport (To); only when type has isArrivalAirportEnabled. - `serviceAirportId` (string) Airport this duty is performed for; only when type has isForAirportEnabled. - `flightNumber` (string) Flight number; only when type has isFlightNumberVisible. - `flightId` (string) Id of linked flight leg. - `quoteId` (string) Id of linked quote/booking. - `takeoffDateTime` (string) Actual takeoff time; only when type has isFlightTimeVisible. - `landingDateTime` (string) Actual landing time; only when type has isFlightTimeVisible. - `aircraft` (object) Aircraft assignment (response). Only present when roster type has isAircraftEnabled. - `aircraft.aircraftId` (string) Id of the aircraft (tail). Mutually exclusive with externalAircraftRegistration. - `aircraft.crewPositionId` (string) Id of crew position on aircraft; requires aircraftId. - `aircraft.aircraftTypeId` (string) Id of aircraft ICAO type (model). - `aircraft.typeRating` (string) - `aircraft.aircraftVariant` (string) Read-only; from aircraft model. - `aircraft.externalAircraftRegistration` (string) Tail of aircraft not in system; mutually exclusive with aircraftId. - `aircraft.engineConfiguration` (string) Only when externalAircraftRegistration is set. Enum: "SINGLE_ENGINE", "MULTI_ENGINE" - `logbook` (object) Logbook/AFT data. Only send when roster type enables logbook (e.g. isLandingsVisible, isOperationalConditionVisible, isApproachesVisible, isPilotFlightTypeVisible). For SIM duties, isFullMotionSimulator is used. - `logbook.logbookFlightType` (string) Enum: "SINGLE_PILOT", "MULTI_PILOT" - `logbook.operationalCondition` (string) Enum: "IFR", "VFR", "NIGHT" - `logbook.operationType` (string) Enum: "COMMERCIAL", "PRIVATE" - `logbook.aocId` (string) Id of AOC (Operation Type); when duty counts as duty time and multiple AOCs exist. - `logbook.dayTakeoffs` (integer) - `logbook.nightTakeoffs` (integer) - `logbook.dayLandings` (integer) - `logbook.nightLandings` (integer) - `logbook.precisionApproaches` (integer) - `logbook.approachCategory` (string) e.g. CAT1, CAT2, CAT3, ILS, etc. - `logbook.nonPrecisionApproaches` (integer) - `logbook.isVisualApproach` (boolean) - `logbook.isInstrumentHold` (boolean) - `logbook.isFullMotionSimulator` (boolean) For SIM duties only. - `ftl` (object) FTL duty period flags and manual times. Only send when roster type has isDutyTimeVisible. Split-duty and period start/end flags only apply when isCountedAsDutyTime is true. - `ftl.isCountedAsDutyTime` (boolean) - `ftl.isDutyPeriodStart` (boolean) - `ftl.isDutyPeriodEnd` (boolean) - `ftl.isSplitDutyBreakStart` (boolean) - `ftl.isSplitDutyBreakEnd` (boolean) - `ftl.dutyTimeMinutes` (integer) - `ftl.fdpTimeMinutes` (integer) - `ftl.blockTimeMinutes` (integer) - `notes` (string) Free-text notes (max 2000 chars); only when type has isNotesVisible. - `travelDocumentIds` (array) Ids of attached travel documents. - `bookingPairing` (string) Related booking/pairing reference; only when type has isRelatedBookingVisible. - `poNumber` (string) Purchase order number (read-only; from ERP integration). - `poCreatedAt` (string) When PO was created (read-only). - `requestStatus` (string) Crew self-service request state for a roster assignment. Enum: "PENDING", "APPROVED", "DENIED" - `requestedAt` (string) - `approvedAt` (string) - `approvedByUserId` (string) ## Response 400 fields ## Response 401 fields ## Response 403 fields