openapi: 3.1.0 info: title: VATSIM AIP Airport info members API version: 2.0.0 termsOfService: https://vatsim.net/docs/policy/user-agreement contact: email: tech@vatsim.net name: VATSIM Technology Team servers: - url: https://my.vatsim.net/api/v2/aip tags: - name: members paths: /v2/members/{member_id}/flightplans: get: operationId: members_api_retrieve_member_flightplans summary: Get a member's flight plans parameters: - in: path name: member_id schema: title: Member Id type: integer required: true responses: '200': description: OK content: application/json: schema: title: Response type: array items: $ref: '#/components/schemas/FlightPlans' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' description: Returns the last 50 flight plans filed by a member. tags: - members /v2/members/{member_id}/stats: get: operationId: members_api_retrieve_member_stats summary: Get a member's statistics parameters: - in: path name: member_id schema: title: Member Id type: integer required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Stats' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' description: Returns a member's statistics per position and rating. tags: - members /v2/members/{member_id}/status: get: operationId: members_api_retrieve_member_status summary: Get a member's online status parameters: - in: path name: member_id schema: title: Member Id type: integer required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OnlineSchema' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' description: Returns a member's current connection, or a 404 if offline. tags: - members /v2/members/{member_id}: get: operationId: members_api_retrieve_member_details summary: Get a member's details parameters: - in: path name: member_id schema: title: Member Id type: integer required: true responses: '200': description: OK content: application/json: schema: title: Response anyOf: - $ref: '#/components/schemas/Member' - $ref: '#/components/schemas/LimitedMemberSchema' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' description: 'Returns a member''s details. The following fields are restricted to authenticated users only: - name_first - name_last' tags: - members security: - APIKeyAuth: [] - LegacyAuth: [] patch: operationId: members_api_update_member_details summary: Update a member's details parameters: - in: path name: member_id schema: title: Member Id type: integer required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Member' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Message' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' description: 'Updates a member''s details. - All fields, except for `comment`, are optional. - Modifiable fields may be limited by your key''s permissions.' tags: - members requestBody: content: application/json: schema: $ref: '#/components/schemas/MemberUnrestricted' required: true security: - APIKeyAuth: [] - LegacyAuth: [] /v2/members/{member_id}/atc: get: operationId: members_api_history_atc_cid summary: List a member's previous ATC sessions parameters: - in: path name: member_id schema: title: Member Id type: integer required: true - in: query name: limit schema: title: Limit default: 100 minimum: 1 type: integer required: false - in: query name: offset schema: title: Offset default: 0 minimum: 0 type: integer required: false responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PagedAtcSchema' description: Returns a list of all previous controlling sessions for a member. tags: - members /v2/members/online: get: operationId: members_api_online summary: List all online pilots parameters: [] responses: '200': description: OK content: application/json: schema: title: Response type: array items: $ref: '#/components/schemas/OnlineSchema' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' description: Returns a list of all online pilots. tags: - members /v2/members/{member_id}/history: get: operationId: members_api_history summary: List a member's previous pilot sessions parameters: - in: path name: member_id schema: title: Member Id type: integer required: true - in: query name: limit schema: title: Limit default: 100 minimum: 1 type: integer required: false - in: query name: offset schema: title: Offset default: 0 minimum: 0 type: integer required: false responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PagedConnection' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFound' description: Returns a list of all previous pilot sessions for a member. tags: - members components: schemas: OnlineSchema: title: OnlineSchema type: object properties: id: title: Id type: integer callsign: title: Callsign maxLength: 15 type: string start: title: Start type: string format: date-time server: title: Server maxLength: 20 type: string rating: title: Rating type: integer fp: $ref: '#/components/schemas/FlightPlans' required: - start - rating Stats: title: Stats type: object properties: id: title: Id type: integer atc: title: Atc type: number pilot: title: Pilot type: number s1: title: S1 type: number s2: title: S2 type: number s3: title: S3 type: number c1: title: C1 type: number c2: title: C2 type: number c3: title: C3 type: number i1: title: I1 type: number i2: title: I2 type: number i3: title: I3 type: number sup: title: Sup type: number adm: title: Adm type: number required: - atc - pilot - s1 - s2 - s3 - c1 - c2 - c3 - i1 - i2 - i3 - sup - adm Member: title: Member description: Only to be used for response validation as it is unprotected. type: object properties: id: title: Id type: integer name_first: title: Name First type: string name_last: title: Name Last type: string email: title: Email type: string countystate: title: Countystate type: string country: title: Country type: string rating: title: Rating type: integer pilotrating: title: Pilotrating default: 0 type: integer militaryrating: title: Militaryrating default: 0 type: integer susp_date: title: Susp Date type: string format: date-time reg_date: title: Reg Date type: string format: date-time region_id: title: Region Id type: string division_id: title: Division Id type: string subdivision_id: title: Subdivision Id type: string lastratingchange: title: Lastratingchange type: string format: date-time required: - id - countystate - country - rating - reg_date - region_id - division_id LimitedMemberSchema: title: LimitedMemberSchema type: object properties: id: title: Id type: integer rating: title: Rating type: integer pilotrating: title: Pilotrating type: integer militaryrating: title: Militaryrating type: integer susp_date: title: Susp Date type: string format: date-time reg_date: title: Reg Date type: string format: date-time region_id: title: Region Id type: string division_id: title: Division Id type: string subdivision_id: title: Subdivision Id type: string lastratingchange: title: Lastratingchange type: string format: date-time required: - id - rating - pilotrating - militaryrating - reg_date - region_id - division_id NotFound: title: NotFound type: object properties: detail: title: Detail default: Not Found. type: string Message: title: Message description: Requests that produce an error use this schema type: object properties: message: title: Message type: string required: - message AtcSchema: title: AtcSchema type: object properties: connection_id: $ref: '#/components/schemas/Connection' aircrafttracked: title: Aircrafttracked type: integer aircraftseen: title: Aircraftseen type: integer flightsamended: title: Flightsamended type: integer handoffsinitiated: title: Handoffsinitiated type: integer handoffsreceived: title: Handoffsreceived type: integer handoffsrefused: title: Handoffsrefused type: integer squawksassigned: title: Squawksassigned type: integer cruisealtsmodified: title: Cruisealtsmodified type: integer tempaltsmodified: title: Tempaltsmodified type: integer scratchpadmods: title: Scratchpadmods type: integer required: - connection_id - aircrafttracked - aircraftseen - flightsamended - handoffsinitiated - handoffsreceived - handoffsrefused - squawksassigned - cruisealtsmodified - tempaltsmodified - scratchpadmods PagedConnection: title: PagedConnection type: object properties: items: title: Items type: array items: $ref: '#/components/schemas/Connection' count: title: Count type: integer required: - items - count PagedAtcSchema: title: PagedAtcSchema type: object properties: items: title: Items type: array items: $ref: '#/components/schemas/AtcSchema' count: title: Count type: integer required: - items - count FlightPlans: title: FlightPlans type: object properties: id: title: Id type: integer connection_id: title: Connection Id type: integer vatsim_id: title: Vatsim Id maxLength: 8 type: string flight_type: title: Flight Type maxLength: 4 type: string callsign: title: Callsign maxLength: 10 type: string aircraft: title: Aircraft maxLength: 135 type: string cruisespeed: title: Cruisespeed maxLength: 5 type: string dep: title: Dep maxLength: 4 type: string arr: title: Arr maxLength: 4 type: string alt: title: Alt maxLength: 4 type: string altitude: title: Altitude maxLength: 6 type: string rmks: title: Rmks maxLength: 1200 type: string route: title: Route maxLength: 2535 type: string deptime: title: Deptime maxLength: 5 type: string hrsenroute: title: Hrsenroute type: integer minenroute: title: Minenroute type: integer hrsfuel: title: Hrsfuel type: integer minsfuel: title: Minsfuel type: integer filed: title: Filed type: string format: date-time assignedsquawk: title: Assignedsquawk maxLength: 4 type: string modifiedbycid: title: Modifiedbycid maxLength: 8 type: string modifiedbycallsign: title: Modifiedbycallsign maxLength: 10 type: string required: - vatsim_id - flight_type - callsign - aircraft - cruisespeed - dep - arr - altitude - hrsenroute - minenroute - hrsfuel - minsfuel - filed Connection: title: Connection type: object properties: id: title: Id type: integer vatsim_id: title: Vatsim Id maxLength: 8 type: string type: title: Type type: integer rating: title: Rating type: integer callsign: title: Callsign type: string start: title: Start type: string format: date-time end: title: End type: string format: date-time server: title: Server maxLength: 20 type: string required: - vatsim_id - type - rating - callsign MemberUnrestricted: title: MemberUnrestricted description: Superuser schema - this can set suspended ratings and passwords. type: object properties: name_first: title: Name First type: string name_last: title: Name Last type: string name_mothermaiden: title: Name Mothermaiden type: string email: title: Email type: string password: title: Password type: string age: title: Age type: integer countystate: title: Countystate type: string country: title: Country type: string rating: title: Rating type: integer pilotrating: title: Pilotrating type: integer militaryrating: title: Militaryrating type: integer susp_date: title: Susp Date type: string format: date-time susp_prevrat: title: Susp Prevrat type: integer region_id: title: Region Id type: string division_id: title: Division Id type: string subdivision_id: title: Subdivision Id type: string lastregionxfer: title: Lastregionxfer type: string format: date-time lastratingchange: title: Lastratingchange type: string format: date-time comment: title: Comment type: string