{"openapi":"3.0.1","info":{"title":"Veteran Verification","description":"The Deprecated Veteran Verification API (v1) allows you to confirm the Veteran status\nfor a given person, or retrieve a Veteran's service history, disability rating,\nor select flashes.\n\nWhen confirming Veteran Status, the Status endpoint will return \"Confirmed\" or \"Not Confirmed\".\n\n## Quickstart Guide\n\n### 1. Get Access Credentials\n\nGet started by filling out the form on the [Apply for VA Lighthouse Developer Access](/apply)\npage.\n\nAfter submitting a request, you will receive your credentials for using the API in the Sandbox\nenvironment, which allows you to try it out with mock data before moving to the Production\nenvironment.\n\n### 2. Test the API\n\nIn the endpoint documentation below, we've provided a curl command builder for trying out the\nAPI before implementation with your app.\nUse the login credentials associated with each [Test User](https://github.com/department-of-veterans-affairs/vets-api-clients/blob/master/test_accounts.md)\nyou would like to work with.\n\n### 3. Build your app\n\nThe base URI for the Veteran Verification API in the Sandbox environment is:\n\nhttps://sandbox-api.va.gov/services/veteran_verification/v1\n\n### 4. Show us a demo and get set up in the Production environment\n\nAfter building your app, we ask that you give us a demo before we set you up with production\ncredentials. Please see the [Path to Production](/go-live) page for more details.\n\n## Reference\n\n### Sandbox vs. Production Data\nAPIs accessed via the Sandbox environment are using the same underlying logic as VA's production\nAPIs; only the underlying data store is different.\n\n### Rate Limiting\nWe implemented basic rate limiting of 60 requests per minute. If you exceed this quota, your\nrequest will return a 429 status code. You may petition for increased rate limits by emailing,\nand requests will be decided on a case by case basis.\n","contact":{"name":"VA.gov"},"version":"0.0.1"},"servers":[{"url":"https://sandbox-api.va.gov/services/veteran_verification/{version}","description":"Sandbox","variables":{"version":{"default":"v1"}}},{"url":"https://api.va.gov/services/veteran_verification/{version}","description":"Production","variables":{"version":{"default":"v1"}}}],"paths":{"/disability_rating":{"get":{"tags":["Disability Rating"],"summary":"Retrieve disability rating of authorized Veteran","description":"This endpoint provides a veteran's combined and individual disability rating(s) and related decisions and dates.","operationId":"GET:/disability_rating","responses":{"200":{"description":"Disability Rating retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DisabilityRatingResponseV1"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerSoapFaultApiError"}}}},"401":{"description":"Not authorized","content":{"application/json":{"schema":{"type":"string","example":{"message":"Invalid authentication credentials"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"string","example":{"message":"You cannot consume this service"}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissingIcn"}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerApiError"}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InaccessibleServiceDefintionErrorApiError"}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackendServiceApiError"}}}}},"deprecated":true,"security":[{"bearer_token":[]}]}},"/service_history":{"get":{"tags":["Service History"],"summary":"Retrieve service history of authorized Veteran","description":"This endpoint provides a veteran's detailed service history including all\nmilitary service episodes with the first and last name of the Veteran, the branch of\nservice, start and end dates, paygrade, discharge status, and separation reason.\nIt also provides start and end dates and locations for each deployment within each\nepisode of service.\n","operationId":"GET:/service_history","responses":{"200":{"description":"Service History retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceHistoryResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerSoapFaultApiError"}}}},"401":{"description":"Not authorized","content":{"application/json":{"schema":{"type":"string","example":{"message":"Invalid authentication credentials"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"string","example":{"message":"You cannot consume this service"}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissingIcn"}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerApiError"}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InaccessibleServiceDefintionErrorApiError"}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackendServiceApiError"}}}}},"deprecated":true,"security":[{"bearer_token":[]}]}},"/status":{"get":{"tags":["Status"],"summary":"Confirms whether an individual is a Veteran","description":"The Veteran Confirmation API allows you to confirm Veteran status for a given person. This can be useful for offering Veterans discounts or other benefits.","operationId":"GET:/status","responses":{"200":{"description":"Confirmation status successfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VeteranStatusResponseV1"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerSoapFaultApiError"}}}},"401":{"description":"Not authorized","content":{"application/json":{"schema":{"type":"string","example":{"message":"Invalid authentication credentials"}}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"type":"string","example":{"message":"You cannot consume this service"}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MissingIcn"}}}},"413":{"description":"Payload too large","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"Request size limit exceeded"}}}}},"429":{"description":"Too many requests","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"example":{"message":"API rate limit exceeded"}}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InternalServerApiError"}}}},"502":{"description":"Bad Gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InaccessibleServiceDefintionErrorApiError"}}}},"503":{"description":"Service Unavailable","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackendServiceApiError"}}}}},"deprecated":true,"security":[{"bearer_token":[]}]}}},"components":{"schemas":{"ApiErrorDetails":{"type":"object","properties":{"title":{"type":"string","example":"Error title"},"detail":{"type":"string","example":"Detailed error message"},"code":{"type":"string","example":"503"},"status":{"type":"string","example":"503"}}},"IcnValidationApiError":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ApiErrorDetails"}}},"example":{"errors":[{"title":"Bad Request","detail":"Invalid ICN format.","code":"400","status":"400"}]}},"MissingIcn":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ApiErrorDetails"}}},"example":{"errors":[{"title":"Veteran not identifiable.","detail":"No data found for ID or demographics.","code":"404","status":"404"}]}},"ServerSoapFaultApiError":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ApiErrorDetails"}}},"example":{"errors":[{"title":"Bad Request","detail":"Bad Request","code":"400","status":"400"}]}},"InternalServerApiError":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ApiErrorDetails"}}},"example":{"errors":[{"title":"Internal server error","detail":"Internal server error","code":"500","status":"500"}]}},"InaccessibleServiceDefintionErrorApiError":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ApiErrorDetails"}}},"example":{"errors":[{"title":"Bad Gateway","detail":"Upstream Request Error.","code":"502","status":"502"}]}},"BackendServiceApiError":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ApiErrorDetails"}}}},"DisabilityRatingAttributes":{"type":"object","properties":{"combined_disability_rating":{"type":"integer","format":"int32"},"combined_effective_date":{"type":"string","format":"date"},"legal_effective_date":{"type":"string","format":"date"},"individual_ratings":{"type":"array","items":{"$ref":"#/components/schemas/IndividualRating"}}},"deprecated":true},"DisabilityRatingData":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"attributes":{"$ref":"#/components/schemas/DisabilityRatingAttributes"}},"deprecated":true},"DisabilityRatingResponseV1":{"required":["data"],"type":"object","properties":{"data":{"$ref":"#/components/schemas/DisabilityRatingData"}},"deprecated":true},"IndividualRating":{"type":"object","properties":{"decision":{"type":"string"},"effective_date":{"type":"string","format":"date"},"rating_percentage":{"type":"integer","format":"int32"}},"deprecated":true},"Deployment":{"required":["end_date","location","start_date"],"type":"object","properties":{"start_date":{"type":"string","description":"beginning of deployment (YYYY-mm-dd)","format":"date","nullable":true,"example":"1948-10-10"},"end_date":{"type":"string","description":"end of deployment (YYYY-mm-dd)","format":"date","nullable":true,"example":"1949-10-09"},"location":{"type":"string","description":"Three letter ISO country code of deployment location","nullable":true,"example":"KOR"}},"description":"Deployment during a service history episode","deprecated":true},"ServiceHistoryAttributes":{"required":["branch_of_service","component_of_service","discharge_status","end_date","first_name","last_name","pay_grade","separation_reason","service_episode_combat_pay","service_type","start_date"],"type":"object","properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/Deployment"}},"first_name":{"type":"string","description":"Veteran first name","nullable":true,"example":"Abraham"},"last_name":{"type":"string","description":"Veteran last name","nullable":true,"example":"Lincoln"},"branch_of_service":{"type":"string","description":"The branch of service such as National Guard, Coast Guard, Reserves, Army, Navy, Air Force, Marines","example":"Army"},"component_of_service":{"type":"string","description":"A component of service such as Reserves, National Guard","example":"Reserves"},"service_type":{"type":"string","description":"If veteran is on active duty or not","example":"Active Duty"},"start_date":{"type":"string","description":"start date of a service history episode (YYYY-mm-dd)","format":"date","nullable":true,"example":"1948-04-08"},"end_date":{"type":"string","description":"end date of a service history episode (YYYY-mm-dd)","format":"date","nullable":true,"example":"1950-05-10"},"pay_grade":{"type":"string","description":"Defines the level of compensation for a position, normalized across military branches.\n\nPossible values include the concatenation of Pay Plan Code and Pay Grade Code.\nPay Plan Code is represented as a two-character code, and can be one of five values:\n - CC (Commissioned Corps)\n - MC (Cadet)\n - ME (Enlisted)\n - MO (Officer)\n - MW (Warrant Officer)\n\nPay Grade Code is a value between 01 and 10.\n\nPay Plan Code is concatenated with Pay Grade Code to determine the full Pay Grade value, with the leading character (M or C) stripped from Pay Plan Code.","example":"W01"},"discharge_status":{"type":"string","description":"Character of discharge from service episode. Possible values are:\n\nBoth \"honorable-for-va-purposes\" and \"dishonorable-for-va-purposes\" represent a change in character of discharge based on an administrative decision, for purposes of VA benefits administration. The original character of discharge for other purposes was either \"bad-conduct\" or \"other-than-honorable\". \"honorable-absence-of-negative-report\" represents an unreported character of service that the Department of Defense classifies as honorable.","nullable":true,"example":"HONORABLE","enum":["honorable","general","bad-conduct","other-than-honorable","dishonorable","honorable-absence-of-negative-report","honorable-for-va-purposes","dishonorable-for-va-purposes","uncharacterized","unknown"]},"separation_reason":{"type":"string","description":"Additional text description for separation reason beyond discharge_status value","example":"SUFFICIENT SERVICE FOR RETIREMENT"},"service_episode_combat_pay":{"type":"boolean","description":"If there is any combat pay in the VA Profile service's CombatPayBio with the same serviceEpisodeIdentifier, then indicate Y","nullable":true,"example":false}},"description":"Attributes for service_history endpoint"},"ServiceHistoryEpisode":{"required":["attributes","id","type"],"type":"object","properties":{"id":{"type":"string","description":"Service History Episode ID","example":"12312AASDf"},"type":{"type":"string","example":"service-history-episodes"},"attributes":{"$ref":"#/components/schemas/ServiceHistoryAttributes"}},"description":"Service history for authorized Veteran"},"ServiceHistoryMilitarySummary":{"required":["active_duty_status","combat_service_indicator","duty_status_code","duty_status_text","first_name","last_name","total_number_of_guard_active_duty_days","total_number_of_regular_active_duty_days","total_number_of_reserve_active_duty_days","total_number_of_training_days"],"type":"object","properties":{"first_name":{"type":"string","description":"Veteran first name","nullable":true,"example":"Abraham"},"last_name":{"type":"string","description":"Veteran last name","nullable":true,"example":"Lincoln"},"active_duty_status":{"type":"string","description":"Indicates the Veteran's current active duty status","nullable":true,"example":"false"},"combat_service_indicator":{"type":"boolean","description":"Indicates whether the service member has ever been a part of active combat duty","nullable":true,"example":false},"duty_status_code":{"type":"string","description":"Describes the individual's status","nullable":true,"example":"A"},"duty_status_text":{"type":"string","description":"Relates to an individual's affiliation with the US Military.","nullable":true,"example":"Active Component = full time active duty, not in the Guard or Reserve"},"total_number_of_regular_active_duty_days":{"type":"integer","description":"Total number of regular active duty days","format":"int32","nullable":true,"example":100},"total_number_of_reserve_active_duty_days":{"type":"integer","description":"Total number of reserve active duty days","format":"int32","nullable":true,"example":100},"total_number_of_guard_active_duty_days":{"type":"integer","description":"Total number of guard active duty days","format":"int32","nullable":true,"example":100},"total_number_of_training_days":{"type":"integer","description":"Total number of training days","format":"int32","nullable":true,"example":100}},"description":"Military Summary for Veteran"},"ServiceHistoryResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ServiceHistoryEpisode"}},"military_summary":{"$ref":"#/components/schemas/ServiceHistoryMilitarySummary"}},"description":"verification service_history endpoint","deprecated":true},"VeteranStatusAttributes":{"type":"object","properties":{"veteran_status":{"type":"string","description":"Whether the system could confirm the Veteran status of the authorized individual\n","enum":["confirmed","not confirmed"]}}},"VeteranStatusDetails":{"type":"object","properties":{"id":{"type":"string","description":"Confirmation ICN","example":"1012667145V762142"},"type":{"type":"string","example":"veteran_status_confirmations"},"attributes":{"$ref":"#/components/schemas/VeteranStatusAttributes"}},"description":"Veteran status confirmation for an individual"},"VeteranStatusResponseV1":{"required":["data"],"type":"object","properties":{"data":{"$ref":"#/components/schemas/VeteranStatusDetails"}},"deprecated":true}}}}