Julia

Developers

Julia is an AI-powered family meal-planning agent — it plans the week, builds the shopping list, and helps a household cook. Julia supports MCP(the Model Context Protocol), so an AI assistant can work with a family’s food context directly. There is also a plain REST Web API for apps like kitchen displays and shopping-list syncs. Both read a small, scoped slice of a family’s data using a bearer token the family creates and can revoke at any time.

Getting a key

A family creates keys in Settings → Connected apps, on the Julia Family plan. Each key is scoped to exactly what it may read, shown once at creation, and can be revoked whenever they like. Send it as a bearer token:

Authorization: Bearer jt_live_…
Scopesmenu:read — the planned menu · ingredients:read — ingredients for planned meals · shopping:read — the current shopping list. A key carries only the scopes the family granted it.
Rate limitUp to 500 requests per key per day, shared across the Web API and MCP.

Web API

Two read-only JSON endpoints for apps that just need the data. Both take the bearer header above.

What’s for dinner

GET https://www.hellojulia.app/api/share/menu?date_from=2026-07-15&date_to=2026-07-22&meal_type=dinner
Scopemenu:read
Querydate_from, date_to (YYYY-MM-DD, optional), meal_type (breakfast · lunch · dinner, optional).
DefaultsToday through the next 7 days. A single request may span at most 31 days.
{
  "meals": [
    {
      "date": "2026-07-15",
      "meal_type": "dinner",
      "courses": [
        { "course": "main", "name": "Sheet-pan chicken" },
        { "course": "side", "name": "Roasted broccoli" }
      ]
    }
  ]
}

Ingredients for planned meals

GET https://www.hellojulia.app/api/share/ingredients?date_from=2026-07-15&date_to=2026-07-22
Scopeingredients:read
QuerySame as the menu endpoint.
NotesIngredients are aggregated into a shopping-style list. Quantities may be nullwhen a recipe didn’t specify one, and the same ingredient in different units stays on separate lines.
{
  "ingredients": [
    { "name": "Chicken thighs", "quantity": 2, "unit": "lb", "category": "meat" },
    { "name": "Broccoli", "quantity": 2, "unit": "head", "category": "produce" }
  ]
}

Errors

Errors return a JSON body { "error": "…" } with a status code:

401Invalid or expired token.
403The token lacks the required scope.
429The token has reached its daily request limit.
400Invalid request parameters.

MCP server

Point an MCP-capable assistant at the endpoint below and give it a key as the bearer token. The server speaks stateless Streamable HTTP — a fresh connection per request, no sessions to manage.

https://www.hellojulia.app/api/mcp
TransportStreamable HTTP (stateless).
AuthAuthorization: Bearer jt_live_…
Rate limitThe same 500 requests per key per day as the Web API.

Three read-only tools are available. A tool call made without the matching scope returns a tool error explaining which scope is missing.

get_menu

Scopemenu:read
Input{ date_from?, date_to?, meal_type? } — defaults to today through the next 7 days.
ReturnsThe planned menu: one entry per course — { date, meal_type, course, name }.

get_planned_ingredients

Scopeingredients:read
Input{ date_from?, date_to?, meal_type? }.
ReturnsIngredients for the planned meals, aggregated into a shopping-style list — { name, quantity, unit, category, position }. Quantities may be null.

get_shopping_list

Scopeshopping:read
InputNone — there is one current list per family.
ReturnsThe current saved shopping list, including hand-added items and which items are checked off — { dates, generated_at, items: [{ name, quantity, unit, category, checked, source, position }] }, where source is generated or manual.

Need a key? Open Julia and go to Settings → Connected apps.

Back to Julia