Skip to main content
Skip table of contents

VA Profile

Last Updated: July 15, 2025

VA Profile (formerly Vet360) provides an all-encompassing profile of a person associated with the VA, providing information such as contact info, health benefits, and military personnel data. The objective is to enable users to retrieve a broad range of information with a single request. For additional information please see the API Documentation or the profile service swagger documentation (you must be on the VA network to access both of those links).

Endpoints

Vets API calls VA Profile through the forward proxy. Throughout the codebase, Vets API uses the Service object pattern to call out to VA Profile via the Faraday gem, an HTTP client library. Faraday allows for various middleware integrations, including betamocks for mockdata–useful for lower environment testing–and breakers, a ruby gem and faraday middleware that implements the circuit breaker pattern. This is a common pattern throughout Vets API and many examples of various service classes can be found within the lib directory.

Bios

Consumers can pass along a bioPath as part of the request body when calling VA Profile. BIOs act as filters, guiding the VA Profile API to provide only the specific data subset that the consumer requests. For instance, the military info API documentation (must be on the VA network to access) features an interactive playground alongside detailed descriptions of various BIOs and other related details. This is the military_personnel service class to be specific.

The example in the code snippets below shows how the defined bioPath is passed in as part of the request body on the perform method.

Bio path from lib/va_profile/models/service_history.rb

RUBY
      def self.in_json
        {
          bios: [
            {
              bioPath: 'militaryPerson.militaryServiceHistory',
              parameters: {
                scope: 'all'
              }
            }
          ]
        }.to_json
      end

Request body from /lib/va_profile/military_personnel/service.rb

RUBY
response = perform(:post, identity_path, VAProfile::Models::ServiceHistory.in_json)

Perform method from lib/va_profile/service.rb

RUBY
    def perform(method, path, body = nil, headers = {})
      log_dates(body)

      VAProfile::Stats.increment('total_operations')
      config.base_request_headers.merge(headers)
      super(method, path, body, headers)
    end

Available data from VA Profile

Endpoints can be found in the original VCR recordings under the uri

Endpoint Name

1

Address Validation

2

Communication

3

Contact Information

4

Demographics

5

Military Personnel

6

Person

7

Reference Data

8

Veteran Status

Caching for VA Profile

A how-to caching guide has been created and can be found here. Several caching base classes already exist, making it possible to integrate with a pre-existing caching solution for VA Profile. If not, the provided instructions guide you through setting up a new service class with caching capabilities.

API documentation

The API documentation can be found at the links below. This requires VA Network access via CAG, GFE, etc.

Depending on your level of access, the docs might not be accessible on the web client aka Azure Virtual Desktop aka AVD, since it’s not fully on the VA Network.

Overall VA Profile documentation

https://dvagov.sharepoint.com/sites/OITEPMOVAPROPUB/SitePages/Profile-Service.aspx?csf=1&web=1&e=HmuH3U

Overall ProfileService API docs

https://qa.VA Profile.va.gov:7005/profile-service/swagger-ui/index.html?urls.primaryName=ProfileServiceV3

MilitaryPersonnel API docs

https://qa.VA Profile.va.gov:7005/military-personnel/swagger-ui/index.html?configUrl=/military-personnel/v3/api-docs/swagger-config#/

Test users

Military information

The following is a list of test users that can be used in conjunction with testing VA Profile military information. Vets API mockdata enhancements are underway to deliver simulated responses for VA Profile, primarily useful for lower environments. Credentials for authentication can be found in the Test User Dashboard (TUD) (SOCKS access required).

Military information test users

Additionally, developers are always encouraged to contribute new mockdata entries as needed.

Contact Information

The VA Profile Contact Information service allows authorized clients to retrieve and update a user’s contact details (such as address, phone, and email) through a standardized API interface. However, the required identifier for retrieving person data via the /GET person endpoint differs between the Staging and Production environments.

Identifier Requirements

Staging Environment

In the Staging environment, clients may use either of the following to make a successful /GET person request:

  • VAProfile ID - preferred

  • ICN (Integration Control Number) - accepted for testing and development purposes

This flexibility supports easier testing during development and integration efforts.

Production Environment

In the Production environment, only the VAProfile ID is accepted for /GET person requests.

  • VAProfile ID - required

  • ICN - not accepted

Any attempt to use an ICN to retrieve a person record in production will result in a failure. This restriction ensures that all Production-level access strictly references the canonical VAProfile identifier, promoting consistency and reliability across systems.

Environment

Accepted Identifier(s) for /GET person

Notes

Staging

✅ VAProfile ID ✅ ICN

ICNs are accepted for development use

Production

✅ VAProfile ID ❌ ICN

VAProfile ID is required

Address Validation

VA Profile Address Validation is a service used by the VA to verify and standardize addresses submitted by users on VA.gov. Its primary goal is to ensure that address data stored in a user’s profile is accurate, complete, and deliverable, minimizing the risk of mail delivery issues and data inconsistencies.

When a user updates their address—whether home or mailing—VA Profile Address Validation is triggered automatically. The service checks the entered address against authoritative postal data and returns a list of suggested addresses, each assigned a confidence score.

The validation key acts as a safeguard, indicating that the user has reviewed the address suggestions and confirmed their selection. This prevents unverified or ambiguous address data from being saved without user confirmation.

This flowchart (sensitive repo access required) outlines the workflow for updating a user’s home and mailing addresses in the VA.gov platform, leveraging Vets-API and VA Profile Address Validation services. The process ensures data accuracy and integrity by requiring validation keys for certain address updates.

If User Selects Suggested Address:

  • With low confidence score

    • A new validation key is required

    • VA Profile Address Validation is called again for validation

    • Backend request is sent with the new validation key

    • Address is updated

    • If the user chooses to also update mailing address:

      • The new validation key is required.

      • Backend request is sent with the new validation key.

      • Mailing address is updated.

  • With high confidence score

    • No validation key is sent

    • Backend request proceeds without it

    • Address is updated

    • If the user chooses to also update mailing address:

      • Backend request is sent without validation key.

      • Validation key is NOT required.

      • Mailing address is updated.

If User Selects Address You Entered:

  • Backend request is sent with the validation key.

  • Validation key is REQUIRED.

  • Home address is updated.

  • If the user chooses to also update mailing address:

    • Backend request is sent with the same validation key.

    • Validation key is REQUIRED.

    • Mailing address is updated.

Address You Entered →VALIDATION KEY REQUIRED

Suggested Address → Low Confidence Score → NEW VALIDATION KEY REQUIRED

Suggested Address → High Confidence Score → No validation key needed.

The same logic applies when updating the mailing address, if the user opts to do so after updating the home address.


AddressValidation V3 – Minimum Confidence Score Requirements

The VA Profile AddressValidation V3 service applies confidence score thresholds to determine whether an address is considered valid. These thresholds vary based on the address type:

Address Type

Minimum Confidence Score

USPS Validation Required

Domestic

80

Yes

Military

80

Yes (Treated as Domestic)

International

70

No

Note: Military addresses (e.g., APO, FPO, DPO) are evaluated using the same confidence score threshold as Domestic addresses.

Contacts

Slack channel

#va-profile in OCTO Slack


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.