Find an API

Search public APIs with auth details & Postman guides

← All APIs

Benefits Intake

va · Data

Data No Auth Free & Open open_data

The Benefits Intake API allows authorized third-party systems used by Veteran Service Organizations (VSOs), agencies, and Veterans to digitally submit VA benefits claim documents directly to the Veterans Benefits Administration's (VBA) claims intake process. This API handles documents related to the following benefit claim types: * Compensation * Pension/Survivors Benefits * Education * Fiduciary * Insurance * Veteran Readiness & Employment (VRE) * Board of Veteran Appeals (BVA) This API also

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Get status for a previous benefits document upload

Get status for a previous benefits document upload

https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
GET Download zip of "what the server sees"

An endpoint that will allow you to see exactly what the server sees. We split apart all submitted docs and metadata and zip the file to make it available to you to help with debugging purposes. Files are deleted after 10 days. Only available in testing environments, not production.

https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}/download

Hover any highlighted part to learn what it does

curl -X GET "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}/download"
import requests
response = requests.get(
    "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}/download",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}/download';

const response = await fetch(url); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}/download"
	req, _ := http.NewRequest("GET", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}/download")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads/{id}/download";
$opts = ["http" => [
    "method" => "GET",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));
POST Get a location for subsequent document upload PUT request

Get a location for subsequent document upload PUT request

https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads

Hover any highlighted part to learn what it does

curl -X POST "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads"
import requests
response = requests.post(
    "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads",
)
print(response.json())
const url = 'https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads';

const response = await fetch(url, {
  method: 'POST',
}); 
const data = await response.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	targetURL := "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads"
	req, _ := http.NewRequest("POST", targetURL, nil)

	client := &http.Client{}
	resp, _ := client.Do(req)
	defer resp.Body.Close()
	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
require "net/http"
require "json"

uri = URI("https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads")

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Post.new(uri)

res = http.request(req)
puts JSON.parse(res.body)
<?php
$url = "https://api.apis.guru/v2/specs/va.gov/benefits/1.0.0/uploads";
$opts = ["http" => [
    "method" => "POST",
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));

Postman Setup Guide

Get Postman ↗
  1. See official documentation for authentication and setup.

What can you build with Benefits Intake?

Benefits Intake is a Data API. Developers commonly use data APIs for:

  • enriching your app with third-party datasets
  • building data pipelines and ETL workflows
  • querying and searching large datasets
  • powering research, analysis, and reporting tools
  • syncing reference data into your own systems

No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Benefits Intake is free to use, making it a low-risk choice to experiment with.

New to APIs? Read our beginner's guide · Learn about API keys · What is REST?

Open documentation ↗