---
title: "Ask Luna (Luna Plus)"
method: POST
path: "/api/ask"
tags: ["Ask Luna"]
---

# Ask Luna (Luna Plus)

`POST /api/ask`

## Request

- Base URL: `https://getmyluna.app`
- URL: `https://getmyluna.app/api/ask`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `luna_session`

A question answered from this family's own log, in Luna's non-clinical lane. Requires Luna Plus (`402 payment_required` otherwise) and is subject to daily/monthly limits (`429 usage_limit_reached`). Prefix the question with `remember:` to save a note instead. A `read` token may ask; saving a `remember:` note needs the `write` scope (`403 insufficient_scope` otherwise).

## Request body

- AskRequest
  - `question` string, required: Prefix with `remember:` to save a note instead of asking.

## Response `200`

Success

- AskResponse
  - `answer` string, required
  - `reply` string, nullable: Same as `answer` (legacy key).
  - `model` string, nullable: `null` when a guardrail answered without the model.
  - `context_used` boolean, nullable
  - `guardrail` string, nullable
  - `usage_limit` object, nullable
  - `saved_notes` object[], nullable

## Other responses

- `400`: Bad Request
- `401`: Missing or invalid credentials
- `402`: Luna Plus required
- `403`: One-time Ask Luna AI opt-in needed first (`ai_consent_required`); see `POST /api/consent`
- `429`: Usage limit reached

---

[API](https://skmtc.dev/getmyluna/apis/luna-api.md) · [All operations](https://skmtc.dev/getmyluna/apis/luna-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getmyluna/apis/luna-api/revisions/ef7b359c9648?raw)
