Voibe API

Voibe API as documented publicly: 9 operations. Contract generated from the documentation by API Evangelist (2026-11-10); not the provider's own document.

GitHub OpenAPI

Operations 9

POST /history/upload Hourly upload of usage data and metadata #
GET /mcp GET /mcp #
PUT /mcp PUT /mcp #
GET /transcripts GET /transcripts lists jobs up to 200 per page. #
POST /transcripts POST /transcripts returns a signed upload URL. #
GET /transcripts/{jobId} Fetch status, transcript, summary #
GET /v1/transcripts GET /v1/transcripts #
POST /v1/transcripts POST /v1/transcripts #
GET /v1/transcripts/{jobId} GET /v1/transcripts/{job_id} #

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/getvoibe-com:getvoibe-com-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

getvoibe-com-openapi-generated.yml Raw ↑
openapi: 3.1.0
info:
  title: Voibe API
  version: '2026-11-10'
  description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-10: 9 operation(s) read from 13 public documentation page(s) (each operation
    names its page in x-source). This is not the provider''s published contract; Voibe has published no machine-readable contract that the pipeline
    could find. Engine: local.'
  x-evidence-tiers:
    code-example: 3
    documentation: 6
    pages-with-code: 11
    pages-read: 13
  x-generated-from: documentation
  x-provenance: generated
  x-authored-by: API Evangelist
  x-generated: '2026-11-10'
  x-generator: generate-contract-from-docs.py
  x-engine: local
  x-sources:
  - https://dev.getvoibe.com/speech-to-text-api
  - https://www.getvoibe.com/speech-to-text-api
  - https://platform.getvoibe.com/docs.md
  - https://www.getvoibe.com/resources/how-to-take-confidential-meeting-notes
  - https://www.getvoibe.com/resources/how-to-transcribe-teams-recording
  - https://www.getvoibe.com/resources/how-to-transcribe-google-meet-recording
  - https://www.getvoibe.com/resources/how-to-give-claude-access-to-meeting-notes
  - https://www.getvoibe.com/resources/how-to-write-ai-meeting-notes-templates
  - https://www.getvoibe.com/resources/is-wispr-flow-safe
  - https://www.getvoibe.com/resources/best-speech-to-text-api
  - https://www.getvoibe.com/resources/voibe-speech-to-text-api
  - https://www.getvoibe.com/resources/best-transcription-app-for-mac
  - https://www.getvoibe.com/resources/how-to-transcribe-zoom-recording
servers:
- url: https://api.getvoibe.com
paths:
  /history/upload:
    post:
      operationId: post_history_upload
      tags:
      - History
      summary: Hourly upload of usage data and metadata
      x-source: https://www.getvoibe.com/resources/is-wispr-flow-safe
      responses:
        '201':
          description: Success (status as documented)
      x-evidence:
        kind: documentation
  /mcp:
    get:
      operationId: get_mcp
      tags:
      - Mcp
      summary: GET /mcp
      x-source: https://www.getvoibe.com/resources/how-to-give-claude-access-to-meeting-notes
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: httpie
        snippet: http https://mcp.granola.ai/mcp Basic, the free plan, reads personal and public notes from the last 30 days, and some transcript
          and search tools are paid only. Business costs $14 per user a month and lifts the time limit. Sign-in is browser-based only; Granola
          says there is no API key for MCP. Gran
    put:
      operationId: put_mcp
      tags:
      - Mcp
      summary: PUT /mcp
      x-source: https://dev.getvoibe.com/speech-to-text-api
      responses:
        '200':
          description: Success (status as documented)
      x-evidence:
        kind: code-example
        language: curl
        snippet: 'curl -s -X PUT "$UPLOAD_URL"  -H "Content-Type: application/octet-stream"  --data-binary @pricing-meeting.mp3 Get your API key
          Trust and reliability Zero retention on your audio The recording is deleted the moment the transcript exists. It is never kept, and
          never used to train models. Audio is deleted after transcription The recording is removed once the transcript has been produced. Never
          used t'
  /transcripts:
    get:
      operationId: get_transcripts
      tags:
      - Transcripts
      summary: GET /transcripts lists jobs up to 200 per page.
      x-source: https://www.getvoibe.com/resources/best-speech-to-text-api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTranscriptsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_transcripts
      tags:
      - Transcripts
      summary: POST /transcripts returns a signed upload URL.
      x-source: https://www.getvoibe.com/resources/best-speech-to-text-api
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostTranscriptsResponse'
      x-evidence:
        kind: documentation
  /transcripts/{jobId}:
    get:
      operationId: get_transcripts_jobId
      tags:
      - Transcripts
      summary: Fetch status, transcript, summary
      description: Fetch status, transcript, summary for a specific job.
      x-source: https://platform.getvoibe.com/docs.md
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTranscriptsJobidResponse'
      x-evidence:
        kind: documentation
  /v1/transcripts:
    get:
      operationId: get_v1_transcripts
      tags:
      - Transcripts
      summary: GET /v1/transcripts
      x-source: https://dev.getvoibe.com/speech-to-text-api
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1TranscriptsResponse'
      x-evidence:
        kind: documentation
    post:
      operationId: post_v1_transcripts
      tags:
      - Transcripts
      summary: POST /v1/transcripts
      x-source: https://dev.getvoibe.com/speech-to-text-api
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostV1TranscriptsRequest'
      responses:
        '201':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PostV1TranscriptsResponse'
      x-evidence:
        kind: documentation
  /v1/transcripts/{jobId}:
    get:
      operationId: get_v1_transcripts_jobId
      tags:
      - Transcripts
      summary: GET /v1/transcripts/{job_id}
      x-source: https://dev.getvoibe.com/speech-to-text-api
      parameters:
      - name: jobId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success (status as documented)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetV1TranscriptsJobidResponse'
      x-evidence:
        kind: documentation
