> ## 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 long-form recording for boundary detection + per-segment analysis

> Upload one HTTPS URL of a multi-hour recording. The server detects conversation boundaries (single-shot Gemini), then auto-analyzes each high-confidence segment with the V5 master prompt. Each segment becomes a first-class Analysis row with `parent_session_id` set, queryable via the existing `/v1/analyses` surface.

**Audio storage:** we never re-host the file. The response contains `start_seconds`/`end_seconds` offsets — your UI uses HTTP Range requests on your original URL to play any segment. See `/guides/all-day-sessions` for the full pattern.

**Pricing:** ~$0.30 per hour of audio for detection (Deepgram + Gemini boundary call) plus ~$0.30 per detected segment for V5 analysis.



## OpenAPI

````yaml https://api.goparlay.io/docs/json post /v1/all-day-sessions
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/all-day-sessions:
    post:
      tags:
        - All-day sessions
      summary: >-
        Submit a long-form recording for boundary detection + per-segment
        analysis
      description: >-
        Upload one HTTPS URL of a multi-hour recording. The server detects
        conversation boundaries (single-shot Gemini), then auto-analyzes each
        high-confidence segment with the V5 master prompt. Each segment becomes
        a first-class Analysis row with `parent_session_id` set, queryable via
        the existing `/v1/analyses` surface.


        **Audio storage:** we never re-host the file. The response contains
        `start_seconds`/`end_seconds` offsets — your UI uses HTTP Range requests
        on your original URL to play any segment. See `/guides/all-day-sessions`
        for the full pattern.


        **Pricing:** ~$0.30 per hour of audio for detection (Deepgram + Gemini
        boundary call) plus ~$0.30 per detected segment for V5 analysis.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                recording_url:
                  type: string
                  format: uri
                  description: >-
                    Publicly reachable HTTPS URL of the long-form audio.
                    Pre-signed S3/GCS URLs are perfect. Audio stays on partner
                    storage — we never re-host the file. Mutually exclusive with
                    file_key.
                file_key:
                  type: string
                  minLength: 1
                  maxLength: 512
                  description: >-
                    GCS key returned from POST
                    /v1/admin/partners/:id/uploads/signed-url after a
                    browser-direct PUT. The server resolves this to a 1-hour
                    signed read URL internally. Mutually exclusive with
                    recording_url.
                org_id:
                  type: string
                  minLength: 1
                  maxLength: 256
                  pattern: ^[A-Za-z0-9._:-]+$
                  description: Partner-supplied org id this session belongs to.
                rep_id:
                  type: string
                  minLength: 1
                  maxLength: 256
                  pattern: ^[A-Za-z0-9._:-]+$
                  description: >-
                    Partner-supplied rep id. Required — every segment analysis
                    is scoped to this rep.
                options:
                  type: object
                  properties:
                    auto_analyze:
                      type: boolean
                      description: >-
                        Default true. When true, every detected segment with
                        confidence >= min_confidence is auto-submitted for V5
                        analysis. When false, segments are detected only —
                        partner triggers each analysis manually via POST
                        /v1/all-day-sessions/:id/segments/:seg_id/analyze.
                    min_confidence:
                      type: number
                      minimum: 0
                      maximum: 1
                      description: >-
                        Default 0.8. Segments at or above this confidence
                        auto-analyze. Segments below 0.5 are skipped entirely.
                        Segments in between go to status='needs_review' and the
                        partner can decide whether to analyze them.
                    callback_url:
                      type: string
                      format: uri
                      description: >-
                        Optional ad-hoc webhook URL for THIS session only.
                        Receives all_day_session.detected/completed/failed
                        events. Use registered webhooks (POST /v1/webhooks) for
                        the standard partner-wide subscription.
                    language:
                      type: string
                      description: ISO language code for Deepgram. Auto-detect if omitted.
                    skip_diarization:
                      type: boolean
                      description: >-
                        Default false. Diarization is required for boundary
                        detection — only set to true if you know the audio is
                        single-speaker monologue.
                    playbook_id:
                      type: string
                      format: uuid
                      description: >-
                        Override the active playbook for every segment in this
                        session.
                    prompt_overrides:
                      type: array
                      items:
                        type: object
                        properties:
                          title:
                            type: string
                          content:
                            type: string
                        required:
                          - title
                          - content
                        additionalProperties: false
                      description: >-
                        Inline custom prompts applied to every segment in this
                        session.
                  additionalProperties: true
                metadata:
                  type: object
                  additionalProperties: {}
                  description: >-
                    Free-form key/value bag for partner bookkeeping. Not
                    interpreted by Parlay.
              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
                      - transcribing
                      - detecting
                      - analyzing
                      - completed
                      - failed
                  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_*)

````