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

# Add add-ons

> Adds add-ons to a completed transcript without transcribing it again, or more translation languages and custom fields to the ones it has. The difference in per-minute price is charged for the recording's length. Generated add-ons are then produced, and the transcript.addons.completed webhook fires when they are ready; names found by identify_speakers are applied to speakers you haven't named.



## OpenAPI

````yaml POST /transcripts/{id}/addons
openapi: 3.1.0
info:
  title: Maybloc API
  version: 1.0.0
  description: >-
    Speech-to-text for recorded audio. Upload a recording and get back a
    transcript with every speaker separated, overlapping speech kept, and every
    word timed.
servers:
  - url: https://app.maybloc.com/api/v1
    description: Maybloc v1
security:
  - bearerAuth: []
tags:
  - name: Uploads
    description: Send a recording straight to private storage.
  - name: Transcripts
    description: Transcribe recordings and read the results.
  - name: Account
    description: Your workspace and its balance.
paths:
  /transcripts/{id}/addons:
    post:
      tags:
        - Transcripts
      summary: Add add-ons
      description: >-
        Adds add-ons to a completed transcript without transcribing it again, or
        more translation languages and custom fields to the ones it has. The
        difference in per-minute price is charged for the recording's length.
        Generated add-ons are then produced, and the transcript.addons.completed
        webhook fires when they are ready; names found by identify_speakers are
        applied to speakers you haven't named.
      operationId: addTranscriptAddons
      parameters:
        - $ref: '#/components/parameters/TranscriptId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - addons
              properties:
                addons:
                  type: array
                  items:
                    type: string
                    enum:
                      - redact_pii
                      - smart_format
                      - subtitles
                      - insights
                      - identify_speakers
                      - sentiment
                      - topics
                      - keywords
                      - custom_fields
                      - translation
                  minItems: 1
                translate_to:
                  type: array
                  items:
                    type: string
                  description: More languages, with translation.
                custom_fields:
                  type: array
                  items:
                    $ref: '#/components/schemas/CustomField'
                  description: More questions, with custom_fields.
      responses:
        '200':
          description: The transcript with its new configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transcript'
        '400':
          description: Unknown add-on
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Your balance is too low
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Read-only API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Transcript not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: The transcript isn't completed, or add-ons are still being generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  parameters:
    TranscriptId:
      name: id
      in: path
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    CustomField:
      type: object
      required:
        - key
        - question
      properties:
        key:
          type: string
          pattern: ^[a-z][a-z0-9_]{0,39}$
          description: Names the answer in the result.
        question:
          type: string
          maxLength: 500
        type:
          type: string
          enum:
            - text
            - number
            - boolean
            - list
            - speaker
            - choice
          default: text
          description: >-
            boolean is yes or no; speaker answers with a speaker id; choice
            answers with one of options.
        options:
          type: array
          items:
            type: string
          minItems: 2
          maxItems: 50
          description: With type choice.
    Transcript:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
          const: transcript
        model:
          type: string
        status:
          type: string
          enum:
            - queued
            - processing
            - completed
            - failed
            - canceled
        file_name:
          type: string
        speaker_names:
          type: object
          additionalProperties:
            type: string
        config:
          $ref: '#/components/schemas/RunConfig'
        duration_ms:
          type: integer
        error:
          type:
            - string
            - 'null'
          description: Why it failed or was canceled.
        cost:
          type: object
          properties:
            currency:
              type: string
              const: usd
            estimated_micro_usd:
              type: integer
              description: Held from your balance when the transcript is created.
            charged_micro_usd:
              type:
                - integer
                - 'null'
              description: >-
                Set when it completes. Failed and canceled transcripts are not
                charged.
        created_at:
          type: string
          format: date-time
        completed_at:
          type:
            - string
            - 'null'
          format: date-time
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - request_id
          properties:
            code:
              type: string
              examples:
                - invalid_request
                - insufficient_credit
                - rate_limited
            message:
              type: string
            request_id:
              type: string
              description: Quote this when contacting support.
    RunConfig:
      type: object
      additionalProperties: false
      description: >-
        How the transcript is made. Unknown fields are rejected. The
        playground's Export config writes this object.
      properties:
        model:
          type: string
          enum:
            - calico-1-flash
          default: calico-1-flash
        language:
          type: string
          enum:
            - auto
            - en
            - es
            - fr
            - de
            - it
            - pt
            - nl
            - pl
            - ru
            - uk
            - tr
            - ar
            - fa
            - he
            - hi
            - ur
            - bn
            - ta
            - te
            - mr
            - gu
            - pa
            - kn
            - ml
            - zh
            - ja
            - ko
            - th
            - vi
            - id
            - ms
            - tl
            - sv
            - da
            - 'no'
            - fi
            - cs
            - ro
            - hu
            - el
            - bg
            - hr
            - sk
            - sl
            - sr
          default: auto
          description: >-
            ISO 639-1 code of the spoken language, or auto to detect one
            language for the recording.
        addons:
          type: array
          uniqueItems: true
          items:
            type: string
            enum:
              - redact_pii
              - smart_format
              - subtitles
              - insights
              - identify_speakers
              - sentiment
              - topics
              - keywords
              - custom_fields
              - translation
          description: >-
            Made from the transcript and priced per minute on top of the model:
            redact_pii (PII redaction, +$0.0005/min), smart_format (Smart
            formatting, +$0.0005/min), subtitles (Subtitles, free), insights
            (Insights, +$0.001/min), identify_speakers (Speaker names,
            +$0.0005/min), sentiment (Sentiment, +$0.0005/min), topics (Topics
            and entities, +$0.0005/min), keywords (Key terms, +$0.0005/min),
            custom_fields (Custom fields, +$0.0005/min), translation
            (Translation, +$0.0015/min per language).
        translate_to:
          type: array
          uniqueItems: true
          maxItems: 5
          items:
            type: string
            enum:
              - en
              - es
              - fr
              - de
              - it
              - pt
              - nl
              - pl
              - ru
              - uk
              - tr
              - ar
              - fa
              - he
              - hi
              - ur
              - bn
              - ta
              - te
              - mr
              - gu
              - pa
              - kn
              - ml
              - zh
              - ja
              - ko
              - th
              - vi
              - id
              - ms
              - tl
              - sv
              - da
              - 'no'
              - fi
              - cs
              - ro
              - hu
              - el
              - bg
              - hr
              - sk
              - sl
              - sr
          description: >-
            With translation: 1 to 5 languages to translate into, each charged
            per minute.
        custom_fields:
          type: array
          maxItems: 20
          items:
            $ref: '#/components/schemas/CustomField'
          description: 'With custom_fields: 1 to 20 questions answered from the recording.'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'An API key: Authorization: Bearer mbk_live_...'

````

## Related topics

- [Maybloc add-ons: redaction, summaries, sentiment and translation](https://docs.maybloc.com/guides/add-ons.md)
- [Maybloc API pricing: per-minute rates and add-on prices](https://docs.maybloc.com/guides/pricing.md)
- [What does a Maybloc transcript result contain?](https://docs.maybloc.com/guides/results.md)
- [Maybloc webhooks: events, signatures and retries](https://docs.maybloc.com/guides/webhooks.md)
- [Export a Maybloc transcript as SRT, WebVTT or text](https://docs.maybloc.com/guides/subtitles-and-exports.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.