Reference
Generated from the same definitions the API uses, so it is always in step with the server. The machine-readable version is GET /v1/openapi.json (no token needed).
All family paths start with /v1/families/{fid}, where {fid} is a family id from GET /v1/me. Other {placeholders} are ids from earlier reads.
Account
| Method | Path | Scope | About |
|---|---|---|---|
GET | /v1/me | read | Your account and the families you are in |
GET | /v1/families/{fid}/briefing | read | Daily overview; ?date=YYYY-MM-DD |
Reads
These need a read or write token. Some take query parameters, e.g. events takes from and to (ISO 8601).
| Resource | Path |
|---|---|
members | GET /v1/families/{fid}/members |
events | GET /v1/families/{fid}/events |
special_days | GET /v1/families/{fid}/special-days |
lists | GET /v1/families/{fid}/lists |
list_items | GET /v1/families/{fid}/lists/{id}/items |
list_categories | GET /v1/families/{fid}/lists/{id}/categories |
reminders | GET /v1/families/{fid}/reminders |
routines | GET /v1/families/{fid}/routines |
recipes | GET /v1/families/{fid}/recipes |
meals | GET /v1/families/{fid}/meals |
timetables | GET /v1/families/{fid}/timetables |
places | GET /v1/families/{fid}/places |
contacts | GET /v1/families/{fid}/contacts |
messages | GET /v1/families/{fid}/messages |
feed | GET /v1/families/{fid}/feed |
albums | GET /v1/families/{fid}/albums |
folders | GET /v1/families/{fid}/folders |
folder_files | GET /v1/families/{fid}/folders/{id}/files |
budget_accounts | GET /v1/families/{fid}/budget/accounts |
budget_categories | GET /v1/families/{fid}/budget/categories |
budget_transactions | GET /v1/families/{fid}/budget/transactions |
budget_summary | GET /v1/families/{fid}/budget/summary |
pickups | GET /v1/families/{fid}/week/pickups |
custody | GET /v1/families/{fid}/week/custody |
school | GET /v1/families/{fid}/week/school |
chores | GET /v1/families/{fid}/week/chores |
health | GET /v1/families/{fid}/week/health |
pantry | GET /v1/families/{fid}/week/pantry |
money | GET /v1/families/{fid}/week/money |
trips | GET /v1/families/{fid}/week/trips |
kits | GET /v1/families/{fid}/week/kits |
wishes | GET /v1/families/{fid}/week/wishes |
week_board | GET /v1/families/{fid}/week/board |
Changes
These need a write token, and your role must allow the change. Bodies are JSON.
event
POST /v1/families/{fid}/events · Create a calendar event (event.create)
| Field | Type | Required |
|---|---|---|
title | string | yes |
titleEn | string | null | |
note | string | null | |
place | string | null | |
startsAt | string (date-time) | yes |
endsAt | string (date-time) | yes |
allDay | boolean | |
color | string | |
attendeeIds | string[] | |
driverIds | string[] | |
beforehand | string[] | |
repeat | object | null | |
reminderMinutesBefore | integer | null | |
clientId | string |
PATCH /v1/families/{fid}/events/{id} · Change an event; use note for notes (event.update)
| Field | Type | Required |
|---|---|---|
title | string | |
titleEn | string | null | |
note | string | null | |
place | string | null | |
startsAt | string (date-time) | |
endsAt | string (date-time) | |
allDay | boolean | |
color | string | |
attendeeIds | string[] | |
driverIds | string[] | |
beforehand | string[] | |
repeat | object | null | |
reminderMinutesBefore | integer | null | |
expectedVersion | integer |
DELETE /v1/families/{fid}/events/{id} · Delete an event (event.delete)
special
POST /v1/families/{fid}/special-days · Add a birthday or special day (special_day.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
type | "birthday" | "anniversary" | "celebration" | |
title | string | yes |
date | string (date) | yes |
repeatYearly | boolean | |
reminderDaysBefore | integer | null | |
attendeeIds | string[] | |
place | string | null | |
note | string | null | |
linkedListId | string | null |
PATCH /v1/families/{fid}/special-days/{id} · Change a special day (special_day.update)
| Field | Type | Required |
|---|---|---|
type | "birthday" | "anniversary" | "celebration" | |
title | string | |
date | string (date) | |
repeatYearly | boolean | |
reminderDaysBefore | integer | null | |
attendeeIds | string[] | |
place | string | null | |
note | string | null | |
linkedListId | string | null | |
expectedVersion | integer |
DELETE /v1/families/{fid}/special-days/{id} · Delete a special day (special_day.delete)
list
POST /v1/families/{fid}/lists · Create a list (list.create)
| Field | Type | Required |
|---|---|---|
title | string | yes |
type | "shopping" | "todo" | "packing" | "other" | |
scope | "family" | "personal" | |
pinned | boolean |
PATCH /v1/families/{fid}/lists/{id} · Rename or pin a list (list.update)
| Field | Type | Required |
|---|---|---|
title | string | |
pinned | boolean |
DELETE /v1/families/{fid}/lists/{id} · Delete a list and its items (list.delete)
POST /v1/families/{fid}/lists/{id}/duplicate · Copy a list (list.duplicate)
DELETE /v1/families/{fid}/lists/{id}/completed · Remove ticked-off items (list.clear_done)
POST /v1/families/{fid}/lists/{id}/categories · Add a list section (list_category.create)
| Field | Type | Required |
|---|---|---|
emoji | string | yes |
name | string | yes |
PATCH /v1/families/{fid}/lists/{id}/categories/{cid} · Rename a list section (list_category.update)
| Field | Type | Required |
|---|---|---|
emoji | string | |
name | string | |
hidden | boolean |
DELETE /v1/families/{fid}/lists/{id}/categories/{cid} · Delete a list section (list_category.delete)
item
POST /v1/families/{fid}/lists/{id}/items · Add an item to a list (item.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
text | string | yes |
quantity | string | null | |
category | string | null |
POST /v1/families/{fid}/lists/{id}/items/bulk · Add many items (item.bulk_create)
| Field | Type | Required |
|---|---|---|
done | boolean | yes |
PATCH /v1/families/{fid}/lists/{id}/items/{itemId} · Tick off, reopen or edit an item (item.update)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer | |
text | string | |
quantity | string | null | |
category | string | null | |
shopperMemberId | string | null | |
inTrolley | boolean | |
done | boolean |
DELETE /v1/families/{fid}/lists/{id}/items/{itemId} · Remove an item (item.delete)
reminder
POST /v1/families/{fid}/reminders · Schedule a push reminder (reminder.create)
| Field | Type | Required |
|---|---|---|
title | string | yes |
note | string | null | |
dueAt | string (date-time) | yes |
recipientIds | string[] |
PATCH /v1/families/{fid}/reminders/{id} · Move, edit or cancel a reminder (reminder.update)
| Field | Type | Required |
|---|---|---|
title | string | |
note | string | null | |
dueAt | string (date-time) | |
recipientIds | string[] | |
status | "scheduled" | "cancelled" |
DELETE /v1/families/{fid}/reminders/{id} · Delete a reminder (reminder.delete)
routine
POST /v1/families/{fid}/routines · Create a routine (routine.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
title | string | yes |
assignedTo | string | yes |
repeat | object | yes |
tasks | string[] | |
reminderTime | string | null | |
slot | "morning" | "evening" | "any" | |
rotationMemberIds | string[] |
PATCH /v1/families/{fid}/routines/{id} · Change a routine (routine.update)
| Field | Type | Required |
|---|---|---|
title | string | |
assignedTo | string | |
repeat | object | |
tasks | string[] | |
reminderTime | string | null | |
slot | "morning" | "evening" | "any" | |
rotationMemberIds | string[] | |
expectedVersion | integer |
POST /v1/families/{fid}/routines/{id}/complete · Mark a routine done (routine.complete)
| Field | Type | Required |
|---|---|---|
memberId | string | |
date | string | |
expectedVersion | integer |
DELETE /v1/families/{fid}/routines/{id} · Delete a routine (routine.delete)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer |
recipe
POST /v1/families/{fid}/recipes · Add a recipe (recipe.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
title | string | yes |
ingredients | object[] | |
instructions | string |
POST /v1/families/{fid}/recipes/import · Import a recipe from a web page (recipe.import)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
url | string (uri) | yes |
PATCH /v1/families/{fid}/recipes/{id} · Change a recipe (recipe.update)
| Field | Type | Required |
|---|---|---|
title | string | |
ingredients | object[] | |
instructions | string | |
expectedVersion | integer |
DELETE /v1/families/{fid}/recipes/{id} · Delete a recipe (recipe.delete)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer |
meal
POST /v1/families/{fid}/meals · Plan a meal (meal.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
date | string | yes |
type | "breakfast" | "lunch" | "snack" | "dinner" | yes |
title | string | yes |
recipeId | string | null | |
servings | integer | null | |
note | string | null | |
leftover | boolean | |
allergyNote | string | null |
PATCH /v1/families/{fid}/meals/{id} · Change a planned meal (meal.update)
| Field | Type | Required |
|---|---|---|
date | string | |
type | "breakfast" | "lunch" | "snack" | "dinner" | |
title | string | |
recipeId | string | null | |
servings | integer | null | |
note | string | null | |
leftover | boolean | |
allergyNote | string | null | |
expectedVersion | integer |
DELETE /v1/families/{fid}/meals/{id} · Remove a planned meal (meal.delete)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer |
POST /v1/families/{fid}/meals/{id}/shopping-list · Add a meal's ingredients to a list (meal.to_shopping_list)
| Field | Type | Required |
|---|---|---|
listId | string | yes |
timetable
PUT /v1/families/{fid}/timetables/{memberId} · Set a member's school timetable (timetable.set)
| Field | Type | Required |
|---|---|---|
validFrom | string | null | |
validUntil | string | null | |
exceptions | string[] | |
blocks | object[] | yes |
place
POST /v1/families/{fid}/places · Save a place (place.create)
| Field | Type | Required |
|---|---|---|
name | string | yes |
type | "sport" | "school" | "home" | "music" | "park" | "work" | "shopping" | "travel" | "doctor" | "hospital" | "police" | "restaurant" | "university" | "bank" | "market" | yes |
address | string | yes |
latitude | number | null | |
longitude | number | null |
PATCH /v1/families/{fid}/places/{id} · Change a place (place.update)
| Field | Type | Required |
|---|---|---|
name | string | |
type | "sport" | "school" | "home" | "music" | "park" | "work" | "shopping" | "travel" | "doctor" | "hospital" | "police" | "restaurant" | "university" | "bank" | "market" | |
address | string | |
latitude | number | null | |
longitude | number | null |
DELETE /v1/families/{fid}/places/{id} · Delete a place (place.delete)
contact
POST /v1/families/{fid}/contacts · Add a contact (contact.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
firstName | string | yes |
lastName | string | null | |
mobile | string | null | |
email | string | null | |
note | string | null |
PATCH /v1/families/{fid}/contacts/{id} · Change a contact (contact.update)
| Field | Type | Required |
|---|---|---|
firstName | string | |
lastName | string | null | |
mobile | string | null | |
email | string | null | |
note | string | null | |
expectedVersion | integer |
DELETE /v1/families/{fid}/contacts/{id} · Delete a contact (contact.delete)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer |
message
POST /v1/families/{fid}/messages · Post a text message in the family chat (message.send)
| Field | Type | Required |
|---|---|---|
kind | "text" | "image" | "file" | "audio" | "video" | |
text | string | |
attachmentName | string | null | |
attachmentData | string | null | |
attachmentId | string | |
clientId | string |
PATCH /v1/families/{fid}/messages/{id} · Edit your message (message.update)
| Field | Type | Required |
|---|---|---|
text | string | yes |
expectedVersion | integer |
DELETE /v1/families/{fid}/messages/{id} · Delete a message (message.delete)
feed
POST /v1/families/{fid}/feed · Post to the family feed (feed.post)
| Field | Type | Required |
|---|---|---|
text | string | null | |
gifUrl | string (uri) | |
placeId | string | |
photoData | string | |
type | "photo" | "gif" | yes |
album
POST /v1/families/{fid}/albums · Create a photo album (album.create)
| Field | Type | Required |
|---|---|---|
title | string | yes |
scope | "family" | "member" |
PATCH /v1/families/{fid}/albums/{id} · Rename an album (album.update)
| Field | Type | Required |
|---|---|---|
title | string | yes |
DELETE /v1/families/{fid}/albums/{id} · Delete an empty album (album.delete)
photo
PATCH /v1/families/{fid}/photos/{id} · Edit photo caption and favourite (photo.update)
| Field | Type | Required |
|---|---|---|
caption | string | null | yes |
favourite | boolean | yes |
DELETE /v1/families/{fid}/photos/{id} · Delete a photo (photo.delete)
folder
POST /v1/families/{fid}/folders · Create a document folder (folder.create)
| Field | Type | Required |
|---|---|---|
name | string | yes |
scope | "shared" | "private" |
PATCH /v1/families/{fid}/folders/{id} · Rename a folder (folder.update)
| Field | Type | Required |
|---|---|---|
name | string | yes |
DELETE /v1/families/{fid}/folders/{id} · Delete an empty folder (folder.delete)
file
PATCH /v1/families/{fid}/files/{id} · Rename a file (file.update)
| Field | Type | Required |
|---|---|---|
name | string | yes |
DELETE /v1/families/{fid}/files/{id} · Delete a file (file.delete)
budget
POST /v1/families/{fid}/budget/accounts · Add a budget account (budget_account.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
name | string | yes |
PATCH /v1/families/{fid}/budget/accounts/{id} · Rename a budget account (budget_account.update)
| Field | Type | Required |
|---|---|---|
name | string | |
expectedVersion | integer |
DELETE /v1/families/{fid}/budget/accounts/{id} · Delete a budget account (budget_account.delete)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer |
POST /v1/families/{fid}/budget/categories · Add a budget category (budget_category.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
name | string | yes |
limitNok | number | null |
PATCH /v1/families/{fid}/budget/categories/{id} · Change a budget category (budget_category.update)
| Field | Type | Required |
|---|---|---|
name | string | |
limitNok | number | null | |
expectedVersion | integer |
DELETE /v1/families/{fid}/budget/categories/{id} · Delete a budget category (budget_category.delete)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer |
transaction
POST /v1/families/{fid}/budget/transactions · Record an expense or income (transaction.create)
| Field | Type | Required |
|---|---|---|
clientId | string (uuid) | |
accountId | string | yes |
categoryId | string | null | |
memberId | string | null | |
amountNok | number | yes |
note | string | null | |
at | string (date-time) |
PATCH /v1/families/{fid}/budget/transactions/{id} · Change a transaction (transaction.update)
| Field | Type | Required |
|---|---|---|
accountId | string | |
categoryId | string | null | |
memberId | string | null | |
amountNok | number | |
note | string | null | |
at | string (date-time) | |
expectedVersion | integer |
DELETE /v1/families/{fid}/budget/transactions/{id} · Delete a transaction (transaction.delete)
| Field | Type | Required |
|---|---|---|
expectedVersion | integer |
pickup
POST /v1/families/{fid}/week/pickups · Plan a pickup (pickup.create)
| Field | Type | Required |
|---|---|---|
date | string | yes |
place | "skole" | "sfo" | "trening" | "other" | yes |
placeName | string | yes |
childMemberId | string | yes |
collectorMemberId | string | yes |
time | string | yes |
deadline | string | null | |
note | string |
POST /v1/families/{fid}/week/pickups/{id}/done · Mark a pickup done (pickup.done)
DELETE /v1/families/{fid}/week/pickups/{id} · Delete a pickup (pickup.delete)
school
POST /v1/families/{fid}/week/school · Add a school or kindergarten note (school.create)
| Field | Type | Required |
|---|---|---|
childMemberId | string | yes |
place | "skole" | "barnehage" | "sfo" | yes |
days | object[] | yes |
closings | object[] | |
dugnad | object[] |
DELETE /v1/families/{fid}/week/school/{id} · Delete a school note (school.delete)
chore
POST /v1/families/{fid}/week/chores · Add a chore with a rotation (chore.create)
| Field | Type | Required |
|---|---|---|
title | string | yes |
ageMin | integer | |
allowanceNok | integer | null | |
rotation | string[] | yes |
weekday | integer |
POST /v1/families/{fid}/week/chores/{id}/done · Mark a chore done (chore.done)
| Field | Type | Required |
|---|---|---|
memberId | string |
DELETE /v1/families/{fid}/week/chores/{id} · Delete a chore (chore.delete)
health
POST /v1/families/{fid}/week/health · Set a member's health card (health.set)
| Field | Type | Required |
|---|---|---|
memberId | string | yes |
allergies | string[] | yes |
meds | object[] | yes |
nextVaccination | object | null | |
bring | string | |
emergency | object[] | yes |
DELETE /v1/families/{fid}/week/health/{id} · Delete a health card (health.delete)
pantry
POST /v1/families/{fid}/week/pantry · Add something to the pantry (pantry.add)
| Field | Type | Required |
|---|---|---|
text | string | yes |
DELETE /v1/families/{fid}/week/pantry/{id} · Remove a pantry entry (pantry.delete)
money
POST /v1/families/{fid}/week/money · Add pocket money, a turn or a fee (money.create)
| Field | Type | Required |
|---|---|---|
kind | "turn" | "pocket" | "fee" | yes |
title | string | yes |
amountNok | integer | yes |
memberId | string | yes |
due | string | null |
POST /v1/families/{fid}/week/money/{id}/paid · Mark money as paid (money.paid)
DELETE /v1/families/{fid}/week/money/{id} · Delete a money entry (money.delete)
trip
POST /v1/families/{fid}/week/trips · Plan a trip (trip.create)
| Field | Type | Required |
|---|---|---|
title | string | yes |
leaveBy | string | yes |
place | string | yes |
legs | object[] | yes |
documents | string[] |
DELETE /v1/families/{fid}/week/trips/{id} · Delete a trip (trip.delete)
kit
POST /v1/families/{fid}/week/kits · Save an activity kit list (kit.create)
| Field | Type | Required |
|---|---|---|
activity | string | yes |
items | string[] | yes |
DELETE /v1/families/{fid}/week/kits/{id} · Delete a kit (kit.delete)
wish
POST /v1/families/{fid}/week/wishes · Add a wish for a birthday (wish.create)
| Field | Type | Required |
|---|---|---|
specialDayId | string | yes |
title | string | yes |
POST /v1/families/{fid}/week/wishes/{id}/bought · Mark a wish bought (wish.bought)
DELETE /v1/families/{fid}/week/wishes/{id} · Delete a wish (wish.delete)