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

# Quickstart

> Submit your first analysis in 5 minutes — REST or MCP, your pick.

Pick your path.

<Tabs>
  <Tab title="REST">
    ## 1. Get a sandbox key

    Email your point of contact at Parlay or use the [signup form](https://console.goparlay.io/signup). You'll receive a key prefixed `pk_sandbox_…`.

    ## 2. Submit a mock analysis

    Mock fixture URLs are deterministic test data. Free, instant, no real audio required.

    <CodeGroup>
      ```bash cURL theme={null}
      curl -X POST https://api.goparlay.io/v1/analyses \
        -H "Authorization: Bearer pk_sandbox_YOUR_KEY" \
        -H "Content-Type: application/json" \
        -H "Idempotency-Key: $(uuidgen)" \
        -d '{
          "org_id": "demo-acme",
          "rep_id": "alex-smith",
          "recording_url": "mock://perfect-pitch"
        }'
      ```

      ```javascript Node.js theme={null}
      const res = await fetch("https://api.goparlay.io/v1/analyses", {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.PARLAY_API_KEY}`,
          "Content-Type": "application/json",
          "Idempotency-Key": crypto.randomUUID(),
        },
        body: JSON.stringify({
          org_id: "demo-acme",
          rep_id: "alex-smith",
          recording_url: "mock://perfect-pitch",
        }),
      });
      const job = await res.json();
      console.log(job.id); // → "f2782fc7-5355-48bf-a314-d6bf90bc4907"
      ```

      ```python Python theme={null}
      import os, uuid, requests

      res = requests.post(
          "https://api.goparlay.io/v1/analyses",
          headers={
              "Authorization": f"Bearer {os.environ['PARLAY_API_KEY']}",
              "Idempotency-Key": str(uuid.uuid4()),
          },
          json={
              "org_id": "demo-acme",
              "rep_id": "alex-smith",
              "recording_url": "mock://perfect-pitch",
          },
      )
      job = res.json()
      print(job["id"])
      ```
    </CodeGroup>

    You get back a 202 with `{ id, status: "queued", created_at }`.

    ## 3. Poll until complete

    ```bash theme={null}
    curl https://api.goparlay.io/v1/analyses/<id> \
      -H "Authorization: Bearer pk_sandbox_YOUR_KEY"
    ```

    `status` will be `queued` → `processing` → `completed`. Mock fixtures usually complete in under a second; real audio takes 30–90 seconds. The full analysis JSON sits in the `analysis` field once `status === "completed"`.

    <Tip>
      Production integrations should use webhooks instead of polling. See the [webhooks guide](/guides/webhooks).
    </Tip>

    ## 4. Read the result

    A completed analysis returns this canonical shape under the `analysis` field. Six pillars (clarity, influence, objection, discovery, delivery, close), each 0–100, plus a computed `overall_score` and KPIs flat at the top:

    ```json theme={null}
    {
      "id": "ec1851ba-4037-41bf-9ad5-d64391c11ab4",
      "status": "completed",
      "duration_seconds": 312,
      "transcript": { "utterances": [ /* ... */ ], "word_count": 22 },
      "analysis": {
        "prospect_name": "Casey Morgan",
        "recording_title": "Closed Casey",
        "double_down": "The pacing on the value prop was perfect — keep doing exactly that.",
        "ai_summary": "Strong opening, clean discovery, textbook objection handling, confident close.",
        "ai_summary_v5": "Strong opening, clean discovery, textbook objection handling, confident close.",

        // KPIs (flat, no wrapper)
        "questions_asked": 11,
        "filler_word_count": 3,
        "words_per_minute": 142,

        // Six-pillar scores (flat, _score suffix) + computed overall
        "overall_score": 95,
        "clarity_score": 94,
        "influence_score": 96,
        "objection_score": 92,
        "discovery_score": 95,
        "delivery_score": 97,
        "close_score": 96,

        // Per-pillar feedback (nested under _v5)
        "feedback_v5": {
          "clarity":   { "positive": "...", "negative": "..." },
          "influence": { "positive": "...", "negative": "..." },
          "objection": { "positive": "...", "negative": "..." },
          "discovery": { "positive": "...", "negative": "..." },
          "delivery":  { "positive": "...", "negative": "..." },
          "close":     { "positive": "...", "negative": "..." }
        },

        // Action plan (3 named sections, also under _v5)
        "action_plan_v5": {
          "double_down_implementation": "...",
          "general_communication_improvement": "...",
          "quoted_principle": "..."
        },

        "organization_prompt_summary": null,
        "organization_feedback": null,
        "master_prompt_id": null,
        "master_prompt_version": "v5",
        "persona_snapshot": null,
        "synthesis_snapshot": null
      }
    }
    ```

    <Tip>
      The shape is identical for `mock://*` fixtures and real audio. Build your decoder once against `mock://perfect-pitch`, ship with confidence.
    </Tip>

    ## 5. Real audio

    Replace `mock://perfect-pitch` with a publicly reachable HTTPS URL to an MP3, WAV, M4A, or FLAC file. Pre-signed S3 / GCS URLs are fine. The file must not require additional auth headers.
  </Tab>

  <Tab title="MCP">
    ## 1. Get a sandbox key

    Email your point of contact at Parlay or use the [signup form](https://console.goparlay.io/signup).

    ## 2. Add Parlay to your AI client

    <CodeGroup>
      ```json Claude Desktop theme={null}
      {
        "mcpServers": {
          "parlay": {
            "command": "npx",
            "args": ["-y", "@goparlay/mcp-server@latest"],
            "env": {
              "PARLAY_API_KEY": "pk_sandbox_YOUR_KEY"
            }
          }
        }
      }
      ```

      ```json Cursor theme={null}
      {
        "mcpServers": {
          "parlay": {
            "command": "npx",
            "args": ["-y", "@goparlay/mcp-server@latest"],
            "env": { "PARLAY_API_KEY": "pk_sandbox_YOUR_KEY" }
          }
        }
      }
      ```

      ```bash Claude Code (CLI) theme={null}
      claude mcp add parlay -e PARLAY_API_KEY=pk_sandbox_YOUR_KEY -- npx -y @goparlay/mcp-server@latest
      ```
    </CodeGroup>

    Restart your client. Parlay's tools appear in the tool picker.

    See the full [installation guide](/mcp/installation) for Windsurf, Continue, Zed, Claude Code, and custom SDK setups.

    ## 3. Try it

    Paste this into a fresh conversation:

    ```
    Use parlay tools — submit mock://perfect-pitch for analysis under org "demo-acme" rep "alex-smith". Wait for the result and tell me Alex's overall score.
    ```

    The model will call `analyze_recording`, poll until complete, and report back the score. \~10 seconds end to end for mock fixtures.

    ## 4. Go further

    ```
    Now ask Scout what Alex's biggest improvement area is on that call.
    ```

    ```
    Generate a coaching synthesis for Alex using that analysis.
    ```

    ```
    What sales personas does Parlay recognize?
    ```
  </Tab>
</Tabs>

## You're integrated. What's next?

<CardGroup cols={2}>
  <Card title="Use real audio" icon="microphone" href="/guides/first-analysis">
    Submit your own recordings, configure org defaults
  </Card>

  <Card title="Set up webhooks" icon="bell" href="/guides/webhooks">
    Stop polling — get notified when analyses complete
  </Card>

  <Card title="Generate playbooks with AI" icon="wand-magic-sparkles" href="/guides/ai-playbook-drafting">
    Turn call notes into structured playbooks
  </Card>

  <Card title="Rep intelligence" icon="user-magnifying-glass" href="/guides/rep-intelligence">
    Persona, methodology, and synthesis at scale
  </Card>
</CardGroup>
