Skip to main content

What is a Persona?

A persona is an AI-powered sports personality that generates unique commentary in a consistent voice and style. Each persona has distinct characteristics:
  • Voice & Tone - How they communicate (analytical, passionate, humorous)
  • Expertise - Sports and leagues they specialize in
  • Perspective - Their unique viewpoint on topics

Persona Profiles

When you fetch a persona, you’ll receive profile information:
{
  "id": "persona-abc123-...",
  "name": "Coach Mike",
  "image_url": "https://storage.unleeshed.ai/personas/coach-mike.jpg",
  "bio": "Former NFL defensive coordinator with 25 years of coaching experience...",
  "expertise": ["NFL", "College Football", "Player Development"],
  "social_links": {
    "twitter": "https://twitter.com/coachmike",
    "instagram": "https://instagram.com/coachmike"
  }
}

Licensing

You can only generate commentary from personas you’ve licensed. Licenses are managed through your partner agreement and visible in the Partner Dashboard.
To license additional personas, contact your Unleeshed account manager or email [email protected].

Using Personas

List Licensed Personas

const response = await fetch('https://api.unleeshed.ai/partner/v1/personas', {
  headers: { 'X-Api-Key': apiKey }
});

const { data: personas } = await response.json();
// Returns only personas you have active licenses for

Get Persona Details

const response = await fetch(`https://api.unleeshed.ai/partner/v1/personas/${personaId}`, {
  headers: { 'X-Api-Key': apiKey }
});

const { data: persona } = await response.json();
// Returns full profile including bio, expertise, social links

Displaying Personas

When showing commentary on your platform, include persona attribution:
Persona display example
Required elements:
  • Persona name
  • Persona image
  • “Powered by Unleeshed” attribution
Optional elements:
  • Bio snippet
  • Expertise tags
  • Social links

Best Practices

Persona profiles rarely change. Cache them for 1 hour to reduce API calls.
const personaCache = new Map();
const CACHE_TTL = 60 * 60 * 1000; // 1 hour

async function getPersona(id) {
  const cached = personaCache.get(id);
  if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
    return cached.data;
  }
  
  const response = await fetch(`/partner/v1/personas/${id}`, ...);
  const { data } = await response.json();
  
  personaCache.set(id, { data, timestamp: Date.now() });
  return data;
}
Use persona expertise to match them with relevant topics:
  • NBA trade rumors → Basketball analysts
  • NFL draft → Former coaches, scouts
  • Soccer transfers → European football experts
When displaying commentary, give users context about who the persona is.