Developers

Mavo API

Read and write household collections with a family-scoped API key. New to Mavo? Start with the product guide.

Authentication

Every request uses the x-api-key header. Each key belongs to one family, so thefamilySlug in the path must match that key.

x-api-key: $MAVO_API_KEY

API or connected assistant?

Mavo supports direct API calls and connected assistants. Pick the surface based on where the work is running.

Use the REST API for apps, scripts, and automations that can make normal HTTP requests with an API key. Use MCP when you are connecting Mavo to an assistant, so Mavo can appear inside that assistant as a set of available household actions.

Endpoint guide

Collections

Use these when your app needs to see or manage the family’s collection list: meals, chores, routines, and any custom collections. These endpoints are about the containers themselves.

Entries

Use these when your app already knows which collection it is working with and needs the rows inside it. Each entry has a `title` display label plus `data` for the fields defined by that collection.

Calendar

Use these for calendar events, linked external calendars, and calendar share links.

Household operations

Use these for household people, notifications, webhook destinations, and other household settings that an integration may need to manage directly.

Context and lookups

Use these when an integration needs Mavo’s household context search, weather lookup, or public web lookup without running a full agent conversation.

Collections

Create and manage household collections.

4 endpoints
get/api/v1/families/{familySlug}/trackersList collectionsReturns every collection in the family, built-in and custom.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/trackers \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "trackers": [
    {
      "key": "meals",
      "name": "Meals",
      "description": "What’s for dinner.",
      "fields": []
    }
  ]
}
post/api/v1/families/{familySlug}/trackersCreate a collectionCreates a custom collection with the given fields.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • category"calendar"optional
  • color"sage" | "blue" | "clay" | "plum" | "gold"optional
  • descriptionstringoptional
  • fieldsobject[]optionaldefault []
    • keystringrequired
    • labelstringrequired
    • optionsstring[]optional
    • type"date" | "number" | "person" | "select" | "text" | "textarea"optionaldefault "text"
  • namestringrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/trackers \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"name":"string"}'

Example response

{
  "tracker": {
    "key": "chores",
    "name": "Chores",
    "fields": []
  }
}
patch/api/v1/families/{familySlug}/trackers/{trackerKey}Update a collectionUpdates a custom collection. Send only the fields you want to change.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".

Request body

  • color"sage" | "blue" | "clay" | "plum" | "gold"optional
  • descriptionstring | nulloptional
  • fieldsobject[]optional
    • keystringrequired
    • labelstringrequired
    • optionsstring[]optional
    • type"date" | "number" | "person" | "select" | "text" | "textarea"optionaldefault "text"
  • namestringoptional

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/trackers/meals \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"color":"sage","description":"string","fields":[{"key":"string","label":"string"}],"name":"string"}'

Example response

{
  "tracker": {
    "key": "chores",
    "name": "Weekly chores"
  }
}
delete/api/v1/families/{familySlug}/trackers/{trackerKey}Delete a collectionDeletes a custom collection and its entries. Built-in collections cannot be deleted.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/trackers/meals \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "tracker": {
    "key": "chores",
    "name": "Weekly chores"
  }
}

Entries

Add and edit entries inside a collection.

7 endpoints
get/api/v1/families/{familySlug}/trackers/{trackerKey}/entriesList entriesReturns the entries in a collection.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/trackers/meals/entries \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "entries": [
    {
      "id": "ent_123",
      "title": "Taco night",
      "data": {
        "day": "2026-06-09",
        "status": "Planned"
      }
    }
  ]
}
post/api/v1/families/{familySlug}/trackers/{trackerKey}/entriesCreate an entryAdds an entry to a collection. `title` is the entry’s display label; collection-specific fields go in `data`.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".

Request body

  • dataobjectoptionaldefault {}

    Collection-specific fields for this entry. Only fields defined by the collection are saved.

  • titlestringrequired

    Human-readable entry label. This is stored separately from collection-specific data fields and is returned in entry responses.

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/trackers/meals/entries \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"title":"string"}'

Example response

