Tools

Audio to JSON API

Submit any audio file. Get back a transcript with timestamps, duration, and metadata as structured JSON.

Try it below:

FILEDrop a file or click to upload

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Turn audio files into structured JSON

Upload an audio file or submit a URL, get structured JSON back.

{
  "kind": "audio",
  "name": "",
  "url": null,
  "state": "completed",
  "createdAt": "2026-07-19T10:55:27.277Z",
  "extraction": {
    "common": {
      "mimeType": "audio/mpeg",
      "size": 406191,
      "infected": false,
      "caption": "A brief description of Fabric CLI, an audio marketing excerpt promoting a terminal-based AI assistant for note-taking, task management, and library searches. It highlights interactive/AI agent modes and web/library access.",
      "keywords": [
        "terminal",
        "software",
        "command line interface",
        "ai assistant",
        "automation",
        "cli",
        "productivity tool"
      ],
      "thumbnail": "https://cdn.exabase.io/workspace/fd9cc776-caa4-4c8e-a279-c71497d13eb1/processing/4663f7ba-9e35-4a0f-bfc0-71c0d7abbd1d/thumbnail.jpg?token=ZbReiyKepBoy6YhSseqyskGKuvpV-EIlEvVjUxEopeg&expires=1785052800",
      "chunkCount": 2
    },
    "media": {
      "duration": 23.170562,
      "codec": "mp3",
      "bitRate": 128000,
      "sampleRate": 44100,
      "channels": "mono",
      "transcript": {
        "url": "https://cdn.exabase.io/workspace/fd9cc776-caa4-4c8e-a279-c71497d13eb1/processing/4663f7ba-9e35-4a0f-bfc0-71c0d7abbd1d/transcript.vtt?token=jFjZ1w8DiULd7cvqj0rnljrwmalJD2nXo907EZx7Iqo&expires=1785052800"
      }
    }
  }
}

What is Exabase's audio to JSON API?

Submit an audio file to the Exabase Extract API and get structured JSON back. The response includes a full transcript, duration, MIME type, file size, a CDN-hosted thumbnail, and the transcript text split into searchable chunks with start and end timestamps. MP3, WAV, M4A, OGG, FLAC, and other major formats are supported.

The same POST /v2/extract endpoint accepts both file uploads and URLs pointing to hosted audio. Transcription and chunking happen on Exabase's infrastructure. No speech-to-text model to host, no FFmpeg, no GPU provisioning on your end.

What you get back

The response includes the audio duration, a full transcript, and the transcript split into chunks. Each chunk carries a timeStart and timeEnd in seconds, so you can map any piece of text back to the exact moment in the recording. You also get MIME type, file size, total chunk count, and a CDN-hosted thumbnail. The API reference has the complete response schema.

One multi-modal API

The same POST /v2/extract endpoint handles every content type Exabase supports. For audio, it transcribes and returns timestamped chunks. For video, it does the same with the addition of frame dimensions. For PDFs, it returns page count, author, title, and (for recognised document types like invoices, contracts, and resumes) structured field extraction. For images, it runs OCR. For web pages, it renders JavaScript and extracts the content.

The submission flow is identical across all types: one endpoint, one SDK method, one webhook configuration. You learn the pattern once and use it for everything. The Extract docs cover each content type in detail.

What you can build with it

The timestamped chunks are the same format used across the Exabase platform. Feed them into a RAG pipeline so your agent can cite the exact moment in a recording. Build searchable podcast archives where users find the right episode and the right segment. Process customer support calls and extract structured insights from the transcript. Index meeting recordings so your team can search spoken content by topic.

Store transcribed audio as Resources in a Base and the content becomes searchable through Deep Search at the chunk level. Workers can re-extract updated recordings on a schedule, keeping your audio index current without manual work.

Beyond transcription

The Extract API returns more than a transcript. You get structured metadata, a CDN-hosted thumbnail, and chunks you can index directly. Store the output as a Resource and it's searchable through Deep Search immediately. Extract key facts from the transcript into Memory so your agent retains what it heard between sessions. The Submitting Jobs guide at https://exabase.io/docs/developer-guide/extraction/submitting-jobs walks through the full flow.

How do I use it?

  1. Get your API key

Free, no credit card:

Sign up at exabase.io and copy your API key from the dashboard.

  1. Submit an audio file

Using the SDK (Node.js):

import { Exabase } from "@exabase/sdk";
import { createReadStream } from "fs";

const api = new Exabase({
  apiKey: process.env.EXABASE_API_KEY,
});

