DeProAPI docs
Developers Console

GET STARTED / INTRODUCTION

DePro API

One API for speech to text, embeddings and chat, processed across the DePro network. It follows OpenAI’s request and response formats, so most existing code works by changing the base URL and key.

Base URL

https://depro-network.vercel.app/v1

What you can do

ENDPOINTWHAT IT DOES
POST /v1/audio/transcriptionsSpeech to text: text, timestamps, SRT and VTT subtitles. Details
GET /v1/jobs/{id}Status and result of any job. Details
POST /v1/embeddingsTurn text into vectors for search and retrieval. Details
POST /v1/chat/completionsText generation with open-source models. Details

Create an account on the developer page: sign in with your work email and a code. New accounts include $0.50 of free credit, no card needed.

GET STARTED / QUICK START

Quick start

Your first transcription in three steps.

1. Get your API key

Sign in on the developer page with your work email. Your console shows your key (starts with dpc_); copy it from there.

2. Point your code at DePro

If you already use an OpenAI library, change the base URL and the key. Nothing else.

3. Send a recording

For long recordings, send a link and get the result by webhook: see Webhooks.

GET STARTED / AUTHENTICATION

Authentication

Send your API key as a bearer token on every request. Keys start with dpc_.

Authorization: Bearer dpc_your_key

Keep your key on your server, never in a browser or mobile app. If a key leaks, issue a new one from your console: the old key stops working right away.

Where to find your key

Sign in to the console with your email. The key is hidden until you click Show; Copy puts it on your clipboard. Accounts made before email sign-in can still open the console with their key, and link it to an email once.

API REFERENCE / SPEECH TO TEXT

Speech to text

POST/v1/audio/transcriptions$0.12 per audio hour · billed by the minute

Send a short file as a multipart upload (up to about 4 MB), or a link to a recording of any length. Most audio and video formats work: mp3, wav, m4a, mp4, webm, ogg, flac.

Parameters

filemultipart fileAudio file. Use for short clips (up to about 4 MB).
urlstringPublic or signed link to the recording. Use for anything long.
languagestring · optionalLanguage code such as en or es. Detected automatically if left out.
response_formatstring · optionaljson (default), verbose_json (with timestamped segments), text, srt or vtt.
asyncboolean · optionaltrue returns a job id immediately instead of waiting.
webhook_urlstring · optionalAn https address DePro calls when the job finishes.

Short file, wait for the result

Response verbose_json

{
  "id": "a1b2c3d4e5f6",
  "text": "Thanks for calling. I wanted to follow up on the loan file.",
  "language": "en",
  "duration_seconds": 8.4,
  "segments": [
    { "start": 0.0, "end": 3.1, "text": "Thanks for calling." },
    { "start": 3.1, "end": 8.4, "text": "I wanted to follow up on the loan file." }
  ],
  "depro": { "node": "Rig 4", "seconds": 2.1, "charge_usd": 0.00042 }
}

Long files and webhooks

For recordings longer than a minute or two, send a url with "async": true. You get a job id right away. Either poll the job, or give a webhook_url and DePro will send the result when it’s ready.

If a job fails after retries, the webhook arrives with "status": "failed" and an error message. You are not charged for failed jobs.

Synchronous requests that take longer than about 50 seconds also return 202 with a job id, so your code never hangs.

API REFERENCE / JOB STATUS

Job status

GET/v1/jobs/{id}

Returns queued, running, done or failed, and the result once done.

Transcript formats

For transcription jobs, add ?format= with srt, vtt, text, json or verbose_json (the default). The same finished job can be fetched in every format, as often as you like.

While it’s running

{ "id": "a1b2c3d4e5f6", "type": "transcribe", "status": "running", "error": null }

Embedding jobs return data with the vectors; chat jobs return output and token usage. Every finished job includes what it cost.

API REFERENCE / EMBEDDINGS

Embeddings

POST/v1/embeddings$0.02 per million tokens

Turns text into vectors for search, recommendations and retrieval. Send one string or up to 256 at once.

Parameters

inputstring or arrayThe text to embed: one string, or a list of up to 256.

Example

API REFERENCE / CHAT

Chat

POST/v1/chat/completions$0.06 per million tokens

Text generation with open-source models, in OpenAI’s chat format. Streaming isn’t supported yet.

Parameters

messagesarrayThe conversation, in OpenAI’s format: {"role": "user", "content": "…"}.
modelstring · optionalLeave it out or send any name (OpenAI libraries need one, for example "default"). DePro uses the network’s open-source model unless you name another one that’s online.
max_tokensinteger · optionalThe longest answer you want back.

Example

Spot checks

One in ten chat jobs (10%) is run again on a second computer to catch bad results. You pay for your job once; the check is on DePro.

MORE / WEBHOOKS

Webhooks

Give a webhook_url (https) with an async job, and DePro sends the result to it with a POST when the job finishes.

Payload

{ "id": "a1b2c3d4e5f6", "type": "transcribe", "status": "done", "error": null,
  "result": { "text": "…", "segments": [ … ], "language": "en", "duration": 3612.5 } }

When a job fails

If a job fails after retries, the webhook arrives with "status": "failed" and an error message. You are not charged for failed jobs.

Tips

Answer quickly with a 2xx and do the heavy work afterwards. To get subtitles, fetch the job with ?format=srt or vtt when the webhook arrives.

MORE / ERRORS

Errors

Errors come back as {"error": {"message": "…"}} with one of these status codes.

STATUSMEANING
400Something in the request is missing or invalid. The message says what.
401The API key is missing or wrong.
402Your balance is empty. Add credit in your console.
404No job with that id for this key.
413File too large to upload directly. Send a url instead.
202Not an error: accepted and still processing. Poll /v1/jobs/{id}.

MORE / PRICING

Pricing

Live prices, straight from the network.

JOBPRICE
Speech to text$0.12 per audio hour (billed by the minute)
Embeddings$0.02 per million tokens
Chat$0.06 per million tokens (input and output)

Billed per finished job from your prepaid balance. Failed jobs are free. New accounts start with $0.50 of free credit. Volume pricing is available for large monthly workloads.

MORE / DATA HANDLING

Data handling

Audio and text are sent to a computer on the DePro network only for the length of the job, and processing computers delete input files when the job ends.

Results are stored so you can fetch them by job id. For confidential material, use private processing, where jobs run only on computers you control.

MORE / PRIVATE PROCESSING

Private processing

Same API, two private options for work that has to stay on your own computers.

Private pool

Your jobs run only on computers you own, connected through DePro’s cloud. Your API key keeps working as before; it just sends work to your computers. Quick to set up.

Inside your office

The whole system runs on one always-on computer inside your office, with the same API. Recordings and documents never leave your network; only job counts are reported to DePro for the license. See the install guide.

How to get it

Request either option from your console, and tick the box if you’d like DePro to set it up with you. Once approved, your keys and setup commands appear in the console.