curl --request POST \
--url https://api.mnemom.ai/v1/onboarding/guide \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"checklist_item_id": "<string>",
"user_role": "<string>",
"facts": {},
"completed_steps": [
"<string>"
],
"user_goal": "<string>",
"org_id": "<string>",
"user_id": "<string>"
}
'import requests
url = "https://api.mnemom.ai/v1/onboarding/guide"
payload = {
"checklist_item_id": "<string>",
"user_role": "<string>",
"facts": {},
"completed_steps": ["<string>"],
"user_goal": "<string>",
"org_id": "<string>",
"user_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
checklist_item_id: '<string>',
user_role: '<string>',
facts: {},
completed_steps: ['<string>'],
user_goal: '<string>',
org_id: '<string>',
user_id: '<string>'
})
};
fetch('https://api.mnemom.ai/v1/onboarding/guide', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mnemom.ai/v1/onboarding/guide",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'checklist_item_id' => '<string>',
'user_role' => '<string>',
'facts' => [
],
'completed_steps' => [
'<string>'
],
'user_goal' => '<string>',
'org_id' => '<string>',
'user_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mnemom.ai/v1/onboarding/guide"
payload := strings.NewReader("{\n \"checklist_item_id\": \"<string>\",\n \"user_role\": \"<string>\",\n \"facts\": {},\n \"completed_steps\": [\n \"<string>\"\n ],\n \"user_goal\": \"<string>\",\n \"org_id\": \"<string>\",\n \"user_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mnemom.ai/v1/onboarding/guide")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"checklist_item_id\": \"<string>\",\n \"user_role\": \"<string>\",\n \"facts\": {},\n \"completed_steps\": [\n \"<string>\"\n ],\n \"user_goal\": \"<string>\",\n \"org_id\": \"<string>\",\n \"user_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mnemom.ai/v1/onboarding/guide")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"checklist_item_id\": \"<string>\",\n \"user_role\": \"<string>\",\n \"facts\": {},\n \"completed_steps\": [\n \"<string>\"\n ],\n \"user_goal\": \"<string>\",\n \"org_id\": \"<string>\",\n \"user_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"narration": "<string>",
"session_id": "<string>",
"fallback": true,
"action": {
"type": "navigate",
"params": {}
},
"next_step": {
"item_id": "<string>",
"estimated_time": "<string>"
},
"error": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"narration": "<string>",
"action": {
"type": "navigate",
"params": {}
},
"next_step": {
"item_id": "<string>",
"estimated_time": "<string>"
},
"session_id": "<string>",
"fallback": true,
"error": "<string>"
}Generate guidance for an onboarding checklist step.
MNE-5508: Accepts a checklist item ID and user context; generates LLM-driven guidance narration and a bounded action suggestion.
curl --request POST \
--url https://api.mnemom.ai/v1/onboarding/guide \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"checklist_item_id": "<string>",
"user_role": "<string>",
"facts": {},
"completed_steps": [
"<string>"
],
"user_goal": "<string>",
"org_id": "<string>",
"user_id": "<string>"
}
'import requests
url = "https://api.mnemom.ai/v1/onboarding/guide"
payload = {
"checklist_item_id": "<string>",
"user_role": "<string>",
"facts": {},
"completed_steps": ["<string>"],
"user_goal": "<string>",
"org_id": "<string>",
"user_id": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
checklist_item_id: '<string>',
user_role: '<string>',
facts: {},
completed_steps: ['<string>'],
user_goal: '<string>',
org_id: '<string>',
user_id: '<string>'
})
};
fetch('https://api.mnemom.ai/v1/onboarding/guide', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mnemom.ai/v1/onboarding/guide",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'checklist_item_id' => '<string>',
'user_role' => '<string>',
'facts' => [
],
'completed_steps' => [
'<string>'
],
'user_goal' => '<string>',
'org_id' => '<string>',
'user_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.mnemom.ai/v1/onboarding/guide"
payload := strings.NewReader("{\n \"checklist_item_id\": \"<string>\",\n \"user_role\": \"<string>\",\n \"facts\": {},\n \"completed_steps\": [\n \"<string>\"\n ],\n \"user_goal\": \"<string>\",\n \"org_id\": \"<string>\",\n \"user_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mnemom.ai/v1/onboarding/guide")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"checklist_item_id\": \"<string>\",\n \"user_role\": \"<string>\",\n \"facts\": {},\n \"completed_steps\": [\n \"<string>\"\n ],\n \"user_goal\": \"<string>\",\n \"org_id\": \"<string>\",\n \"user_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mnemom.ai/v1/onboarding/guide")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"checklist_item_id\": \"<string>\",\n \"user_role\": \"<string>\",\n \"facts\": {},\n \"completed_steps\": [\n \"<string>\"\n ],\n \"user_goal\": \"<string>\",\n \"org_id\": \"<string>\",\n \"user_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"narration": "<string>",
"session_id": "<string>",
"fallback": true,
"action": {
"type": "navigate",
"params": {}
},
"next_step": {
"item_id": "<string>",
"estimated_time": "<string>"
},
"error": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"error": {
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}
}{
"narration": "<string>",
"action": {
"type": "navigate",
"params": {}
},
"next_step": {
"item_id": "<string>",
"estimated_time": "<string>"
},
"session_id": "<string>",
"fallback": true,
"error": "<string>"
}Authorizations
Supabase JWT token in Authorization: Bearer header
Body
The ID of the onboarding checklist item (e.g., 'org.create', 'agent.alignment-card').
The user's role (e.g., 'organization_owner', 'developer', 'security_lead', 'compliance_officer').
Optional contextual facts about the user's state (e.g., org_exists: true, first_agent_chosen: false).
Optional array of checklist item IDs the user has already completed.
Optional user-provided goal or context (e.g., 'Build a support bot', 'Set up trusted governance').
Optional organization ID for multi-tenant context.
Optional user ID (can be overridden from auth context).
Response
Guidance generated successfully. Returns narration, suggested action, next step, and session correlation ID.
The LLM-generated guidance narration for this step.
Correlation ID for this guidance session (for telemetry).
True if the response is a fallback (LLM service unavailable or validation error).
The suggested bounded action the user should take.
Show child attributes
Show child attributes
Metadata about the current step and estimated time.
Show child attributes
Show child attributes
Optional error message (only if fallback: true).