{
  "entry": {
    "id": "ent_123",
    "title": "Taco night",
    "data": {
      "day": "2026-06-09",
      "status": "Planned"
    }
  }
}
patch/api/v1/families/{familySlug}/trackers/{trackerKey}/entries/{entryId}Update an entryUpdates an entry. Send only the fields you want to change. `title` renames the entry; collection-specific fields go in `data`.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".
  • entryIdIdentifier of the entry within the collection.

Request body

  • dataobjectoptional

    Collection-specific fields for this entry. Only fields defined by the collection are saved.

  • status"active" | "archived" | "done"optional
  • titlestringoptional

    Human-readable entry label. This is stored separately from collection-specific data fields and is returned in entry responses.

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/trackers/meals/entries/ent_123 \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"data":{},"status":"active","title":"string"}'

Example response

{
  "entry": {
    "id": "ent_123",
    "title": "Taco night",
    "status": "done"
  }
}
delete/api/v1/families/{familySlug}/trackers/{trackerKey}/entries/{entryId}Delete an entryRemoves an entry from a collection by id. No request body is needed; the deleted entry is returned for confirmation.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".
  • entryIdIdentifier of the entry within the collection.

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/trackers/meals/entries/ent_123 \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "entry": {
    "id": "ent_123",
    "title": "Taco night"
  }
}
post/api/v1/families/{familySlug}/trackers/{trackerKey}/entries/batchCreate entriesAdds multiple entries to a collection in one request.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".

Request body

  • itemsobject[]required
    • dataobjectoptionaldefault {}
    • titlestringrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/trackers/meals/entries/batch \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"items":[{"title":"string"}]}'

Example response

{
  "count": 2,
  "entries": [
    {
      "id": "ent_123",
      "title": "Taco night"
    }
  ],
  "ok": true
}
patch/api/v1/families/{familySlug}/trackers/{trackerKey}/entries/batchUpdate entriesUpdates multiple entries in a collection in one request.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".

Request body

  • itemsobject[]required
    • dataobjectoptional
    • entryIdstringrequired
    • status"active" | "done" | "archived"optional
    • titlestringoptional

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/trackers/meals/entries/batch \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"items":[{"entryId":"string"}]}'

Example response

{
  "count": 2,
  "entries": [
    {
      "id": "ent_123",
      "title": "Taco night",
      "status": "done"
    }
  ],
  "ok": true
}
delete/api/v1/families/{familySlug}/trackers/{trackerKey}/entries/batchDelete entriesDeletes multiple entries from a collection in one request. Pass entry ids only; titles are returned in the response for confirmation.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • trackerKeyKey of the collection, e.g. "meals".

Request body

  • entryIdsstring[]required

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/trackers/meals/entries/batch \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"entryIds":["string"]}'

Example response

{
  "count": 2,
  "entries": [
    {
      "id": "ent_123",
      "title": "Taco night"
    }
  ],
  "ok": true
}

Calendar

Manage family calendar events, external feeds, and share links.

13 endpoints
get/api/v1/families/{familySlug}/calendar/eventsList calendar eventsReturns family calendar events. Supports optional `query`, `status`, and `limit` query parameters.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/calendar/events \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "events": [
    {
      "id": "ent_123",
      "title": "Soccer practice",
      "data": {
        "date": "2026-07-01",
        "time": "17:00"
      }
    }
  ],
  "ok": true
}
post/api/v1/families/{familySlug}/calendar/eventsCreate calendar eventAdds an event to the family calendar.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • assigneestringoptional
  • datestringoptional

    ISO date when known.

  • notestringoptional
  • ownerPersonIdstringoptional
  • timestringoptional
  • titlestringrequired
  • wherestringoptional

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/calendar/events \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"title":"string"}'

Example response

{
  "entryId": "ent_123",
  "ok": true,
  "title": "Soccer practice"
}
patch/api/v1/families/{familySlug}/calendar/events/{eventId}Update calendar eventUpdates one family calendar event.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • eventIdIdentifier of the calendar event.

Request body

  • assigneestringoptional
  • datestringoptional

    ISO date when known.

  • notestringoptional
  • ownerPersonIdstringoptional
  • timestringoptional
  • titlestringoptional
  • wherestringoptional
  • dataobjectoptional
  • status"active" | "done" | "archived"optional

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/calendar/events/eventId \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"assignee":"string","date":"string","note":"string","ownerPersonId":"string","time":"string","title":"string","where":"string","data":{},"status":"active"}'