const job = await api.extract.createFromFile({
  file: createReadStream("./meeting-recording.mp3"),
  name: "Team standup — July 2026",
});

console.log(job.id);    // extraction job id
console.log(job.state); // "pending"
  1. Get the result

Poll the job until state reaches completed, or skip polling entirely with webhooks.

const result = await api.extract.get({ jobId: job.id });

if (result.state === "completed") {
  console.log(result.extraction?.media?.duration);
  console.log(result.extraction?.media?.transcript);
  console.log(result.extraction?.common?.chunkCount);
  console.log(result.extraction?.common?.thumbnail);
}

One API call. No speech-to-text model, no FFmpeg, no GPU.

What you get back

Field

Type

Description

state

string

completed or failed

kind

string

audio

extraction.common.mimeType

string

Detected MIME type (e.g. audio/mpeg)

extraction.common.size

number

File size in bytes

extraction.common.thumbnail

string

CDN-hosted thumbnail URL

extraction.common.chunkCount

number

Number of transcript chunks

extraction.media.duration

string

Duration in seconds

extraction.media.transcript

string

Full transcript text

Transcript chunks are retrieved separately via GET /v2/extract/{jobId}/chunks.

Each chunk includes timeStart and timeEnd in seconds alongside the transcript text.

API quick reference

Endpoint

Method

Description

/v2/extract

POST

Submit extraction job

/v2/extract

GET

List extraction jobs

/v2/extract/{jobId}

GET

Poll for result

/v2/extract/{jobId}/chunks

GET

Fetch transcript chunks

/v2/extract-settings

PUT

Configure webhook

Auth: X-Api-Key header on all requests.

File retention: Stored files are retained for 1 day from job creation. Download or copy anything you need before they expire.

Need file extraction or full page content?

Exabase offers a full set of tools to extract content from any media, document or website.

All your data extraction needs in one place.

Why Exabase

Comparisons

Use cases

FAQs

What is Exabase?

Exabase is infrastructure for AI agents. It gives your agents memory, versioned file storage, AI deep search, and context automation through a set of APIs. Store what your agent learns, search inside any content type, and keep knowledge bases current automatically. Built for production use. Give your agent precise context and cut your token spend by up to 81%.

Who uses Exabase?

Developers and teams building AI agents, copilots, and RAG applications. If your agent needs to remember things between sessions, store and retrieve files, search across documents and media, or stay up to date without manual maintenance, Exabase handles that infrastructure so you can focus on your product.

How fast is transcription?

Processing time depends on the file length and format. Most audio files complete in seconds to a few minutes. Processing is asynchronous, so your application is not blocked while transcription runs.

What audio formats are supported?

MP3, WAV, M4A, OGG, FLAC, and other major audio formats. The API auto-detects the content type and processes accordingly.

Do I have to poll for results?

No. You can configure a webhook URL and Exabase will POST the full result to your server when processing completes. The webhooks guide covers setup.

What do transcript chunks look like?

Each chunk contains the transcript text, a sequence number, and timeStart / timeEnd values in seconds. You can map any piece of text back to the exact moment in the recording.

Can I submit a URL instead of uploading a file?

Yes. Pass a url field in the request body pointing to a publicly accessible audio file. Exabase fetches and processes it.

What happens if extraction fails?

The job state moves to failed. You can call the reprocess endpoint to retry without re-uploading the original file.

How long are files retained?

Stored files are retained for 1 day from job creation, then permanently deleted. Download or copy anything you need before the retention window expires.

Can I use the transcript with other Exabase features?

Yes. Store transcribed audio as a Resource in a Base and the content becomes searchable through Deep Search. Extract key facts into Memory so your agent retains what it heard. Workers can re-extract updated recordings on a schedule.

How is this different from the Audio Transcription tool?

The Audio Transcription page focuses on the transcript output specifically. Audio to JSON covers the full extraction response: metadata, duration, thumbnail, transcript, and chunks. Same underlying API, different emphasis.

Is there an SDK?

Yes. The @exabase/sdk package for Node.js/TypeScript handles file streaming, job polling, and chunk retrieval. Install with npm install @exabase/sdk. Or call the REST API directly from any language.

What other content types does Extract support?

PDFs, images (with OCR), video files (with transcription), web pages, and documents. The same POST /v2/extract endpoint handles all of them. See the PDF to JSON, Image to JSON, Video to JSON, and Website to JSON tool pages.

Deciding?

Ask your favourite AI about Exabase:

Cut your token spend and give your agent precise context.

Get started in minutes.

Cut your token spend and give your agent precise context.

Get started in minutes.