Foyer API pages

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

  1. Add Foyer as a connector in Claude: see Connect Claude or ChatGPT.
  2. 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

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: today's calls you have not opened
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"
Python: today's calls, grouped
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:

Prompt
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.