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

# Extract Transcripts

> Extract slide content and layout information using AI. This is an async operation.

Returns a structured description of each slide's text content and layout. You can process all slides or specify particular slide IDs.

Extract structured content and layout information from slides. This is an **async operation**.

## Path Parameters

| Parameter         | Type   | Description            |
| ----------------- | ------ | ---------------------- |
| `presentation_id` | string | ID of the presentation |

***

## Request Body

| Parameter   | Type  | Default      | Description                                                                         |
| ----------- | ----- | ------------ | ----------------------------------------------------------------------------------- |
| `slide_ids` | array | (all slides) | Specific slide IDs to extract transcripts for. If omitted, extracts for all slides. |

***

## Response

```json theme={null}
{
  "generation_id": "abc123-def456-..."
}
```

Poll `GET /generations/{generation_id}` until status is `completed`.

***

## Example

### All Slides

```bash theme={null}
curl -X POST "https://slides-api.getalai.com/api/v1/presentations/xyz789-.../transcripts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
```

### Specific Slides

```bash theme={null}
curl -X POST "https://slides-api.getalai.com/api/v1/presentations/xyz789-.../transcripts" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "slide_ids": ["slide1-...", "slide2-..."]
  }'
```

***

## Status Response

```json theme={null}
{
  "generation_id": "abc123-...",
  "generation_type": "transcript_generation",
  "status": "completed",
  "presentation_id": "xyz789-...",
  "transcripts": [
    {
      "slide_id": "slide1-...",
      "slide_order": 0,
      "title": "Q4 Sales Report",
      "content": "Quarterly Performance Overview\n\nRevenue: $1.2M\nGrowth: +25% YoY",
      "layout": "TITLE_SLIDE"
    },
    {
      "slide_id": "slide2-...",
      "slide_order": 1,
      "title": "Key Metrics",
      "content": "• New customers: 150\n• Retention rate: 94%\n• NPS score: 72",
      "layout": "CONTENT_SLIDE"
    }
  ]
}
```

<Note>
  Transcript generation uses credits. The cost is based on the number of slides processed.
</Note>


## OpenAPI

````yaml POST /api/v1/presentations/{presentation_id}/transcripts
openapi: 3.1.0
info:
  title: Alai API
  description: API endpoints for programmatic access to Alai presentation generation
  version: 1.0.0
servers:
  - url: https://slides-api.getalai.com
security:
  - BearerAuth: []
paths:
  /api/v1/presentations/{presentation_id}/transcripts:
    post:
      tags:
        - External API
      summary: Generate slide transcripts
      description: >-
        Extract slide content and layout information using AI. This is an async
        operation.


        Returns a structured description of each slide's text content and
        layout. You can process all slides or specify particular slide IDs.
      operationId: >-
        generate_transcripts_api_v1_presentations__presentation_id__transcripts_post
      parameters:
        - name: presentation_id
          in: path
          required: true
          schema:
            type: string
            title: Presentation Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateTranscriptInput'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExternalApiGenerationResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    GenerateTranscriptInput:
      properties:
        slide_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Slide Ids
          description: >-
            Specific slides to generate transcripts for. If omitted, generates
            for all slides.
      type: object
      title: GenerateTranscriptInput
    ExternalApiGenerationResponse:
      properties:
        generation_id:
          type: string
          title: Generation Id
          description: >-
            Unique identifier to poll for generation status via GET
            /generations/{generation_id}
      type: object
      required:
        - generation_id
      title: ExternalApiGenerationResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Your Alai API key. Get one from your account settings at app.getalai.com

````