Register for an API key at api.data.gov and include it as the api_key query parameter on all calls; the GSA Per Diem API is hosted on the GSA Open Technology platform.
To look up rates by ZIP code, send a GET request to https://api.gsa.gov/travel/perdiem/v2/rates/conus/zipcodes/{zip}/{fiscal_year} where fiscal_year is a 4-digit year (e.g., 2026 for FY2026 rates effective October 2025 through September 2026).
To look up rates by city and state, use https://api.gsa.gov/travel/perdiem/v2/rates/conus/city/{city}/{state}/{fiscal_year}; the state parameter is the 2-letter abbreviation.
Parse the response to extract the lodging ceiling rate and the meals-and-incidental-expenses (M&IE) rate for the locality; destinations not explicitly listed return the standard CONUS rate.
For OCONUS (outside continental US) and foreign per diem rates, these are governed by the State Department DSSR 925 system, not the GSA API — redirect those queries to the State Department allowances portal.
GSA releases FY per diem rates each August for the fiscal year beginning 1 October; cache results and refresh the cache after mid-August each year.
Known gotchas
The fiscal year parameter is required and governs which rate table is returned; using the wrong fiscal year (e.g., 2025 when the trip is in FY2026) will return stale rates and lead to under- or over-reimbursement.
Locations not individually listed in the GSA database return the standard CONUS lodging and M&IE rates, which are lower than high-cost-area rates; do not assume a missing result means zero allowance.
Foreign and OCONUS per diem rates are outside the scope of the GSA API and are managed by the State Department — attempting to query the GSA endpoint for international locations will return no results.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp