Demodesk Externally recorded demos API

The Externally recorded demos API from Demodesk — 3 operation(s) for externally recorded demos.

Operations 3

POST /api/v1/externally_recorded_demos Create Externally recorded demo #
POST /api/v1/externally_recorded_demos/create_from_mobile_recording_upload Create demo from mobile recording upload #
POST /api/v1/externally_recorded_demos/create_from_recording_upload Create demo from recording upload #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/demodesk-externally-recorded-demos-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

demodesk-externally-recorded-demos-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: V1 Externally recorded demos API
  version: v1
servers:
- url: https://{defaultHost}
  variables:
    defaultHost:
      default: demodesk.com
tags:
- name: Externally recorded demos
paths:
  /api/v1/externally_recorded_demos:
    post:
      summary: Create Externally recorded demo
      tags:
      - Externally recorded demos
      security:
      - api-key: []
      parameters: []
      responses:
        '401':
          description: unauthenticated
        '200':
          description: demo created
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                demo:
                  type: object
                  description: Meeting details
                  properties:
                    start_date:
                      type: string
                      format: datetime
                      description: Meeting start time
                    account:
                      type: string
                      description: Meeting name
                    calendar_owner_id:
                      type: string
                      description: User id of the calendar event owner.
                    booker_id:
                      type: string
                      description: User id of the calendar event booker
                  required:
                  - account
                host:
                  type: object
                  description: Identification of the meeting host
                  properties:
                    email:
                      type: string
                      description: Email address of the meeting host
                  required:
                  - email
                guests:
                  type: array
                  description: List of meeting guests/participants
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        description: Name of the guest
                    required:
                    - name
                recording:
                  type: object
                  description: Recording details
                  properties:
                    url:
                      type: string
                      description: URL of the recording file (must be publicly accessible)
                    speaker_count:
                      type: integer
                      description: The number of speakers in the recording
                    content_type:
                      type: string
                      description: The content type of the recording, e.g., "audio/mpeg".
                  required:
                  - url
                  - speaker_count
                  - content_type
              required:
              - demo
              - host
              - guests
              - recording
        required: true
      operationId: postApiV1ExternallyRecordedDemos
      x-operation-id-source: derived
  /api/v1/externally_recorded_demos/create_from_mobile_recording_upload:
    post:
      summary: Create demo from mobile recording upload
      tags:
      - Externally recorded demos
      description: 'Uploads a recording from mobile.

        If `demo_id` is provided, the recording is attached to that existing demo.

        If `demo_id` is omitted, a new demo is created from the provided metadata.'
      security:
      - api-key: []
      parameters: []
      responses:
        '401':
          description: unauthenticated
        '200':
          description: demo created
        '400':
          description: invalid payload
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
                required:
                - errors
        '404':
          description: demo not found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: ActiveStorage blob signed id of the uploaded video file
                  example: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBc0EiLCJleHAiOm51bGwsInB1ciI6ImJsb2JfaWQifX0=--abcdef123
                name:
                  type: string
                  description: Original file name used as fallback demo title when demo.account is missing
                  minLength: 1
                  example: weekly-product-review.mp4
                current_index:
                  type: integer
                  description: Non-negative upload index used to stagger transcription jobs by minutes
                  minimum: 0
                  example: 0
                demo_id:
                  type: integer
                  description: Existing Demodesk meeting id to attach recording to instead of creating a new meeting
                  minimum: 1
                  example: 12345
                demo:
                  type: object
                  description: Optional demo metadata used only when demo_id is not provided. created_via is set server-side to mobile_upload.
                  properties:
                    account:
                      type: string
                      description: Meeting title
                      minLength: 1
                      example: Mobile imported meeting
                    start_date:
                      type: string
                      format: datetime
                      description: Meeting start date/time in ISO8601 format
                      example: '2025-01-20T12:00:00Z'
                    duration:
                      type: integer
                      description: Meeting duration in seconds
                      minimum: 1
                      example: 900
                participants:
                  type: array
                  description: List of participant metadata. required only when demo_id is not provided.
                  items:
                    type: object
                    properties:
                      full_name:
                        type:
                        - string
                        - 'null'
                        description: Participant full name
                        example: Ada Lovelace
                      email:
                        type:
                        - string
                        - 'null'
                        description: Participant email address
                        example: ada@example.com
                location:
                  type: object
                  description: Location/link string. Backend stores location kind as other.
                  properties:
                    value:
                      type:
                      - string
                      - 'null'
                      description: Meeting location/link string
                      example: https://meet.google.com/abc-defg-hij
              required:
              - file
              - name
              example:
                file: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBc0EiLCJleHAiOm51bGwsInB1ciI6ImJsb2JfaWQifX0=--abcdef123
                name: weekly-product-review.mp4
                current_index: 0
                demo_id: 12345
                demo:
                  account: Mobile imported meeting
                  start_date: '2025-01-20T12:00:00Z'
                  duration: 900
                participants:
                - full_name: Ada Lovelace
                  email: ada@example.com
                - full_name: Grace Hopper
                  email: grace@example.com
                location:
                  value: https://meet.google.com/abc-defg-hij
        required: true
      operationId: postApiV1ExternallyRecordedDemosCreateFromMobileRecordingUpload
      x-operation-id-source: derived
  /api/v1/externally_recorded_demos/create_from_recording_upload:
    post:
      summary: Create demo from recording upload
      tags:
      - Externally recorded demos
      description: 'Uploads a recording.

        If `demo_id` is provided, the recording is attached to that existing demo.

        If `demo_id` is omitted, a new manual-upload demo is created.'
      security:
      - api-key: []
      parameters: []
      responses:
        '401':
          description: unauthenticated
        '200':
          description: demo created or recording attached
        '404':
          description: demo not found
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: ActiveStorage blob signed id of the uploaded video file
                  example: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBc0EiLCJleHAiOm51bGwsInB1ciI6ImJsb2JfaWQifX0=--abcdef123
                name:
                  type: string
                  description: Original file name used as demo title when creating a new meeting
                  minLength: 1
                  example: weekly-product-review.mp4
                current_index:
                  type: integer
                  description: Non-negative upload index used to stagger transcription jobs by minutes
                  minimum: 0
                  example: 0
                demo_id:
                  type: integer
                  description: Existing Demodesk meeting id to attach recording to instead of creating a new meeting
                  minimum: 1
                  example: 12345
              required:
              - file
              - name
              example:
                file: eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBc0EiLCJleHAiOm51bGwsInB1ciI6ImJsb2JfaWQifX0=--abcdef123
                name: weekly-product-review.mp4
                current_index: 0
                demo_id: 12345
        required: true
      operationId: postApiV1ExternallyRecordedDemosCreateFromRecordingUpload
      x-operation-id-source: derived
components:
  securitySchemes:
    api-key:
      type: apiKey
      name: api-key
      in: header