Medicare API: Search nursing homes
Finds U.S. nursing homes on Medicare Care Compare by name, city and state, or ZIP code. Results include star ratings, ownership, fines from the last three years, and Care Compare links.
Unofficial. Not affiliated with or endorsed by Medicare.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- State optional
state Optional state name or two-letter code. Example: Florida.
Florida
- Search, required
search Nursing home name, city and state, or ZIP code. Example: Tampa, FL.
Tampa, FL
- Max Results optional
max_results Maximum number of homes to return. Example: 20.
2
Whole number from 1 to 100. Default
20.
Input as JSON
{ "state": "Florida", "search": "Tampa, FL", "max_results": 2}Output
{ "nursing_homes": [ { "name": "Palm Garden Of Tampa", "phone": "(813) 972-8775", "address": "3612 E 138TH AVE, TAMPA, FL 33613", "total_fines": 0, "fines_currency": "USD", "ownership_type": "For profit - Corporation", "number_of_fines": 0, "staffing_rating": 3, "care_compare_link": "https://www.medicare.gov/care-compare/details/nursing-home/105591" , "abuse_warning_shown": false, "overall_star_rating": 4, "quality_measures_rating": 5, "cms_certification_number": "105591", "health_inspection_rating": 3, "number_of_certified_beds": 120, "average_residents_per_day": 114.7 }, { "name": "Rehabilitation And Healthcare Center Of Tampa", "phone": "(813) 872-2771", "address": "4411 N HABANA AVE, TAMPA, FL 33614", "total_fines": 231152, "fines_currency": "USD", "ownership_type": "Non profit - Corporation", "number_of_fines": 2, "staffing_rating": 4, "care_compare_link": "https://www.medicare.gov/care-compare/details/nursing-home/105234" , "abuse_warning_shown": false, "overall_star_rating": 1, "quality_measures_rating": 4, "cms_certification_number": "105234", "health_inspection_rating": 1, "number_of_certified_beds": 174, "average_residents_per_day": 163.2 } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"medicare.gov/search_nursing_homes","input":{"state":"Florida","search":"Tampa, FL","max_results":2}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "medicare.gov/search_nursing_homes" , "input": { "state": "Florida", "search": "Tampa, FL", "max_results": 2 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "medicare.gov/search_nursing_homes" , "input": { "state": "Florida", "search": "Tampa, FL", "max_results": 2 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run medicare.gov/search_nursing_homes# with {"state":"Florida","search":"Tampa, FL","max_results":2}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "search" ], "properties": { "state": { "type": "string", "description": "Optional state name or two-letter code. Example: Florida." }, "search": { "type": "string", "minLength": 1, "description": "Nursing home name, city and state, or ZIP code. Example: Tampa, FL." }, "max_results": { "type": "integer", "default": 20, "maximum": 100, "minimum": 1, "description": "Maximum number of homes to return. Example: 20." } }}Output schema
{ "type": "object", "required": [ "nursing_homes" ], "properties": { "nursing_homes": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "phone": { "type": [ "string", "null" ] }, "address": { "type": [ "string", "null" ] }, "total_fines": { "type": [ "number", "null" ] }, "fines_currency": { "type": "string" }, "ownership_type": { "type": [ "string", "null" ] }, "number_of_fines": { "type": [ "integer", "null" ] }, "staffing_rating": { "type": [ "integer", "null" ] }, "care_compare_link": { "type": "string" }, "abuse_warning_shown": { "type": "boolean" }, "overall_star_rating": { "type": [ "integer", "null" ] }, "quality_measures_rating": { "type": [ "integer", "null" ] }, "cms_certification_number": { "type": "string" }, "health_inspection_rating": { "type": [ "integer", "null" ] }, "number_of_certified_beds": { "type": [ "integer", "null" ] }, "average_residents_per_day": { "type": [ "number", "null" ] } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
medicare.gov/search_nursing_homes- Returns
- name, star ratings, beds, residents, fines, ownership, abuse warning, address, phone, Care Compare link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method medicare.gov/search_nursing_homes with the inputs above.
Ask your agent
- Find nursing homes in Phoenix, AZ with good star ratings
- I need a list of nursing facilities in ZIP code 60614 with their fines and ownership info
- Look up Sunrise Care Center in Ohio and show me its phone number and address
- Which skilled nursing homes near Tampa, FL have had abuse warnings recently?
- On medicare.gov, show me the number of beds and residents at homes in Vermont, limit to 10 results
See more
All Medicare methodsFinds U.S. hospitals by name, city and state, or ZIP code, with Medicare overall and patient survey star ratings, contact details, and Care Compare links. Ratings may be unavailable for some hospitals.
medicare.gov/search_hospitalsFinds US healthcare providers by name, place, specialty and provider type in the NPI Registry, with practice contact details and primary taxonomy. Results may include providers with similar names.
npiregistry.cms.hhs.gov/search_providersLooks up a provider in the NPI Registry by 10-digit NPI number and returns the public name, specialties, addresses, contact details and registry dates.
npiregistry.cms.hhs.gov/get_providerFind nearby NHS service listings from a UK postcode or town, nearest first. NHS service search covers England; urgent_care returns A&E listings. Hours, patient availability and websites are null when not shown.
nhs.uk/search_nearby_servicesSearches Homes.com homes for sale in a US city, neighborhood, or ZIP code, with optional price, bedroom, bathroom and home type filters. Returns listings in site order; days on market is null when not shown.
homes.com/search_homesSearches Apartments.com rentals by city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and page filters. Rent and availability wording is returned when displayed; missing details are null.
apartments.com/search_apartmentsFinds U.S. nonprofits by organization name, optionally filtered by state and city, with the latest reported revenue and assets.
projects.propublica.org/search_nonprofitsFinds local US businesses on Yellow Pages by name or category and a city, state or ZIP. Returns listings with phone numbers in Yellow Pages order, excluding labeled ads; contact details, ratings and hours appear when listed.
yellowpages.com/search_businesses