Example response

{
  "event": {
    "id": "ent_123",
    "title": "Soccer practice",
    "data": {
      "date": "2026-07-01"
    }
  },
  "ok": true
}
delete/api/v1/families/{familySlug}/calendar/events/{eventId}Delete calendar eventDeletes one family calendar event.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • eventIdIdentifier of the calendar event.

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/calendar/events/eventId \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "event": {
    "id": "ent_123",
    "title": "Soccer practice"
  },
  "ok": true
}
get/api/v1/families/{familySlug}/calendar/externalList external calendarsReturns linked external calendar feeds.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/calendar/external \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "feeds": [],
  "ok": true
}
post/api/v1/families/{familySlug}/calendar/externalCreate external calendarLinks an external ICS calendar feed and syncs its events.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • colorstringoptional
  • hintstringoptional
  • namestringrequired
  • urlstringrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/calendar/external \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"name":"string","url":"string"}'

Example response

{
  "eventCount": 12,
  "ok": true
}
post/api/v1/families/{familySlug}/calendar/external/probeProbe external calendarChecks whether an external ICS calendar URL can be read.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • urlstringrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/calendar/external/probe \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"url":"string"}'

Example response

{
  "ok": true
}
patch/api/v1/families/{familySlug}/calendar/external/{sourceId}Update external calendarUpdates notes about a linked external calendar feed.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • sourceIdIdentifier of the external calendar feed.

Request body

  • hintstringoptional

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/calendar/external/sourceId \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"hint":"string"}'

Example response

{
  "ok": true
}
delete/api/v1/families/{familySlug}/calendar/external/{sourceId}Delete external calendarRemoves a linked external calendar feed and its synced calendar.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • sourceIdIdentifier of the external calendar feed.

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/calendar/external/sourceId \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true
}
post/api/v1/families/{familySlug}/calendar/external/{sourceId}/refreshRefresh external calendarRequests a refresh for a linked external calendar feed.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • sourceIdIdentifier of the external calendar feed.

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/calendar/external/sourceId/refresh \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true
}
get/api/v1/families/{familySlug}/calendar/sharesList calendar sharesReturns household calendar share links.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/calendar/shares \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "shares": []
}
post/api/v1/families/{familySlug}/calendar/sharesCreate calendar shareCreates a calendar share link. The plaintext share token is returned once.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • categoriesstring[]optionaldefault []
  • namestringrequired
  • personIdsstring[]optionaldefault []
  • sourceIdsstring[]optionaldefault []

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/calendar/shares \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"name":"string"}'

Example response

{
  "ok": true,
  "share": {
    "id": "share_123",
    "name": "Soccer calendar"
  },
  "token": "share-token"
}
delete/api/v1/families/{familySlug}/calendar/shares/{shareId}Revoke calendar shareRevokes a calendar share link.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • shareIdIdentifier of the calendar share link.

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/calendar/shares/shareId \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true
}

People

Manage household people.

4 endpoints
get/api/v1/families/{familySlug}/peopleList peopleReturns household people.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/people \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "people": [
    {
      "id": "person_123",
      "name": "Maya",
      "role": "child"
    }
  ]
}
post/api/v1/families/{familySlug}/peopleCreate personAdds a household person profile.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • emailstringoptional
  • kind"adult" | "child" | "helper" | "caregiver" | "other"optionaldefault "adult"
  • namestringrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/people \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"name":"string"}'

Example response

{
  "ok": true,
  "person": {
    "id": "person_123",
    "displayName": "Maya"
  }
}
patch/api/v1/families/{familySlug}/people/{personId}Update personUpdates a household person profile.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • personIdIdentifier of the household person.

Request body

  • emailstring | nulloptional
  • kind"adult" | "child" | "helper" | "caregiver" | "other"optional
  • namestringoptional

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/people/personId \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"email":"string","kind":"adult","name":"string"}'

Example response

{
  "ok": true,
  "person": {
    "id": "person_123",
    "displayName": "Maya"
  }
}
delete/api/v1/families/{familySlug}/people/{personId}Delete personRemoves a household person profile from active household views.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • personIdIdentifier of the household person.

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/people/personId \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "personId": "person_123"
}

