Custom Personas
Generate persona suggestions
Generate AI-powered persona suggestions for the North Star pipeline. Returns 2 persona options based on your business context. This endpoint is free - credits are only charged when you create a persona from a suggestion.
Use this endpoint first, then call POST /personas with pipeline_type: 'north_star' and the selected suggestion to create the persona.
POST
/
personas
/
suggestions
cURL
curl -X POST https://app.mavera.io/api/v1/personas/suggestions \
-H "Authorization: Bearer mvra_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"business_description": "B2B SaaS platform for marketing automation",
"target_customers": ["Marketing Managers", "CMOs", "Growth Teams"],
"goals": ["Increase conversions", "Reduce CAC", "Scale campaigns"]
}'import requests
headers = {"Authorization": "Bearer mvra_live_your_key_here"}
# Step 1: Get suggestions
response = requests.post(
"https://app.mavera.io/api/v1/personas/suggestions",
headers=headers,
json={
"business_description": "B2B SaaS platform for marketing automation",
"target_customers": ["Marketing Managers", "CMOs", "Growth Teams"],
"goals": ["Increase conversions", "Reduce CAC", "Scale campaigns"]
}
)
suggestions = response.json()["data"]
print(f"Got {len(suggestions)} persona suggestions")
# Step 2: Select one and create it
selected = suggestions[0]
create_response = requests.post(
"https://app.mavera.io/api/v1/personas",
headers=headers,
json={
"pipeline_type": "north_star",
"suggestion": selected,
"business_description": "B2B SaaS platform for marketing automation",
"target_customers": ["Marketing Managers", "CMOs", "Growth Teams"],
"goals": ["Increase conversions", "Reduce CAC", "Scale campaigns"]
}
)
persona = create_response.json()
print(f"Created persona: {persona['name']} (ID: {persona['id']})")const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
business_description: 'B2B SaaS platform for marketing automation targeting mid-market companies',
target_customers: ['Marketing Managers', 'CMOs', 'Growth Teams'],
goals: ['Increase conversions', 'Reduce CAC', 'Scale campaigns'],
sources: [{name: '<string>', url: '<string>', description: '<string>'}]
})
};
fetch('https://app.mavera.io/api/v1/personas/suggestions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.mavera.io/api/v1/personas/suggestions"
payload := strings.NewReader("{\n \"business_description\": \"B2B SaaS platform for marketing automation targeting mid-market companies\",\n \"target_customers\": [\n \"Marketing Managers\",\n \"CMOs\",\n \"Growth Teams\"\n ],\n \"goals\": [\n \"Increase conversions\",\n \"Reduce CAC\",\n \"Scale campaigns\"\n ],\n \"sources\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\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))
}{
"object": "list",
"data": [
{
"id": "<string>",
"name": "<string>",
"category": "<string>",
"description": "<string>",
"goals": [
"<string>"
],
"pains": [
"<string>"
],
"channels": [
"<string>"
],
"triggers": [
"<string>"
],
"buying_stage": "<string>",
"decision_role": "<string>",
"confidence": 123,
"rationale": "<string>"
}
],
"input_summary": {
"business_description": "<string>",
"target_customers": [
"<string>"
],
"goals": [
"<string>"
],
"sources_count": 123
}
}{
"error": {
"message": "Invalid API key.",
"type": "authentication_error",
"code": "invalid_api_key",
"param": null
}
}{
"error": {
"message": "Invalid API key.",
"type": "authentication_error",
"code": "invalid_api_key",
"param": null
}
}{
"error": {
"message": "Invalid API key.",
"type": "authentication_error",
"code": "invalid_api_key",
"param": null
}
}Authorizations
API key prefixed with mvra_live_. Create keys at Settings > Developer > API Keys.
Body
application/json
A brief description of your business or product.
Required string length:
10 - 500Example:
"B2B SaaS platform for marketing automation targeting mid-market companies"
Types of customers you're targeting.
Required array length:
1 - 10 elementsExample:
[ "Marketing Managers", "CMOs", "Growth Teams" ]
Primary business or marketing goals.
Required array length:
1 - 10 elementsExample:
[ "Increase conversions", "Reduce CAC", "Scale campaigns" ]
Optional sources (URLs or file references) to inform persona generation.
Show child attributes
Show child attributes
⌘I
cURL
curl -X POST https://app.mavera.io/api/v1/personas/suggestions \
-H "Authorization: Bearer mvra_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"business_description": "B2B SaaS platform for marketing automation",
"target_customers": ["Marketing Managers", "CMOs", "Growth Teams"],
"goals": ["Increase conversions", "Reduce CAC", "Scale campaigns"]
}'import requests
headers = {"Authorization": "Bearer mvra_live_your_key_here"}
# Step 1: Get suggestions
response = requests.post(
"https://app.mavera.io/api/v1/personas/suggestions",
headers=headers,
json={
"business_description": "B2B SaaS platform for marketing automation",
"target_customers": ["Marketing Managers", "CMOs", "Growth Teams"],
"goals": ["Increase conversions", "Reduce CAC", "Scale campaigns"]
}
)
suggestions = response.json()["data"]
print(f"Got {len(suggestions)} persona suggestions")
# Step 2: Select one and create it
selected = suggestions[0]
create_response = requests.post(
"https://app.mavera.io/api/v1/personas",
headers=headers,
json={
"pipeline_type": "north_star",
"suggestion": selected,
"business_description": "B2B SaaS platform for marketing automation",
"target_customers": ["Marketing Managers", "CMOs", "Growth Teams"],
"goals": ["Increase conversions", "Reduce CAC", "Scale campaigns"]
}
)
persona = create_response.json()
print(f"Created persona: {persona['name']} (ID: {persona['id']})")const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
business_description: 'B2B SaaS platform for marketing automation targeting mid-market companies',
target_customers: ['Marketing Managers', 'CMOs', 'Growth Teams'],
goals: ['Increase conversions', 'Reduce CAC', 'Scale campaigns'],
sources: [{name: '<string>', url: '<string>', description: '<string>'}]
})
};
fetch('https://app.mavera.io/api/v1/personas/suggestions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.mavera.io/api/v1/personas/suggestions"
payload := strings.NewReader("{\n \"business_description\": \"B2B SaaS platform for marketing automation targeting mid-market companies\",\n \"target_customers\": [\n \"Marketing Managers\",\n \"CMOs\",\n \"Growth Teams\"\n ],\n \"goals\": [\n \"Increase conversions\",\n \"Reduce CAC\",\n \"Scale campaigns\"\n ],\n \"sources\": [\n {\n \"name\": \"<string>\",\n \"url\": \"<string>\",\n \"description\": \"<string>\"\n }\n ]\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))
}{
"object": "list",
"data": [
{
"id": "<string>",
"name": "<string>",
"category": "<string>",
"description": "<string>",
"goals": [
"<string>"
],
"pains": [
"<string>"
],
"channels": [
"<string>"
],
"triggers": [
"<string>"
],
"buying_stage": "<string>",
"decision_role": "<string>",
"confidence": 123,
"rationale": "<string>"
}
],
"input_summary": {
"business_description": "<string>",
"target_customers": [
"<string>"
],
"goals": [
"<string>"
],
"sources_count": 123
}
}{
"error": {
"message": "Invalid API key.",
"type": "authentication_error",
"code": "invalid_api_key",
"param": null
}
}{
"error": {
"message": "Invalid API key.",
"type": "authentication_error",
"code": "invalid_api_key",
"param": null
}
}{
"error": {
"message": "Invalid API key.",
"type": "authentication_error",
"code": "invalid_api_key",
"param": null
}
}