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:
微信扫一扫