Foreign Per Diem Rates by Location

Foreign Per Diem rates are established monthly by the Office of Allowances as maximum U.S. dollar rates for reimbursement of U.S. Government civilians traveling on official business in foreign areas. Lodging and M&IE (Meals & Incidental Expenses) are reported separately followed by a combined daily rate. For regulations pertaining to these rates, see the Federal Travel Regulation (FTR) established by the General Services Administration and implementing regulations estabished by Federal Agencies.

Getting Started

All communication with the API is done through HTTPS, and errors are communicated through HTTP response codes. Available response types include JSON, XML, and CSV, which are selectable by the "extension" on API requests or by HTTP Accepts headers.

This documentation also includes inline, runable examples. Click on any link that contains a gear symbol next to it to run that example live against the Foreign Per Diem Rates by Location API.

App Tokens

All requests should include an app token that identifies your application, and each application should have its own unique app token. A limited number of requests can be made without an app token, but they are subject to much lower throttling limits than request that do include one. If you don't have an app token yet, click the button to the right to sign up for one.

Once you have an app token, you can include it with your request either by using the X-App-Token HTTP header, or by passing it via the $app_token parameter on your URL.

Response Codes

One of the following response codes will be returned with every request:

  1. 200Successful request.
  2. 202Request processing. You can retry your request, and when it's complete, you'll get a 200 instead.
  3. 400Bad request
  4. 401Unauthorized. You're not authorized to access this resource.
  5. 404Not found. The resource requested doesn't exist.
  6. 429Too Many Requests. The client has made too many requests and is currently being rate limited.
  7. 500Server errors. Our bad!

Code Samples

#!/usr/bin/env ruby

require 'net/https'
uri = URI('https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?recall_id=94')

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_PEER

request = Net::HTTP::Get.new(uri.request_uri)
request.add_field('X-App-Token', ARGV[0])

response = http.request(request)
puts response.code
puts response.body
#!/usr/bin/env python

import sys
import requests

r = requests.get('https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?recall_id=94', headers={'X-App-Token': sys.argv[1]})
print r.status_code
print r.text
request = require 'request'
options = uri: 'https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$$app_token=APP_TOKEN&recall_id=94'
request options, (err, response, body) ->  console.log body
#!/bin/sh 

curl --header "X-App-Token: $1" "https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?recall_id=94"

Fields

The following fields are available on the Foreign Per Diem Rates by Location API.

country

Human Name: Country
Type: text

Examples

Retrieve all records with country equal to ZIMBABWE:

Retrieve all records where country is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(country, 47.598177,-122.33448, 1000)

location

Human Name: Location
Type: text

Examples

Retrieve all records with location equal to Zurich:

Retrieve all records where location is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(location, 47.598177,-122.33448, 1000)

season_code

Human Name: Season Code
Type: text

Examples

Retrieve all records with season_code equal to S4:

Retrieve all records where season_code is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(season_code, 47.598177,-122.33448, 1000)

season_start_date

Human Name: Season Start Date
Type: text

Examples

Retrieve all records with season_start_date equal to 6-Jan:

Retrieve all records where season_start_date is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(season_start_date, 47.598177,-122.33448, 1000)

season_end_date

Human Name: Season End Date
Type: text

Examples

Retrieve all records with season_end_date equal to 5-Jan:

Retrieve all records where season_end_date is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(season_end_date, 47.598177,-122.33448, 1000)

lodging

Human Name: Lodging $
Type: number

Examples

Retrieve all records with lodging equal to 545:

Retrieve all records where lodging is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(lodging, 47.598177,-122.33448, 1000)

meals_and_incidentals

Human Name: Meals and Incidentals $
Type: number

Examples

Retrieve all records with meals_and_incidentals equal to 240:

Retrieve all records where meals_and_incidentals is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(meals_and_incidentals, 47.598177,-122.33448, 1000)

per_diem

Human Name: Per Diem $
Type: number

Examples

Retrieve all records with per_diem equal to 729:

Retrieve all records where per_diem is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(per_diem, 47.598177,-122.33448, 1000)

location_code

Human Name: Location Code
Type: number

Examples

Retrieve all records with location_code equal to 19975:

Retrieve all records where location_code is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(location_code, 47.598177,-122.33448, 1000)

effective_date

Human Name: Effective Date
Type: text

Examples

Retrieve all records with effective_date equal to 1-Sep-99:

Retrieve all records where effective_date is within 1 kilometer of Seattle, WA (47.598177,-122.33448):

https://explore.data.gov/resource/foreign-per-diem-rates-by-location.json?$where=within_circle(effective_date, 47.598177,-122.33448, 1000)