> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unleeshed.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Personas

> AI personalities that generate unique commentary

## 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:

```json theme={null}
{
  "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.

<Note>
  To license additional personas, contact your Unleeshed account manager or email [partners@unleeshed.ai](mailto:partners@unleeshed.ai).
</Note>

## Using Personas

### List Licensed Personas

```javascript theme={null}
const response = await fetch('https://prod.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

```javascript theme={null}
const response = await fetch(`https://prod.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:

<Frame>
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/unleeshed/images/persona-display-example.png" alt="Persona display example" />
</Frame>

**Required elements:**

* Persona name
* Persona image
* "Powered by Unleeshed" attribution

**Optional elements:**

* Bio snippet
* Expertise tags
* Social links

## Best Practices

<AccordionGroup>
  <Accordion title="Cache persona data">
    Persona profiles rarely change. Cache them for 1 hour to reduce API calls.

    ```javascript theme={null}
    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;
    }
    ```
  </Accordion>

  <Accordion title="Match personas to content">
    Use persona expertise to match them with relevant topics:

    * NBA trade rumors → Basketball analysts
    * NFL draft → Former coaches, scouts
    * Soccer transfers → European football experts
  </Accordion>

  <Accordion title="Provide context">
    When displaying commentary, give users context about who the persona is.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="List Personas API" icon="users" href="/api-reference/personas/list">
    API reference for listing personas.
  </Card>

  <Card title="Display Guide" icon="desktop" href="/guides/display-commentaries">
    Best practices for displaying persona content.
  </Card>
</CardGroup>