Notifications

Send notifications and manage notification routines.

9 endpoints
get/api/v1/families/{familySlug}/notificationsList recent notificationsReturns recent household notifications. Supports optional `sinceMinutes` and `triggerId` query parameters.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/notifications \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "notifications": [
    {
      "title": "Practice moved",
      "body": "Field changed."
    }
  ]
}
post/api/v1/families/{familySlug}/notificationsSend notificationSends a household notification.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • bodystringoptionaldefault ""
  • channels"in_app" | "email" | "push"[]optional
  • titlestringrequired
  • triggerIdstringoptional

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/notifications \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"title":"string"}'

Example response

{
  "delivered": 1,
  "ok": true,
  "suppressed": 0
}
post/api/v1/families/{familySlug}/checksSchedule event checkSchedules a background check ahead of a calendar event.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • channels"in_app" | "email" | "push"[]optional
  • eventIdstringrequired
  • leadHoursnumberrequired
  • taskstringrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/checks \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"eventId":"string","leadHours":0,"task":"string"}'

Example response

{
  "eventId": "ent_123",
  "ok": true,
  "triggerId": "trg_123"
}
get/api/v1/families/{familySlug}/notification-preferencesGet notification preferencesReturns household notification preferences.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/notification-preferences \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "preferences": {}
}
post/api/v1/families/{familySlug}/notification-preferencesSet notification preferenceUpdates one household notification preference.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • channel"email" | "push"required
  • eventKind"reminder" | "coverage_alert" | "follow_up_nudge" | "digest" | "intake_update"required
  • isEnabledbooleanrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/notification-preferences \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"channel":"email","eventKind":"reminder","isEnabled":true}'

Example response

{
  "ok": true,
  "preferences": {}
}
get/api/v1/families/{familySlug}/notification-routinesList notification routinesReturns household notification routines.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/notification-routines \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "routines": []
}
post/api/v1/families/{familySlug}/notification-routinesCreate notification routineCreates a household notification routine.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • channels"in_app" | "email" | "push"[]optional
  • cronstringoptional
  • intent"briefing" | "reminder" | "digest"optional
  • isEnabledbooleanoptional
  • mode"plain" | "mavo"optional
  • timezonestringoptional

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/notification-routines \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"channels":["in_app"],"cron":"string","intent":"briefing","isEnabled":true,"mode":"plain","timezone":"string"}'

Example response

{
  "ok": true,
  "routine": {
    "id": "trg_123"
  }
}
patch/api/v1/families/{familySlug}/notification-routines/{triggerId}Update notification routineUpdates a household notification routine.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • triggerIdIdentifier of the notification routine.

Request body

  • channels"in_app" | "email" | "push"[]optional
  • cronstringoptional
  • intent"briefing" | "reminder" | "digest"optional
  • isEnabledbooleanoptional
  • mode"plain" | "mavo"optional
  • timezonestringoptional

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/notification-routines/triggerId \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"channels":["in_app"],"cron":"string","intent":"briefing","isEnabled":true,"mode":"plain","timezone":"string"}'

Example response

{
  "ok": true,
  "routine": {
    "id": "trg_123"
  }
}
delete/api/v1/families/{familySlug}/notification-routines/{triggerId}Delete notification routineDeletes a household notification routine.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • triggerIdIdentifier of the notification routine.

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/notification-routines/triggerId \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true
}

Webhooks

Manage outbound webhook destinations.

5 endpoints
get/api/v1/families/{familySlug}/webhook-destinationsList webhook destinationsReturns outbound webhook destinations, delivery history, available events, and usage.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/webhook-destinations \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "destinations": [],
  "events": [
    "tracker.entry.created"
  ],
  "ok": true
}
post/api/v1/families/{familySlug}/webhook-destinationsCreate webhook destinationCreates an outbound webhook destination. The signing secret is returned once.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Request body

  • enabledbooleanoptional
  • eventTypes"collection.created" | "collection.updated" | "collection.deleted" | "tracker.entry.created" | "tracker.entry.updated" | "tracker.entry.deleted" | "calendar.event.created" | "calendar.event.updated" | "calendar.event.deleted" | "calendar.check.created" | "external_calendar.created" | "external_calendar.updated" | "external_calendar.refresh_requested" | "external_calendar.deleted" | "calendar_share.created" | "calendar_share.deleted" | "person.created" | "person.updated" | "person.deleted" | "notification.sent" | "notification_preference.updated" | "notification_routine.created" | "notification_routine.updated" | "notification_routine.deleted" | "webhook_destination.created" | "webhook_destination.updated" | "webhook_destination.deleted"[]required
  • namestringrequired
  • urlstringrequired

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/webhook-destinations \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"eventTypes":["collection.created"],"name":"string","url":"string"}'

