# US State Department API

> US State Department travel advisories, entry requirements, embassy contacts and visa bulletin data are available as a workflow and API.

US State Department returns country travel advisories, including nationwide and regional levels, for a country name or two-letter code. Get entry requirements returns travel rules; Get embassy contacts returns U.S. offices; both need a country name or two-letter code. Get visa bulletin returns family or employment preference cut-off dates by area; choose a chart and optionally a month and category group.

- Page: https://fous.com/workflows/us-state-department
- Handle: `@us-state-department`
- Category: [Travel](https://fous.com/workflows/category/travel)
- Source website: https://travel.state.gov
- Last verified: Sep 29, 2026
- Fous is not affiliated with US State Department.

## Methods

### Get embassy contacts

Operation `get_embassy_contacts`, version 1. 1 credit per call.

List U.S. embassies and consulates shown on a country information page, with available contact details. Consular agencies are not included.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `country` | string | yes | `"Brazil"` | Country name or two-letter code, for example Brazil or BR. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or two-letter code, for example Brazil or BR.",
      "examples": [
        "Brazil",
        "Japan",
        "MX"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "country": "Brazil"
    },
    {
      "country": "Japan"
    },
    {
      "country": "MX"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `country` | string | `"Brazil"` | Country name on the information page. |
| `offices` | array |  | Embassies and consulates in the order listed on the page. |
| `offices[].city` | string or null | `"Brasilia"` | City named by the office heading, if shown. |
| `offices[].name` | string | `"U.S. Embassy Brasilia"` | Name of the U.S. embassy or consulate. |
| `offices[].email` | string or null | `"BrasiliaACS@state.gov"` | Email address, if shown. |
| `offices[].page_link` | string | `"https://travel.state.gov/en/international-travel/travel-advisories/brazil.html"` | Country information page where this office is listed. |
| `offices[].phone_number` | string or null | `"+011-55-61-3312-7000"` | Main phone number, if shown. |
| `offices[].website_link` | string or null | `"https://br.usembassy.gov/"` | Office website link, if shown. |
| `offices[].street_address` | string or null | `"SES 801 - Avenida das Nacoes, Lote 3"` | Street address, excluding the last locality line when separately shown. |
| `offices[].emergency_after_hours_phone` | string or null | `"+011-55-61-3312-7400"` | Emergency after-hours phone number, if shown. |
| `page_link` | string | `"https://travel.state.gov/en/international-travel/travel-advisories/brazil.html"` | Country information page link. |

**Example input**

```json
{
  "country": "Brazil"
}
```

**Example output**

```json
{
  "country": "Brazil",
  "offices": [
    {
      "city": "Brasilia",
      "name": "U.S. Embassy Brasilia",
      "email": "BrasiliaACS@state.gov",
      "page_link": "https://travel.state.gov/en/international-travel/travel-advisories/brazil.html",
      "phone_number": "+011-55-61-3312-7000",
      "website_link": "https://br.usembassy.gov/",
      "street_address": "SES 801 - Avenida das Nacoes, Lote 3",
      "emergency_after_hours_phone": "+011-55-61-3312-7400"
    },
    {
      "city": "Porto Alegre",
      "name": "U.S. Consulate General Porto Alegre",
      "email": "PortoAlegreACS@state.gov",
      "page_link": "https://travel.state.gov/en/international-travel/travel-advisories/brazil.html",
      "phone_number": "+011-55-51-3345-6000",
      "website_link": "https://br.usembassy.gov/",
      "street_address": "Avenida Assis Brasil, 1889, Passo d'Areia",
      "emergency_after_hours_phone": "+011-55-51-3345-6000"
    },
    {
      "city": "Recife",
      "name": "U.S. Consulate General Recife",
      "email": "RecifeACS@state.gov",
      "page_link": "https://travel.state.gov/en/international-travel/travel-advisories/brazil.html",
      "phone_number": "+011-55-81-3416-3050",
      "website_link": "https://br.usembassy.gov/",
      "street_address": "Rua Goncalves Maia, 163, Boa Vista",
      "emergency_after_hours_phone": "+011-55-81-3416-3060"
    }
  ],
  "page_link": "https://travel.state.gov/en/international-travel/travel-advisories/brazil.html"
}
```

### Get entry requirements

Operation `get_entry_requirements`, version 1. 1 credit per call.

Get entry requirements for U.S. passport holders visiting a country, including passport, visa, vaccination and currency rules. Information reflects the country page and may not cover every situation.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `country` | string | yes | `"JP"` | Country name or two-letter code, for example Brazil or BR. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or two-letter code, for example Brazil or BR.",
      "examples": [
        "JP",
        "Mexico",
        "Brazil"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "country": "JP"
    },
    {
      "country": "Mexico"
    },
    {
      "country": "Brazil"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `country` | string | `"Japan"` | Country name on the country information page. |
| `page_link` | string | `"https://travel.state.gov/en/international-travel/travel-advisories/japan.html"` | Link to the country information page. |
| `last_updated` | string or null | `"2025-08-11"` | Date the country information page was last updated, in YYYY-MM-DD format, when shown. |
| `tourist_visa_required` | string or null | `"No visa required for stays less than 90 days."` | Tourist visa rule as stated in the travel requirements. |
| `vaccinations_required` | string or null | `"No vaccinations are required."` | Vaccination rule as stated in the travel requirements. |
| `entry_exit_visa_summary` | string or null | `"The section links to: Embassy of Japan in the United States; Visit Japan Web – To complete arrival procedures ahead of ` | Short summary of the entry, exit and visa requirements section. |
| `passport_validity_required` | string or null | `"Passport must be valid for the entire stay."` | Passport validity rule as stated in the travel requirements. |
| `blank_passport_pages_required` | string or null | `"1 blank page required per entry stamp."` | Required blank passport pages as stated in the travel requirements. |
| `currency_restrictions_for_exit` | string or null | `"¥1,000,000 or more to be declared."` | Currency declaration or limit on exit. |
| `currency_restrictions_for_entry` | string or null | `"¥1,000,000 or more to be declared (about 6,450 USD)."` | Currency declaration or limit on entry. |

**Example input**

```json
{
  "country": "JP"
}
```

**Example output**

```json
{
  "country": "Japan",
  "page_link": "https://travel.state.gov/en/international-travel/travel-advisories/japan.html",
  "last_updated": "2025-08-11",
  "tourist_visa_required": "No visa required for stays less than 90 days.",
  "vaccinations_required": "No vaccinations are required.",
  "entry_exit_visa_summary": "The section links to: Embassy of Japan in the United States; Visit Japan Web – To complete arrival procedures ahead of traveling.",
  "passport_validity_required": "Passport must be valid for the entire stay.",
  "blank_passport_pages_required": "1 blank page required per entry stamp.",
  "currency_restrictions_for_exit": "¥1,000,000 or more to be declared.",
  "currency_restrictions_for_entry": "¥1,000,000 or more to be declared (about 6,450 USD)."
}
```

### Get travel advisory

Operation `get_travel_advisory`, version 1. 1 credit per call.

Get the current U.S. travel advisory for a country, including risk indicators and regions at different levels. Country codes use two letters.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `country` | string | yes | `"Mexico"` | Country name or two-letter code, for example Mexico or MX. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "country"
  ],
  "properties": {
    "country": {
      "type": "string",
      "description": "Country name or two-letter code, for example Mexico or MX.",
      "examples": [
        "Mexico",
        "GB",
        "Japan"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "country": "Mexico"
    },
    {
      "country": "GB"
    },
    {
      "country": "Japan"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `country` | string | `"Mexico"` | Country name. |
| `summary` | string | `"Exercise normal precautions in Japan.\n\nU.S. citizens should always exercise caution when traveling abroad. Use these ` | Travel advisory guidance and summary text. |
| `date_issued` | string | `"2026-05-29"` | Date the travel advisory was issued, in YYYY-MM-DD format. |
| `advisory_link` | string | `"https://travel.state.gov/en/international-travel/travel-advisories/mexico.html"` | Page link to the travel advisory. |
| `advisory_level` | integer | `2` | Nationwide travel advisory level from 1 to 4. |
| `risk_indicators` | array |  | Risk indicators listed for the advisory. |
| `advisory_level_words` | string | `"Exercise increased caution"` | Meaning of the nationwide travel advisory level. |
| `regions_with_different_level` | array |  | Named areas with a level different from the nationwide level. |
| `regions_with_different_level[].region_name` | string | `"State of Colima"` | Name of the region. |
| `regions_with_different_level[].advisory_level` | integer | `4` | Region advisory level from 1 to 4. |
| `regions_with_different_level[].advisory_level_words` | string | `"Do not travel"` | Meaning of the region advisory level. |

**Example input**

```json
{
  "country": "Mexico"
}
```

**Example output**

```json
{
  "country": "Mexico",
  "summary": "Exercise increased caution in Mexico due to terrorism, crime, and kidnapping. Some areas have increased risk. Read the entire Travel Advisory.\n\nMany violent crimes take place in Mexico. They include h…",
  "date_issued": "2026-05-29",
  "advisory_link": "https://travel.state.gov/en/international-travel/travel-advisories/mexico.html",
  "advisory_level": 2,
  "risk_indicators": [
    "Terrorism",
    "Crime",
    "Kidnapping or Hostage Taking"
  ],
  "advisory_level_words": "Exercise increased caution",
  "regions_with_different_level": [
    {
      "region_name": "State of Colima",
      "advisory_level": 4,
      "advisory_level_words": "Do not travel"
    },
    {
      "region_name": "State of Guerrero",
      "advisory_level": 4,
      "advisory_level_words": "Do not travel"
    },
    {
      "region_name": "State of Michoacan",
      "advisory_level": 4,
      "advisory_level_words": "Do not travel"
    }
  ]
}
```

### Get visa bulletin

Operation `get_visa_bulletin`, version 1. 1 credit per call.

Get the current or a chosen monthly U.S. Visa Bulletin with family and employment preference cut-off dates by area. Upcoming months are included only when published.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `chart` | string | no | `"dates_for_filing"` | Chart to read, for example dates_for_filing. |
| `month` | string | no | `"2026-10"` | Bulletin month, for example 2026-10. Omit for the current bulletin. |
| `category_group` | string | no | `"employment"` | Preference categories to include, for example employment. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "chart": {
      "enum": [
        "final_action",
        "dates_for_filing"
      ],
      "type": "string",
      "default": "final_action",
      "description": "Chart to read, for example dates_for_filing.",
      "examples": [
        "dates_for_filing",
        "final_action"
      ]
    },
    "month": {
      "type": "string",
      "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])$",
      "description": "Bulletin month, for example 2026-10. Omit for the current bulletin.",
      "examples": [
        "2026-10",
        "2026-09"
      ]
    },
    "category_group": {
      "enum": [
        "family",
        "employment",
        "both"
      ],
      "type": "string",
      "default": "both",
      "description": "Preference categories to include, for example employment.",
      "examples": [
        "employment",
        "family"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {},
    {
      "chart": "dates_for_filing",
      "month": "2026-10",
      "category_group": "employment"
    },
    {
      "chart": "final_action",
      "month": "2026-09",
      "category_group": "family"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `categories` | array |  | Preference categories in bulletin order. |
| `categories[].china` | string | `"2020-01-22"` | Cut-off as YYYY-MM-DD, Current or Unavailable. |
| `categories[].india` | string | `"2020-01-22"` | Cut-off as YYYY-MM-DD, Current or Unavailable. |
| `categories[].mexico` | string | `"2008-01-01"` | Cut-off as YYYY-MM-DD, Current or Unavailable. |
| `categories[].plain_name` | string | `"F1: Unmarried adult sons and daughters of U.S. citizens"` | Preference category and meaning. |
| `categories[].philippines` | string | `"2013-05-01"` | Cut-off as YYYY-MM-DD, Current or Unavailable. |
| `categories[].bulletin_link` | string | `"https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2026/visa-bulletin-for-september-2026.html"` | Link to the bulletin page for this category. |
| `categories[].category_code` | string | `"F1"` | Preference category. |
| `categories[].all_other_countries` | string | `"2020-01-22"` | Cut-off as YYYY-MM-DD, Current or Unavailable. |
| `bulletin_link` | string | `"https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2026/visa-bulletin-for-september-2026.html"` | Bulletin page link. |
| `bulletin_month` | string | `"2026-09"` | Bulletin month in YYYY-MM format. |

**Example input**

```json
{}
```

**Example output**

```json
{
  "categories": [
    {
      "china": "2020-01-22",
      "india": "2020-01-22",
      "mexico": "2008-01-01",
      "plain_name": "F1: Unmarried adult sons and daughters of U.S. citizens",
      "philippines": "2013-05-01",
      "bulletin_link": "https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2026/visa-bulletin-for-september-2026.html",
      "category_code": "F1",
      "all_other_countries": "2020-01-22"
    },
    {
      "china": "2026-08-22",
      "india": "2026-08-22",
      "mexico": "2025-08-22",
      "plain_name": "F2A: Spouses and unmarried minor children of permanent residents",
      "philippines": "2026-08-22",
      "bulletin_link": "https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2026/visa-bulletin-for-september-2026.html",
      "category_code": "F2A",
      "all_other_countries": "2026-08-22"
    },
    {
      "china": "2019-08-22",
      "india": "2019-08-22",
      "mexico": "2009-02-15",
      "plain_name": "F2B: Unmarried adult sons and daughters of permanent residents",
      "philippines": "2013-06-01",
      "bulletin_link": "https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2026/visa-bulletin-for-september-2026.html",
      "category_code": "F2B",
      "all_other_countries": "2019-08-22"
    }
  ],
  "bulletin_link": "https://travel.state.gov/content/travel/en/legal/visa-law0/visa-bulletin/2026/visa-bulletin-for-september-2026.html",
  "bulletin_month": "2026-09"
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@us-state-department",
  "visibility": "public",
  "operation": "get_embassy_contacts",
  "version": 1,
  "input": {
    "country": "Brazil"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@us-state-department\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_embassy_contacts\",\n  \"version\": 1,\n  \"input\": {\n    \"country\": \"Brazil\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@us-state-department",
  "visibility": "public",
  "operation": "get_embassy_contacts",
  "version": 1,
  "input": {
    "country": "Brazil"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@us-state-department","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Compare travel advisory levels across destinations.
- Review entry rules when planning country travel.
- Find embassy and consulate contact details by country.
- Track family and employment preference cut-off dates.
- Prepare travel guidance using passport and currency rules.

## FAQ

### Is Fous affiliated with US State Department?

No. Fous is not affiliated with US State Department. This workflow reads the public travel.state.gov website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a US State Department account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from travel.state.gov when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### What is the travel advisory level for a country?

Get travel advisory returns the nationwide level, risk indicators and regions with different levels. Provide a country name or two-letter code.

### What entry requirements apply to U.S. passport holders?

Get entry requirements returns stated passport, visa, vaccination and currency rules. Provide a country name or two-letter code.

### What are the visa bulletin cut-off dates?

Get visa bulletin returns preference cut-off dates by area. Choose a chart and optionally provide a month and category group.

## Related

- [EmbassyPages API](https://fous.com/workflows/embassypages.md): Public listings for embassies and consulates worldwide.
- [GOV.UK API](https://fous.com/workflows/gov-uk.md): GOV.UK provides summarized current travel advice with linked details, published regional holidays (none for unpublished years), and possible matches on the current UK Sanctions List.
- [Passport Index API](https://fous.com/workflows/passport-index.md): Passport Index provides passport and destination visa information, including entry guidance, permitted stays, rankings and mobility scores; travelers should confirm current entry rules with the embassy.
- [CDC API](https://fous.com/workflows/cdc.md): CDC provides disease facts, age-based vaccine guidance, current travel notices, and destination-specific travel health recommendations; review dates appear only when CDC supplies them.
- [CBP API](https://fous.com/workflows/cbp.md): US Customs and Border Protection travel information.
- [US Census Bureau API](https://fous.com/workflows/us-census-bureau.md): US Census Bureau returns statistics from varying Census years, population estimates through July 1, and address geographies using Census vintages that may differ from representation.
- [National Weather Service API](https://fous.com/workflows/national-weather-service.md): National Weather Service provides U.S. day-and-night forecasts for seven days, hourly forecasts for up to 156 hours where available, active alerts, and latest nearby station observations.
- [USCIS API](https://fous.com/workflows/uscis.md): USCIS returns case processing times showing when 80% of cases were completed and published receipt-date cutoffs, plus current case status and available case details.
- [All Travel workflows](https://fous.com/workflows/category/travel)
