Foyer API · Recipe
Ask Claude what calls I missed today
Ask Claude "What calls did I miss today?" and get a short answer: who called, what they wanted, who left a voicemail, and what is waiting for your review.
You need: a Foyer account (any plan can read) and Claude. ChatGPT and other assistants with MCP connectors work the same way.
Set it up once
- Add Foyer as a connector in Claude: see Connect Claude or ChatGPT.
- When Foyer asks what Claude may see, allow See your calls, summaries and voicemails list and Read conversations and voicemail text. Leave the rest off for this recipe.
Ask
- "What calls did I miss today?"
- "Who left voicemails today, and what did they want?"
- "Is anything waiting for my review?"
- "Summarize today's calls in three bullets."
Claude reads today's calls from Foyer and answers from them: the calls you have not opened yet, the ones Foyer held for your review, and the voicemails, with what each caller said. Reading calls this way does not mark them read in your Foyer app.
What happens behind the scenes
Claude asks Foyer for calls since midnight, then reads the ones it needs in full. You can do the same with a key:
curl "https://api.hifoyer.com/v1/calls?since=2026-10-20T00:00:00-04:00&unread=true&limit=100" \
-H "Authorization: Bearer $FOYER_API_KEY"import os
from datetime import datetime
import requests
API = "https://api.hifoyer.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['FOYER_API_KEY']}"}
midnight = datetime.now().astimezone().replace(hour=0, minute=0, second=0, microsecond=0)
calls = requests.get(f"{API}/calls", headers=HEADERS, params={"since": midnight.isoformat(), "limit": 100}, timeout=30)
calls.raise_for_status()
for call in calls.json()["data"]:
who = call["caller"]["name"] or call["caller"]["number"] or "Unknown caller"
flag = "new" if not call["read"] else "seen"
print(f"[{flag}] {who}: {call['outcome_label']}. {call['summary']}")
review = requests.get(f"{API}/review", headers=HEADERS, timeout=30)
review.raise_for_status()
print(len(review.json()["data"]), "call(s) waiting for your review")With an agent that runs code
Claude Code, or your own agent, can use the REST API directly. Give it a key with read permissions in an environment variable and a prompt such as:
Use the Foyer API (OpenAPI spec: https://www.hifoyer.com/api/openapi.json; key in the FOYER_API_KEY environment variable) to list my calls since midnight today. Tell me which ones I have not opened, which were held for my review, and what each voicemail says.