FamilyWall Integration
FamilyWall family organization platform integration for managing calendars, lists, messaging, meal plans, recipes, and more.
Authentication
FamilyWall uses email/password authentication with session tokens. Required environment variables:
FAMILYWALL_EMAIL- FamilyWall account emailFAMILYWALL_PASSWORD- FamilyWall account password
These should be set in ~/.openclaw/.env.
Test connection:
source ~/.openclaw/.env && {baseDir}/scripts/familywall.py status
Quick Reference
All operations use the {baseDir}/scripts/familywall.py script:
| Operation | Command |
|---|---|
| Status & Members | |
| Account/family status | {baseDir}/scripts/familywall.py status |
| List family members | {baseDir}/scripts/familywall.py members |
| Calendar Events | |
| List upcoming events | {baseDir}/scripts/familywall.py events list --days 7 |
| Create event | {baseDir}/scripts/familywall.py events create "Title" --start "2026-03-10T14:00:00" --end "2026-03-10T15:00:00" |
| Create all-day event | {baseDir}/scripts/familywall.py events create "Holiday" --start "2026-03-10" --end "2026-03-11" --allday |
| Delete event | {baseDir}/scripts/familywall.py events delete EVENT_ID |
| Shopping Lists / Tasks | |
| List all lists | {baseDir}/scripts/familywall.py lists list |
| View list items | {baseDir}/scripts/familywall.py lists items LIST_ID |
| Add item to list | {baseDir}/scripts/familywall.py lists add LIST_ID "Milk" |
| Add with quantity | {baseDir}/scripts/familywall.py lists add LIST_ID "Eggs" --quantity "12" |
| Check item (purchased) | {baseDir}/scripts/familywall.py lists check ITEM_ID |
| Uncheck item | {baseDir}/scripts/familywall.py lists check ITEM_ID --uncheck |
| Create new list | {baseDir}/scripts/familywall.py lists create "Groceries" --type SHOPPING |
| Create todo list | {baseDir}/scripts/familywall.py lists create "Chores" --type TODO |
| Messaging | |
| List threads | {baseDir}/scripts/familywall.py messages threads |
| Read messages | {baseDir}/scripts/familywall.py messages read THREAD_ID --limit 20 |
| Send message | {baseDir}/scripts/familywall.py messages send THREAD_ID "Hello family!" |
| Media | |
| List media in thread | {baseDir}/scripts/familywall.py media list THREAD_ID |
| Download by URL | {baseDir}/scripts/familywall.py media download --url "PICTURE_URL" -o file.jpg |
| Download by media ID | {baseDir}/scripts/familywall.py media download --media-id MEDIA_ID --thread-id THREAD_ID |
| Download all from thread | {baseDir}/scripts/familywall.py media download-all THREAD_ID --output-dir ./media |
| Meal Planner | |
| View meal plan | {baseDir}/scripts/familywall.py meals list --days 7 |
| Add meal to plan | {baseDir}/scripts/familywall.py meals add "Tacos" --date 2026-05-15 --type DINNER |
| Recipes | |
| Create recipe | {baseDir}/scripts/familywall.py recipes create "Pasta" --ingredients "noodles\nsauce" --instructions "1. Boil\n2. Mix" |
| Import recipe from URL | {baseDir}/scripts/familywall.py recipes from-url "https://example.com/recipe" |
| List recipe categories | {baseDir}/scripts/familywall.py recipes categories |
| Location | |
| Get member locations | {baseDir}/scripts/familywall.py locations |
| Wall / Feed | |
| Get family wall | {baseDir}/scripts/familywall.py wall --limit 20 |
Common Workflows
Check upcoming family events
source ~/.openclaw/.env
{baseDir}/scripts/familywall.py events list --days 7
Add items to shopping list
source ~/.openclaw/.env
# First get the list ID
{baseDir}/scripts/familywall.py lists list
# Then add items
{baseDir}/scripts/familywall.py lists add "tasklist/12345_67890" "Milk"
{baseDir}/scripts/familywall.py lists add "tasklist/12345_67890" "Bread"
{baseDir}/scripts/familywall.py lists add "tasklist/12345_67890" "Eggs" --quantity "12"
Create a calendar event
source ~/.openclaw/.env
{baseDir}/scripts/familywall.py events create "Family Dinner" \
--start "2026-05-15T18:00:00" \
--end "2026-05-15T20:00:00" \
--location "Home" \
--description "Weekly family dinner"
Send a family message
source ~/.openclaw/.env
# Get thread list first
{baseDir}/scripts/familywall.py messages threads
# Send message to a thread
{baseDir}/scripts/familywall.py messages send "imthread/12345_67890" "Dinner is ready!"
Download media from messages
Messages can contain photos, audio, and other media files. The medias array in message responses includes pictureUrl for downloading.
source ~/.openclaw/.env
# List all media in a thread
{baseDir}/scripts/familywall.py media list "imThread/12345"
# Download a specific file by URL (from media list output)
{baseDir}/scripts/familywall.py media download --url "https://api.familywall.com/media/..." -o photo.jpg
# Download by media ID (looks up the URL automatically)
{baseDir}/scripts/familywall.py media download --media-id "media/12345_67890" --thread-id "imThread/12345"
# Download ALL media from a thread into a directory
{baseDir}/scripts/familywall.py media download-all "imThread/12345" --output-dir ./family_media
# Download media from a specific message only
{baseDir}/scripts/familywall.py media download-all "imThread/12345" --message-id "message/12345_67890" --output-dir ./media
Plan meals for the week
source ~/.openclaw/.env
# View current meal plan
{baseDir}/scripts/familywall.py meals list --days 7
# Add meals
{baseDir}/scripts/familywall.py meals add "Spaghetti" --date 2026-05-13 --type DINNER
{baseDir}/scripts/familywall.py meals add "Pancakes" --date 2026-05-14 --type BREAKFAST
{baseDir}/scripts/familywall.py meals add "Grilled Chicken" --date 2026-05-14 --type DINNER
Meal types: BREAKFAST, LUNCH, DINNER, SNACK
Create a recipe
source ~/.openclaw/.env
{baseDir}/scripts/familywall.py recipes create "Banana Smoothie" \
--ingredients "2 bananas\n1 cup milk\n1 tbsp honey\nIce" \
--instructions "1. Add all ingredients to blender\n2. Blend until smooth\n3. Serve immediately" \
--prep-time 5 --serves 2 \
--description "Quick healthy breakfast smoothie"
Import a recipe from a website
source ~/.openclaw/.env
{baseDir}/scripts/familywall.py recipes from-url "https://www.example.com/recipe/chocolate-cake"
Check family member locations
source ~/.openclaw/.env
{baseDir}/scripts/familywall.py locations
API Details
The FamilyWall API is at https://api.familywall.com/api. Authentication is session-based:
- Login via
log2inendpoint with email/password - Receive JSESSIONID cookie and tokenCsrf
- Include both on subsequent requests
Key API Endpoints
| Category | Endpoint | Description |
|---|---|---|
| Auth | log2in |
Login with email/password |
| Account | accgetallfamily |
Get all family data |
| Family | famlistfamily |
List user's families |
| Events | evtlist |
List calendar events |
| Events | evtcreate |
Create event |
| Events | evtdelete |
Delete event |
| Lists | tasklistlist |
List all task/shopping lists |
| Lists | tasklistget |
Get list with items |
| Lists | tasklistadd |
Add item to list |
| Lists | tasklistcheck |
Check/uncheck item |
| Lists | tasklistcreate |
Create new list |
| Messages | imthreadlist |
List IM threads |
| Messages | immessagelist2 |
Get messages from thread (includes media) |
| Messages | imsend |
Send message |
| Media | /media/... |
Download media files (GET with session auth) |
| Location | loclist |
Get member locations |
| Wall | walllist |
Get wall/feed posts |
| Meals | mplistinterval |
List planned meals in range |
| Meals | mpcreate |
Add dish to meal plan |
| Meals | mpmealput |
Create/edit a meal |
| Recipes | mprecipeput |
Create/edit a recipe |
| Recipes | mprecipeputbyurl |
Create recipe from URL |
| Recipes | mpcategorylist |
List recipe categories |
| Recipes | mpadditemtolist |
Add meal ingredients to shopping list |
Request Format
All requests are POST with application/x-www-form-urlencoded body. Parameters use prefix notation:
a00prefix for first call parametersa01call,a02call, etc. for batched callspartnerScope=Familyrequired on all calls
Response Format
Responses are JSON with structure:
{
"a00": {
"r": {"r": <result_data>}, // Success
"ex": {"ex": {"message": "..."}}, // Error
"cn": "endpoint_name"
}
}
Media in Messages
Messages from immessagelist2 include a medias array. Each media object contains:
| Field | Description |
|---|---|
mediaId |
Unique media identifier (e.g. media/12345_67890) |
pictureUrl |
Direct download URL (requires session auth cookie) |
mimeType |
MIME type (image/jpeg, audio/mp4, etc.) |
name |
Original filename |
datasize |
File size in bytes |
resolutionX/Y |
Image dimensions (images only) |
durationMs |
Duration in milliseconds (audio/video only) |
readystate |
Processing state (READY = downloadable) |
To download media, send an authenticated GET request to the pictureUrl with the JSESSIONID cookie and tokencsrf header.
Wall/feed posts may also contain media attachments with the same structure.
Error Handling
Common errors:
- FizClassId 1: Account not found
- FizClassId 4: Account identifier not validated
- FizClassId 10: API key not found
- FizClassId 26: Account blocked
- FizClassId 502: Call not registered / missing parameter
- FizClassId 503: Model does not exist
- FizClassId 510: No family context (need to select family first)
Dependencies
- Python 3.10+ (uses stdlib
urllibifrequestsnot available) - Optional:
requestslibrary for better HTTP handling
Full API Reference
The complete FamilyWall API reference (all endpoints, parameters, return types, and exceptions) is maintained on Confluence:
