arazzo: 1.0.1 info: title: Deepgram Select a Model and Transcribe summary: Browse available models, read the metadata for a chosen model, then transcribe audio with that model. description: >- A model-aware transcription flow. The workflow lists the speech-to-text and text-to-speech models available on the platform, reads the detailed metadata for a specific model to confirm its languages and version, and then submits a pre-recorded audio URL for transcription using that model's canonical name. Every step spells out its request inline so the flow can be read and executed without opening the underlying OpenAPI description. version: 1.0.0 sourceDescriptions: - name: managementApi url: ../openapi/deepgram-management-openapi.yml type: openapi - name: speechToTextApi url: ../openapi/deepgram-speech-to-text-openapi.yml type: openapi workflows: - workflowId: select-model-and-transcribe summary: List models, inspect one, and transcribe audio using it. description: >- Lists available models, reads metadata for a chosen model id, and transcribes a hosted audio file using the supplied model name. inputs: type: object required: - apiKey - modelId - modelName - audioUrl properties: apiKey: type: string description: Deepgram API key used to authenticate requests. modelId: type: string description: The model identifier to fetch metadata for. modelName: type: string description: The model name to pass to transcription (e.g. nova-3). audioUrl: type: string description: Publicly accessible URL of the audio file to transcribe. steps: - stepId: listModels description: >- List the latest public speech-to-text and text-to-speech models available on the platform. operationId: listModels parameters: - name: Authorization in: header value: Token $inputs.apiKey - name: include_outdated in: query value: false successCriteria: - condition: $statusCode == 200 outputs: sttModels: $response.body#/stt ttsModels: $response.body#/tts - stepId: getModel description: >- Read the detailed metadata for the chosen model to confirm its languages, architecture, and version before transcribing. operationId: getModel parameters: - name: Authorization in: header value: Token $inputs.apiKey - name: model_id in: path value: $inputs.modelId successCriteria: - condition: $statusCode == 200 outputs: canonicalName: $response.body#/canonical_name languages: $response.body#/languages version: $response.body#/version - stepId: transcribeWithModel description: >- Submit the hosted audio file for transcription using the selected model with punctuation and smart formatting enabled. operationId: transcribePreRecordedAudio parameters: - name: Authorization in: header value: Token $inputs.apiKey - name: model in: query value: $inputs.modelName - name: punctuate in: query value: true - name: smart_format in: query value: true requestBody: contentType: application/json payload: url: $inputs.audioUrl successCriteria: - condition: $statusCode == 200 outputs: transcript: $response.body#/results/channels/0/alternatives/0/transcript requestId: $response.body#/metadata/request_id outputs: canonicalName: $steps.getModel.outputs.canonicalName languages: $steps.getModel.outputs.languages transcript: $steps.transcribeWithModel.outputs.transcript