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

# Style Profiles API

> Discover available style profiles and retrieve the details needed for selection.

Use the Style Profiles API to list available writing modes and retrieve individual profile details before generation.

This keeps integrations aligned with the current WriterzRoom style profile catalog instead of relying on hard-coded options.

## Style Profile Overview

<div style={{ display: 'grid', gridTemplateColumns: 'repeat(4, 1fr)', gap: '12px', margin: '1.5rem 0' }}>
  <div style={{ border: '1px solid rgba(128,128,128,0.20)', borderRadius: '14px', padding: '16px', background: 'rgba(255,255,255,0.04)' }}>
    <div style={{ fontWeight: 800 }}>Tone</div>
    <div style={{ fontSize: '13px', color: 'var(--colors-content-secondary)' }}>Controls how the content sounds.</div>
  </div>

  <div style={{ border: '1px solid rgba(128,128,128,0.20)', borderRadius: '14px', padding: '16px', background: 'rgba(255,255,255,0.04)' }}>
    <div style={{ fontWeight: 800 }}>Voice</div>
    <div style={{ fontSize: '13px', color: 'var(--colors-content-secondary)' }}>Shapes perspective, authority, and personality.</div>
  </div>

  <div style={{ border: '1px solid rgba(128,128,128,0.20)', borderRadius: '14px', padding: '16px', background: 'rgba(255,255,255,0.04)' }}>
    <div style={{ fontWeight: 800 }}>Audience</div>
    <div style={{ fontSize: '13px', color: 'var(--colors-content-secondary)' }}>Aligns output with reader expectations.</div>
  </div>

  <div style={{ border: '1px solid rgba(128,128,128,0.20)', borderRadius: '14px', padding: '16px', background: 'rgba(255,255,255,0.04)' }}>
    <div style={{ fontWeight: 800 }}>Format</div>
    <div style={{ fontSize: '13px', color: 'var(--colors-content-secondary)' }}>Supports platform and writing constraints.</div>
  </div>
</div>

## List Style Profiles

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET https://api.writerzroom.com/v1/style-profiles
Authorization: Bearer YOUR_API_KEY
```

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "style_profiles": [
    {
      "id": "general_blog",
      "name": "General Blog",
      "category": "marketing",
      "tone": "conversational",
      "formality": "moderate"
    },
    {
      "id": "phd_academic",
      "name": "PhD Academic",
      "category": "academic",
      "tone": "formal",
      "formality": "high"
    }
  ]
}
```

## Get Style Profile by Slug

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
GET https://api.writerzroom.com/v1/style-profiles/{slug}
Authorization: Bearer YOUR_API_KEY
```

## Supported Operations

| Operation           | Description                                                    |
| ------------------- | -------------------------------------------------------------- |
| List style profiles | Retrieve available writing modes                               |
| Get style profile   | Retrieve one profile by slug                                   |
| Read metadata       | Access tone, voice, audience, platform, and formatting details |

## Integration Flow

<Steps>
  <Step title="Fetch available style profiles">
    Call `GET /style-profiles` to retrieve the current catalog.
  </Step>

  <Step title="Display compatible options">
    Use profile metadata to show users relevant writing modes.
  </Step>

  <Step title="Store the selected slug">
    Save the selected `style_profile_id` for the generation request.
  </Step>

  <Step title="Submit generation">
    Send the selected style profile with the template and structured input.
  </Step>
</Steps>

## Best Practice

Use the API catalog as the source of truth for style profile selection. This keeps your integration current as WriterzRoom adds, updates, or refines style profiles.

<AccordionGroup>
  <Accordion title="Should style profiles be hardcoded?">
    Avoid hardcoding style profile lists in production integrations. Fetch the current catalog from the API when building selection interfaces.
  </Accordion>

  <Accordion title="What does a style profile control?">
    A style profile controls tone, voice, depth, pacing, formality, audience behavior, and platform-specific writing expectations.
  </Accordion>

  <Accordion title="How does this relate to templates?">
    Templates define what the system creates. Style profiles define how the content should sound and read.
  </Accordion>
</AccordionGroup>

<Tip>
  Pair `/style-profiles` with `/templates` so users can select both structure and writing behavior before submitting a generation request.
</Tip>

<CardGroup cols={2}>
  <Card title="Templates API" icon="layout-template" href="/api/templates-api">
    Retrieve available templates for generation setup.
  </Card>

  <Card title="Generate Content" icon="sparkles" href="/api/generate-content">
    Submit a request using the selected style profile.
  </Card>
</CardGroup>