components:
  schemas:
    GetTranscriptsResponse:
      type: object
      properties:
        jobs:
          type: array
          description: List of transcript job objects (up to 200 per page).
    PostTranscriptsResponse:
      type: object
      properties:
        upload_url:
          type: string
          description: Signed URL to upload the audio file.
    GetTranscriptsJobidResponse:
      type: object
      properties:
        job_id:
          type: string
          description: The job's id, a UUID.
        status:
          type: string
          description: '`QUEUED`, `PROCESSING`, `DONE` or `FAILED`.'
        title:
          type: string
          description: A short name for the recording, written by the summary model.
        audio_duration_seconds:
          type: number
          description: Length of the audio in seconds.
        seconds_charged:
          type: integer
          description: What the job cost, in seconds.
        processing_seconds:
          type: number
          description: How long the transcription took.
        diarize:
          type: boolean
          description: Whether speaker labels were requested.
        prompt:
          type: string
          description: The summary prompt you sent.
        transcript:
          type: array
          description: Lines with speaker, start, end, text.
        transcript_text:
          type: string
          description: Plain text transcript.
        summary:
          type: object
          description: Summary object with `text` field.
        error:
          type: string
          description: Why the job failed.
        code:
          type: string
          description: Stable machine word for the error.
        created_at:
          type: string
          description: ISO 8601 timestamp when created.
        started_at:
          type: string
          description: ISO 8601 timestamp when processing started.
        completed_at:
          type: string
          description: ISO 8601 timestamp when completed.
        content_expires_at:
          type: string
          description: When the transcript and summary are deleted.
        content_expired:
          type: boolean
          description: '`true` once content is gone.'
    GetV1TranscriptsResponse:
      type: object
      properties:
        jobs:
          type: array
          description: List of transcription jobs (up to 200 per page).
        jobs[].job_id:
          type: string
          description: Job identifier.
        jobs[].status:
          type: string
          description: Current status of the job.
        jobs[].title:
          type: string
          description: Title of the recording.
    PostV1TranscriptsRequest:
      type: object
      properties:
        diarize:
          type: boolean
          description: Enable speaker diarization.
        webhook_url:
          type: string
          description: URL to receive webhook when job completes.
        prompt:
          type: string
          description: Prompt to steer the summary.
    PostV1TranscriptsResponse:
      type: object
      properties:
        upload_url:
          type: string
          description: Signed URL to upload the audio file.
        job_id:
          type: string
          description: Identifier of the created transcription job.
    GetV1TranscriptsJobidResponse:
      type: object
      properties:
        job_id:
          type: string
          description: Job identifier.
        status:
          type: string
          description: Job status (e.g., DONE).
        title:
          type: string
          description: Title of the recording.
        audio_duration_seconds:
          type: number
          description: Length of the audio in seconds.
        seconds_charged:
          type: number
          description: Seconds billed for the job.
        diarize:
          type: boolean
          description: Whether diarization was enabled.
        transcript:
          type: array
          description: Array of transcript entries.
        transcript[].speaker:
          type: string
          description: Speaker name.
        transcript[].start:
          type: number
          description: Start time in seconds.
        transcript[].end:
          type: number
          description: End time in seconds.
        transcript[].text:
          type: string
          description: Spoken text.
        transcript_text:
          type: string
          description: Plain transcript string.
        summary:
          type: object
          description: Summary object.
        summary.text:
          type: string
          description: Summary text.
        error:
          type: string
          description: Error message if any.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
security:
- bearer: []
tags:
- name: History
- name: Mcp
- name: Transcripts