# Ditto Audio Pre Render API

**Canonical:** https://apis.io/apis/ditto-audio/ditto-audio-pre-render-api/  
**Provider:** Ditto Audio — https://apis.io/providers/ditto-audio/  
**Base URL:** https://ditto.audio/v1  
**Documentation:** https://ditto.audio/docs/reference

Ditto Audio Pre Render API is one of 30 APIs that [Ditto Audio](https://apis.io/providers/ditto-audio/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. This API exposes 6 JSON Schema definitions. Tagged areas include Prerender. The published artifact set on APIs.io includes an OpenAPI specification and 6 JSON Schemas.

Distributed render offload — nodes, jobs, assignments & live presence

## Operations (25)

| Method | Path | Summary |
|---|---|---|
| POST | `/v1/pre-render/nodes/register` | Register/refresh this device as a render node |
| POST | `/v1/pre-render/nodes/{nodeId}/heartbeat` | Keep a node online + report progress/capabilities |
| GET | `/v1/pre-render/nodes` | Your render nodes (devices + the premium cloud node) |
| DELETE | `/v1/pre-render/nodes/{nodeId}` | Remove a device node |
| GET | `/v1/pre-render/entitlement` | Whether your tier may use the premium cloud node |
| POST | `/v1/pre-render/jobs` | Create a pre-render job for a book |
| GET | `/v1/pre-render/jobs` | List your pre-render jobs |
| GET | `/v1/pre-render/jobs/{jobId}` | Poll a job — status + progress |
| POST | `/v1/pre-render/jobs/{jobId}/cancel` | Cancel a job (stales all unfinished chunks) |
| POST | `/v1/pre-render/jobs/{jobId}/allocate` | Run the queue scheduler + return this book's chunk plan |
| PUT | `/v1/pre-render/queue` | Reorder the book queue (front → back); promotes the new front |
| PUT | `/v1/pre-render/jobs/{jobId}/pins` | Pin chapters to specific nodes, then re-allocate |
| PUT | `/v1/pre-render/jobs/{jobId}/excluded` | Leave devices out of this render (or include them again), then re-allocate |
| GET | `/v1/pre-render/jobs/{jobId}/assignments` | List a job's chunk assignments (optionally for one node) |
| GET | `/v1/pre-render/work` | A node's claimable chunks across ALL active books (priority order) |
| POST | `/v1/pre-render/assignments/{assignmentId}/claim` | Claim a chunk for your node + get presigned mp3 upload URLs |
| POST | `/v1/pre-render/assignments/{assignmentId}/chunk-upload-url` | Ask-before-upload for the assignment's canonical WAV chunk (coords derived… |
| POST | `/v1/pre-render/assignments/{assignmentId}/chunk-confirm` | Register the uploaded chunk blob + grant this account its pointer |
| POST | `/v1/pre-render/assignments/{assignmentId}/confirm` | Close a rendered assignment (blob confirm: no paragraphs; legacy: per-paragraph… |
| POST | `/v1/pre-render/assignments/{assignmentId}/release` | Hand back a claimed chunk you could not deliver (one attempt; re-placed at once) |
| GET | `/v1/pre-render/sync` | Delta of your nodes/jobs/assignments since a cursor |
| POST | `/v1/pre-render/presence` | Report what this device is streaming/receiving right now (?map=1 answers with… |
| GET | `/v1/pre-render/presence` | Live map: who streams/receives which book + last-active reader |
| DELETE | `/v1/pre-render/presence/{deviceId}` | A device leaving (a closing tab): drop its live entry and reader claims at once |
| POST | `/v1/pre-render/presence/config` | Set this device's mesh participation config |

## Machine-readable artifacts (7)

- **OpenAPI** — https://artifacts.apis.io/ditto-audio/openapi/ditto-audio-pre-render-api-openapi.yml
- **JSONSchema** — https://artifacts.apis.io/ditto-audio/json-schema/ditto-audio-speech-dto-schema.json
- **JSONSchema** — https://artifacts.apis.io/ditto-audio/json-schema/ditto-audio-create-audio-batch-dto-schema.json
- **JSONSchema** — https://artifacts.apis.io/ditto-audio/json-schema/ditto-audio-speech-batch-dto-schema.json
- **JSONSchema** — https://artifacts.apis.io/ditto-audio/json-schema/ditto-audio-create-voice-model-dto-schema.json
- **JSONSchema** — https://artifacts.apis.io/ditto-audio/json-schema/ditto-audio-update-voice-model-dto-schema.json
- **JSONSchema** — https://artifacts.apis.io/ditto-audio/json-schema/ditto-audio-create-custom-voice-dto-schema.json

## Other Ditto Audio APIs (12)

- [Ditto Audio Admin/db API](https://apis.io/apis/ditto-audio/ditto-audio-admin-db-api/)
- [Ditto Audio Admin/inference API](https://apis.io/apis/ditto-audio/ditto-audio-admin-inference-api/)
- [Ditto Audio Admin/models API](https://apis.io/apis/ditto-audio/ditto-audio-admin-models-api/)
- [Ditto Audio API Keys API](https://apis.io/apis/ditto-audio/ditto-audio-api-keys-api/)
- [Ditto Audio Audio API](https://apis.io/apis/ditto-audio/ditto-audio-audio-api/)
- [Ditto Audio Auth API](https://apis.io/apis/ditto-audio/ditto-audio-auth-api/)
- [Ditto Audio Chunks API](https://apis.io/apis/ditto-audio/ditto-audio-chunks-api/)
- [Ditto Audio Docs API](https://apis.io/apis/ditto-audio/ditto-audio-docs-api/)
- [Ditto Audio Favorites API](https://apis.io/apis/ditto-audio/ditto-audio-favorites-api/)
- [Ditto Audio Health API](https://apis.io/apis/ditto-audio/ditto-audio-health-api/)
- [Ditto Audio Inference API](https://apis.io/apis/ditto-audio/ditto-audio-inference-api/)
- [Ditto Audio license (native client) API](https://apis.io/apis/ditto-audio/ditto-audio-license-native-client-api/)

## Tags

Prerender

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/ditto-audio/ditto-audio-pre-render-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/ditto-audio/.
