Pete

Free APIs for VA disability math.

Used by Pete and any AI agent that needs accurate VA calculations. No auth, no keys, no rate cards.

Quick start

This request combines 30% and 30%. The final VA rating is 50%.

curl -X POST https://pete.vet/api/v1/va/rating/combine \
  -H 'Content-Type: application/json' \
  -d '{"disabilities":[{"rating":30},{"rating":30}]}'

Endpoints

Code samples

curl
curl -X POST https://pete.vet/api/v1/va/rating/combine \
  -H 'Content-Type: application/json' \
  -d '{"disabilities":[{"rating":30},{"rating":30}]}'
Python requests
import requests

response = requests.post(
    "https://pete.vet/api/v1/va/rating/combine",
    json={
        "disabilities": [{"rating": 30}, {"rating": 30}],
        "dependents": {
            "hasSpouse": True,
            "parentsCount": 0,
            "childrenUnder18": 0,
            "childrenInSchool": 0,
            "spouseAidAndAttendance": False,
        },
    },
    timeout=10,
)
response.raise_for_status()
print(response.json()["data"])
TypeScript fetch
const response = await fetch("https://pete.vet/api/v1/va/rating/combine", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    disabilities: [
      { rating: 30 },
      { rating: 30 },
      { rating: 20, bodyPartGroup: "other" },
    ],
    dependents: {
      hasSpouse: true,
      parentsCount: 0,
      childrenUnder18: 1,
      childrenInSchool: 0,
      spouseAidAndAttendance: false,
    },
  }),
})

if (!response.ok) {
  throw new Error(await response.text())
}

const { data } = await response.json()
console.log(data.rating.final, data.compensation?.monthlyTotal)
Claude tool-use JSON
{
  "name": "va_rating_combine",
  "description": "Calculate combined VA disability rating using the official whole-person formula with bilateral factor and monthly compensation.",
  "input_schema": {
    "type": "object",
    "additionalProperties": false,
    "required": ["disabilities"],
    "properties": {
      "disabilities": {
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": ["rating"],
          "properties": {
            "rating": { "type": "integer", "enum": [0,10,20,30,40,50,60,70,80,90,100] },
            "bilateral": { "type": "boolean" },
            "bodyPartGroup": {
              "type": "string",
              "enum": ["upper_extremity","lower_extremity","paired_skeletal_muscle","other"]
            },
            "label": { "type": "string" }
          }
        }
      },
      "dependents": {
        "type": "object",
        "required": ["hasSpouse","parentsCount","childrenUnder18","childrenInSchool","spouseAidAndAttendance"],
        "properties": {
          "hasSpouse": { "type": "boolean" },
          "parentsCount": { "type": "integer", "enum": [0,1,2] },
          "childrenUnder18": { "type": "integer", "minimum": 0, "maximum": 10 },
          "childrenInSchool": { "type": "integer", "minimum": 0, "maximum": 10 },
          "spouseAidAndAttendance": { "type": "boolean" }
        }
      }
    }
  }
}

POST /api/v1/va/rating/combine

Send ratings in 10% increments. Add optional bilateral and body part fields when a disability affects an arm, leg, or paired skeletal muscle. Add dependents when you want monthly compensation.

Open the OpenAPI spec

GET /api/v1/va/rates/current

Returns the full 2026 VA disability compensation rate table used by the calculator and API. The response is cached at the edge.

Rate limits

60 requests per minute and 1000 requests per day per IP. Email hello@pete.vet for higher limits.

Versioning

v1 routes never break. Optional response fields may be added without notice. Breaking changes ship under /api/v2/.

Attribution

Not required. A link to pete.vet is appreciated. Rate data is sourced from VA.gov and is public domain.

License

API code is MIT. Rate data is public domain from VA.gov. Contact hello@pete.vet.