openapi: '3.1.1' info: title: FCVS API description: Provides access to FCVS physician data. version: v1 summary: Provides access to FCVS physician data servers: - url: https://services-fcvs-demo.fsmb.org/ paths: '/v1/boards/{board}/practitioners/{fid}/profiles/current': get: tags: - Practitioners summary: Get Current Profile description: Gets the current FCVS profile for a practitioner. parameters: - name: board in: path description: Board code required: true schema: type: string default: me - name: fid in: path description: FID of the practitioner required: true schema: maxLength: 9 minLength: 9 pattern: '^\d{9}$' type: string format: FID responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Profile' text/json: schema: $ref: '#/components/schemas/Profile' '403': description: Board code is invalid content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' text/json: schema: $ref: '#/components/schemas/ProblemDetails' '400': description: FID is invalid content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' text/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: Profile not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' text/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized '/v1/boards/{board}/practitioners/{fid}/status': get: tags: - Practitioners summary: Get Status description: Gets the status of a practitioner. parameters: - name: board in: path description: Board code required: true schema: type: string default: me - name: fid in: path description: FID of the practitioner required: true schema: maxLength: 9 minLength: 9 pattern: '^\d{9}$' type: string format: FID responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PractitionerStatus' text/json: schema: $ref: '#/components/schemas/PractitionerStatus' '403': description: Board code is invalid content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' text/json: schema: $ref: '#/components/schemas/ProblemDetails' '400': description: FID is invalid content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' text/json: schema: $ref: '#/components/schemas/ProblemDetails' '404': description: Profile not found content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' text/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: Unauthorized /connect/token: post: tags: - Token summary: Authentication endpoint. responses: '200': description: The Authentication response. components: schemas: AccreditedTraining: required: - accreditationType - programCode - program - specialty - programType - trainingStatus - unusualCircumstances type: object properties: accreditationType: maxLength: 5 minLength: 0 type: string description: 'The type of accreditation (e.g. ACGME, AOA)' programCode: maxLength: 10 minLength: 0 type: string description: Program code program: description: Program $ref: '#/components/schemas/Program' specialty: description: Specialty $ref: '#/components/schemas/Specialty' programType: maxLength: 100 minLength: 0 type: string description: Program type trainingStatus: maxLength: 100 minLength: 0 type: string description: 'Training status (e.g. `Active`, `Completed`)' beginDate: type: string description: Start date format: date-time endDate: type: string description: End date format: date-time unusualCircumstances: description: Unusual circumstances $ref: '#/components/schemas/UnusualCircumstances' description: Accredited training information Activity: required: - type - description - addressLines - city - stateOrProvince type: object properties: type: maxLength: 100 minLength: 0 type: string description: Type of activity inProgress: type: boolean description: Is in progress? beginDate: type: string description: Start date format: date-time endDate: type: - 'null' - string description: End date format: date-time description: maxLength: 100 minLength: 0 type: string description: Description addressLines: maxLength: 100 minLength: 0 type: array items: type: string description: Address lines city: maxLength: 50 minLength: 0 type: string description: City stateOrProvince: description: State/province $ref: '#/components/schemas/StateOrProvince' postalCode: maxLength: 9 minLength: 0 type: - 'null' - string description: Postal code position: maxLength: 100 minLength: 0 type: - 'null' - string description: Position department: maxLength: 100 minLength: 0 type: - 'null' - string description: Department wasEmployed: type: boolean description: Was employee? hadStaffPrivileges: type: boolean description: Had staff privileges? wasAffiliated: type: boolean description: Was affiliated? percentageClinical: pattern: '^-?(?:0|[1-9]\d*)$' type: - integer - string description: '% clinical' format: int32 percentageAdministrative: pattern: '^-?(?:0|[1-9]\d*)$' type: - integer - string description: '% administrative' format: int32 description: Activity information Address: required: - addressType - city - stateOrProvince - postalCode type: object properties: addressType: maxLength: 20 minLength: 0 type: string description: 'Type of address (e.g. Business, Home)' lines: maxLength: 100 minLength: 0 type: array items: type: string description: Address lines city: maxLength: 50 minLength: 0 type: string description: City stateOrProvince: description: State/province $ref: '#/components/schemas/StateOrProvince' postalCode: maxLength: 9 minLength: 0 type: string description: Postal code description: Mailing address Addresses: type: object properties: other: type: array items: $ref: '#/components/schemas/Address' description: Addresses description: Mailing addresses Application: required: - boardName - status type: object properties: boardName: maxLength: 100 minLength: 0 type: string description: Board name sentDateUtc: type: - 'null' - string description: 'Datetime the profile was sent, in UTC' format: date-time status: maxLength: 50 minLength: 0 type: string description: 'Status of the profile (e.g. `Submitted`, `Complete`)' description: Application information Ecfmg: required: - ecfmgNumber type: object properties: ecfmgNumber: maxLength: 8 minLength: 0 type: string description: ECFMG number issueDate: type: - 'null' - string description: Issue date format: date-time description: ECFMG information EmailAddress: required: - email type: object properties: email: maxLength: 100 minLength: 0 type: string description: Email address description: Email address EmailAddresses: required: - primary type: object properties: primary: description: Primary email address $ref: '#/components/schemas/EmailAddress' other: type: array items: $ref: '#/components/schemas/EmailAddress' description: Other email addresses description: List of email addresses Exam: required: - examType - passFail type: object properties: examType: maxLength: 100 minLength: 0 type: string description: Type of exam stateBoardDetail: oneOf: - type: 'null' - description: State board information (for state exams) $ref: '#/components/schemas/ExamStateBoard' examDate: type: string description: Exam date format: date-time numberOfAttempts: pattern: '^-?(?:0|[1-9]\d*)$' type: - integer - string description: Number of attempts format: int32 passFail: maxLength: 100 minLength: 0 type: string description: 'Pass/fail status (e.g. `Pass`, `Fail`, `Unknown`)' description: Exam ExamStateBoard: required: - code - description type: object properties: code: maxLength: 5 minLength: 0 type: string description: State or province code description: maxLength: 100 minLength: 0 type: string description: Description description: State board for exam FifthPathway: required: - school type: object properties: school: description: School $ref: '#/components/schemas/FifthPathwaySchool' startDate: type: string description: Start date format: date-time endDate: type: string description: End date format: date-time certificateDate: type: string description: Certificate date format: date-time description: Fifth Pathway information FifthPathwaySchool: required: - name - affiliatedInstitution type: object properties: name: maxLength: 100 minLength: 0 type: string description: School name affiliatedInstitution: maxLength: 100 minLength: 0 type: string description: Affiliated institution city: maxLength: 50 minLength: 0 type: - 'null' - string description: City stateOrProvince: description: State/province $ref: '#/components/schemas/StateOrProvince' description: Fifth Pathway school Identification: required: - birthCity - birthStateOrProvince - gender type: object properties: ssnLast4: type: - 'null' - string description: Last 4 of the SSN npi: maxLength: 10 minLength: 0 type: - 'null' - string description: NPI usmleId: maxLength: 9 minLength: 0 type: - 'null' - string description: USMLE ID birthDate: type: string description: Date of birth format: date-time birthCity: maxLength: 50 minLength: 0 type: string description: Place of birth birthStateOrProvince: description: State/province of birth $ref: '#/components/schemas/StateOrProvince' gender: maxLength: 1 minLength: 0 type: string description: Gender description: Identification information License: required: - licenseType type: object properties: licenseType: maxLength: 100 minLength: 0 type: string description: 'Type of license (e.g. `Active`, `Training`)' licensingEntity: oneOf: - type: 'null' - description: Entity issuing license $ref: '#/components/schemas/LicensingEntity' status: maxLength: 100 minLength: 0 type: - 'null' - string description: 'License status (e.g. `Active`, `Denied`)' practitionerType: oneOf: - type: 'null' - description: Practitioner type $ref: '#/components/schemas/PractitionerType' licenseNumber: maxLength: 20 minLength: 0 type: - 'null' - string description: License number issueDate: type: - 'null' - string description: Issue date format: date-time expirationDate: type: - 'null' - string description: Expiration date format: date-time description: License information LicensingEntity: required: - code - description type: object properties: code: maxLength: 5 minLength: 0 type: string description: Entity code description: maxLength: 100 minLength: 0 type: string description: Description description: Entity issuing license MedicalDegree: required: - code - description type: object properties: code: maxLength: 5 minLength: 0 type: string description: 'Degree code (e.g. BM, MD, DMCH)' description: maxLength: 100 minLength: 0 type: string description: Description description: Medical degree MedicalEducation: required: - school - unusualCircumstances type: object properties: school: description: Medical school $ref: '#/components/schemas/School' beginDate: type: string description: Start date format: date-time endDate: type: string description: End date format: date-time degree: oneOf: - type: 'null' - description: Degree information $ref: '#/components/schemas/MedicalDegree' graduationDate: type: - 'null' - string description: Graduation date format: date-time unusualCircumstances: description: Unusual circumstances $ref: '#/components/schemas/UnusualCircumstances' description: Medical school education MedicalEducationTraining: required: - graduating type: object properties: graduating: description: Graduating school $ref: '#/components/schemas/MedicalEducation' other: type: array items: $ref: '#/components/schemas/MedicalEducation' description: Other medical schools ecfmg: oneOf: - type: 'null' - description: ECFMG information $ref: '#/components/schemas/Ecfmg' fifthPathway: oneOf: - type: 'null' - description: 5th Pathway information $ref: '#/components/schemas/FifthPathway' description: List of medical education Name: required: - firstName - lastName - isSingularName type: object properties: firstName: maxLength: 50 minLength: 0 type: string description: First name (FNU if isSingularName is true) middleName: maxLength: 50 minLength: 0 type: - 'null' - string description: Middle name (optional) lastName: maxLength: 50 minLength: 0 type: string description: Last name suffix: maxLength: 4 minLength: 0 type: - 'null' - string description: 'Suffix (optional, e.g. Jr, Sr)' isSingularName: type: boolean description: Indicates if this is a singular name description: Name of a person Names: required: - legalName type: object properties: legalName: description: Legal name $ref: '#/components/schemas/Name' other: type: array items: $ref: '#/components/schemas/Name' description: Other names description: List of names OtherTraining: required: - program - specialty - programType - trainingStatus - unusualCircumstances type: object properties: program: description: Program $ref: '#/components/schemas/Program' specialty: description: Specialty $ref: '#/components/schemas/Specialty' programType: maxLength: 100 minLength: 0 type: string description: 'Program type (e.g. `Internship`, `Fellowship`)' trainingStatus: maxLength: 100 minLength: 0 type: string description: 'Training status (e.g. `Active`, `Completed`)' beginDate: type: string description: Start date format: date-time endDate: type: string description: End date format: date-time unusualCircumstances: description: Unusual circumstances $ref: '#/components/schemas/UnusualCircumstances' description: Unaccredited postgraduate training Phone: required: - phoneType - phoneNumber type: object properties: phoneType: maxLength: 20 minLength: 0 type: string description: 'Type of phone (e.g. `Business`, `Home`)' phoneNumber: maxLength: 10 minLength: 0 type: string description: Phone number extension: maxLength: 4 minLength: 0 type: - 'null' - string description: Phone extension description: Phone number Phones: type: object properties: other: type: array items: $ref: '#/components/schemas/Phone' description: Phone numbers description: List of phone numbers PostGraduateTraining: type: object properties: accreditedTraining: type: array items: $ref: '#/components/schemas/AccreditedTraining' description: Accredited training otherTraining: type: array items: $ref: '#/components/schemas/OtherTraining' description: Unaccredited training description: List of post graduate training PractitionerStatus: required: - fid - name - lastProfileId - lastProfileSubmitDateUtc type: object properties: fid: maxLength: 9 minLength: 9 pattern: '^\d{9}$' type: string description: FID of the practitioner format: FID name: description: Name of the practitioner $ref: '#/components/schemas/Name' lastProfileId: maximum: 2147483647 minimum: 1 pattern: '^-?(?:0|[1-9]\d*)$' type: - integer - string description: ID of the last profile format: int64 lastProfileStatus: maxLength: 50 minLength: 0 type: - 'null' - string description: Status of the last profile lastProfileSubmitDateUtc: type: string description: 'Date/time the last profile was submitted, in UTC' format: date-time lastProfileSentDateUtc: type: - 'null' - string description: 'Date/time the last profile was sent, in UTC, if any' format: date-time description: Status of a practitioner PractitionerType: required: - code - description type: object properties: code: maxLength: 5 minLength: 0 type: string description: Code description: maxLength: 100 minLength: 0 type: string description: Description description: Practitioner type ProblemDetails: type: object properties: type: type: - 'null' - string title: type: - 'null' - string status: pattern: '^-?(?:0|[1-9]\d*)$' type: - 'null' - integer - string format: int32 detail: type: - 'null' - string instance: type: - 'null' - string Profile: required: - id - fid - submitDateUtc - application - identity - names - addresses - emailAddresses - phones - medicalEducation type: object properties: id: maximum: 2147483647 minimum: 1 pattern: '^-?(?:0|[1-9]\d*)$' type: - integer - string description: Profile ID format: int64 fid: maxLength: 9 minLength: 9 pattern: '^\d{9}$' type: string description: FID of practitioner format: FID submitDateUtc: type: string description: Date the profile was submitted (UTC) format: date-time application: description: Application information $ref: '#/components/schemas/Application' identity: description: Identity $ref: '#/components/schemas/Identification' names: description: Names $ref: '#/components/schemas/Names' addresses: description: Mailing addresses $ref: '#/components/schemas/Addresses' emailAddresses: description: Email addresses $ref: '#/components/schemas/EmailAddresses' phones: description: Phone numbers $ref: '#/components/schemas/Phones' medicalEducation: description: Medical education $ref: '#/components/schemas/MedicalEducationTraining' postGraduateTraining: oneOf: - type: 'null' - description: Postgraduate training $ref: '#/components/schemas/PostGraduateTraining' exams: type: array items: $ref: '#/components/schemas/Exam' description: Exams licenses: type: array items: $ref: '#/components/schemas/License' description: Licensure activities: type: array items: $ref: '#/components/schemas/Activity' description: Chronology of activity description: Practitioner profile for a board Program: required: - hospitalName - city - stateOrProvince type: object properties: hospitalName: maxLength: 200 minLength: 0 type: string description: Hospital name affiliatedInstitution: maxLength: 200 minLength: 0 type: - 'null' - string description: Affiliated institution city: maxLength: 50 minLength: 0 type: string description: City stateOrProvince: description: State/province $ref: '#/components/schemas/StateOrProvince' description: Postgraduate training program School: required: - name - schoolType type: object properties: name: maxLength: 100 minLength: 0 type: string description: School name cibisCode: maxLength: 6 minLength: 0 type: - 'null' - string description: CIBIS code schoolType: description: Type of school $ref: '#/components/schemas/SchoolType' city: maxLength: 50 minLength: 0 type: - 'null' - string description: City stateOrProvince: oneOf: - type: 'null' - description: State/province $ref: '#/components/schemas/StateOrProvince' description: Medical school SchoolType: required: - code - description type: object properties: code: maxLength: 5 minLength: 0 type: string description: 'Code (e.g. `MD`, `DO`)' description: maxLength: 100 minLength: 0 type: string description: Description description: Type of medical school Specialty: required: - description type: object properties: description: maxLength: 200 minLength: 0 type: string description: Description description: Training specialty StateOrProvince: required: - code - description type: object properties: code: maxLength: 3 minLength: 0 type: string description: 'State or province code (e.g. `TX`, `MD`)' description: maxLength: 100 minLength: 0 type: string description: State or province description countryCode: maxLength: 2 minLength: 0 type: - 'null' - string description: 'ISO Country code (e.g. `US`, `CA`)' countryDescription: maxLength: 100 minLength: 0 type: - 'null' - string description: Country description description: State or province UnusualCircumstances: type: object properties: hasInterruptions: type: boolean description: Has an interruption interruptionsDescription: type: - 'null' - string description: Interruption description interruptionStartMonth: pattern: '^-?(?:0|[1-9]\d*)$' type: - 'null' - integer - string description: Interruption start month format: int32 interruptionStartYear: pattern: '^-?(?:0|[1-9]\d*)$' type: - 'null' - integer - string description: Interruption start year format: int32 interruptionEndMonth: pattern: '^-?(?:0|[1-9]\d*)$' type: - 'null' - integer - string description: Interruption end month format: int32 interruptionEndYear: pattern: '^-?(?:0|[1-9]\d*)$' type: - 'null' - integer - string description: Interruption end year format: int32 hasProbation: type: boolean description: Has a probation? probationDescription: type: - 'null' - string description: Probation description hasInvestigation: type: boolean description: Has an investigation? investigationDescription: type: - 'null' - string description: Investigation description hasBehavior: type: boolean description: Has negative behavior? behaviorDescription: type: - 'null' - string description: Behavior description hasRequirements: type: boolean description: Has special requirements? requirementsDescription: type: - 'null' - string description: Special requirements description description: Unusual circumstances securitySchemes: oauth2: type: oauth2 flows: clientCredentials: authorizationUrl: https://services-fcvs-demo.fsmb.org/connect/token tokenUrl: https://services-fcvs-demo.fsmb.org/connect/token scopes: fcvs.read: Read FCVS information. tags: - name: Practitioners - name: Token