Example response

{
  "destination": {
    "id": "whd_123",
    "name": "Zapier",
    "url": "https://example.com/webhook"
  },
  "ok": true,
  "signingSecret": "whsec_..."
}
patch/api/v1/families/{familySlug}/webhook-destinations/{destinationId}Update webhook destinationUpdates an outbound webhook destination or rotates its signing secret.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • destinationIdIdentifier of the webhook destination.

Request body

  • enabledbooleanoptional
  • eventTypes"collection.created" | "collection.updated" | "collection.deleted" | "tracker.entry.created" | "tracker.entry.updated" | "tracker.entry.deleted" | "calendar.event.created" | "calendar.event.updated" | "calendar.event.deleted" | "calendar.check.created" | "external_calendar.created" | "external_calendar.updated" | "external_calendar.refresh_requested" | "external_calendar.deleted" | "calendar_share.created" | "calendar_share.deleted" | "person.created" | "person.updated" | "person.deleted" | "notification.sent" | "notification_preference.updated" | "notification_routine.created" | "notification_routine.updated" | "notification_routine.deleted" | "webhook_destination.created" | "webhook_destination.updated" | "webhook_destination.deleted"[]optional
  • namestringoptional
  • urlstringoptional
  • rotateSecretbooleanoptional

Example request

curl -X PATCH https://app.mavolife.com/api/v1/families/your-family/webhook-destinations/destinationId \
  -H "x-api-key: $MAVO_API_KEY" \
  -H "content-type: application/json" \
  -d '{"enabled":true,"eventTypes":["collection.created"],"name":"string","url":"string","rotateSecret":true}'

Example response

{
  "destination": {
    "id": "whd_123",
    "name": "Zapier"
  },
  "ok": true
}
delete/api/v1/families/{familySlug}/webhook-destinations/{destinationId}Delete webhook destinationDeletes an outbound webhook destination.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • destinationIdIdentifier of the webhook destination.

Example request

curl -X DELETE https://app.mavolife.com/api/v1/families/your-family/webhook-destinations/destinationId \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true
}
post/api/v1/families/{familySlug}/webhook-destinations/{destinationId}/testTest webhook destinationSends a test delivery to a webhook destination.Details

Path parameters

  • familySlugSlug of the family (household) to act on.
  • destinationIdIdentifier of the webhook destination.

Example request

curl -X POST https://app.mavolife.com/api/v1/families/your-family/webhook-destinations/destinationId/test \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true
}

Context

Search household context.

1 endpoints
get/api/v1/families/{familySlug}/contextSearch household contextSearches household collections, members, and upcoming calendar items. Use the optional `query` query parameter to narrow results.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/context \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "query": "soccer",
  "results": []
}

External info

Look up weather and public web content.

3 endpoints
get/api/v1/families/{familySlug}/weatherCheck weatherLooks up weather for a location. Send `location`, and optionally `date` and `time`, as query parameters.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/weather \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true
}
get/api/v1/families/{familySlug}/web/searchSearch webSearches the public web. Send `query`, and optionally `numResults`, as query parameters.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/web/search \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "results": [
    {
      "title": "Example",
      "url": "https://example.com"
    }
  ]
}
get/api/v1/families/{familySlug}/web/pageRead web pageReads the main text of a public web page. Send `url` as a query parameter.Details

Path parameters

  • familySlugSlug of the family (household) to act on.

Example request

curl -X GET https://app.mavolife.com/api/v1/families/your-family/web/page \
  -H "x-api-key: $MAVO_API_KEY"

Example response

{
  "ok": true,
  "text": "Readable page content...",
  "url": "https://example.com"
}