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

# Submit a recording for analysis

> Returns 202 with a job handle. Completion is delivered via webhook (see /v1/webhooks) or via polling GET /v1/analyses/:id. In sandbox, use `mock://perfect-pitch` etc. for deterministic results.



## OpenAPI

````yaml https://api.goparlay.io/docs/json post /v1/analyses
openapi: 3.0.3
info:
  title: Parlay API
  description: >-
    Partner-facing API for Parlay pitch scoring, rep intelligence, and coaching.
    See API.md for the full spec.
  version: 0.1.0
servers:
  - url: http://localhost:3000
    description: production
security:
  - ApiKeyAuth: []
tags:
  - name: Health
    description: Service health and platform status
  - name: Analyses
    description: Submit and retrieve pitch scoring analyses
  - name: Orgs
    description: Partner org management
  - name: Reps
    description: Rep management
  - name: Keys
    description: API key lifecycle
  - name: Webhooks
    description: Webhook registration and delivery
  - name: Personas
    description: Rep persona intelligence
  - name: Methodologies
    description: Rep methodology intelligence
  - name: Synthesis
    description: Profile synthesis
  - name: Insights
    description: Org-level insights
  - name: Playbooks
    description: Playbook management + AI drafting
  - name: Prompts
    description: Custom AI prompts
  - name: Scoring
    description: Scoring profile config
  - name: Chat
    description: Scout AI chat
  - name: Dispositions
    description: Call dispositions
  - name: Practice
    description: Practice sessions
  - name: Bulk
    description: Batch and export
  - name: Usage
    description: Usage and billing
  - name: Audit
    description: Audit log
paths:
  /v1/analyses:
    post:
      tags:
        - Analyses
      summary: Submit a recording for analysis
      description: >-
        Returns 202 with a job handle. Completion is delivered via webhook (see
        /v1/webhooks) or via polling GET /v1/analyses/:id. In sandbox, use
        `mock://perfect-pitch` etc. for deterministic results.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                org_id:
                  type: string
                  minLength: 1
                  maxLength: 256
                  pattern: ^[A-Za-z0-9._:-]+$
                  description: >-
                    Opaque identifier from your system. Treat this like a
                    foreign key — pass a stable ID (Salesforce User ID, HubSpot
                    Owner ID, your internal UUID), not a display name. Display
                    names ("alex", "brooke") work but cause real problems:
                    collisions between people with the same first name, history
                    loss on rename, no clean migration if employment changes.
                    Once you set this for a rep or org, treat it as immutable.
                    Charset: [A-Za-z0-9._:-], 1-256 chars.
                rep_id:
                  type: string
                  minLength: 1
                  maxLength: 256
                  pattern: ^[A-Za-z0-9._:-]+$
                  description: >-
                    Opaque identifier from your system. Treat this like a
                    foreign key — pass a stable ID (Salesforce User ID, HubSpot
                    Owner ID, your internal UUID), not a display name. Display
                    names ("alex", "brooke") work but cause real problems:
                    collisions between people with the same first name, history
                    loss on rename, no clean migration if employment changes.
                    Once you set this for a rep or org, treat it as immutable.
                    Charset: [A-Za-z0-9._:-], 1-256 chars.
                recording_url:
                  type: string
                  format: uri
                transcript_url:
                  type: string
                  format: uri
                callback_url:
                  type: string
                  format: uri
                options:
                  type: object
                  properties:
                    persona_id:
                      type: integer
                    methodology_id:
                      type: integer
                    playbook_id:
                      type: string
                      format: uuid
                    scoring_profile_id:
                      type: string
                      format: uuid
                    prompt_overrides:
                      type: array
                      items:
                        type: object
                        properties:
                          title:
                            type: string
                          content:
                            type: string
                        required:
                          - title
                          - content
                        additionalProperties: false
                    language:
                      type: string
                    skip_diarization:
                      type: boolean
                    recording_type:
                      type: string
                    environment:
                      type: string
                    sales_motion:
                      type: string
                  additionalProperties: true
                metadata:
                  type: object
                  additionalProperties: {}
              required:
                - org_id
                - rep_id
              additionalProperties: false
      responses:
        '202':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                  status:
                    type: string
                    enum:
                      - queued
                      - processing
                      - completed
                      - failed
                      - cancelled
                  created_at:
                    type: string
                required:
                  - id
                  - status
                  - created_at
                additionalProperties: false
components:
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key (pk_sandbox_* or pk_live_*)

````