Maya · Batch
Integreren
maya/batch
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/maya/batch?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/maya/batch?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"texts": [
"Hello from Doitong. This is a short test sentence.",
],
"prompts": [
"Hello from Doitong. This is a short test sentence.",
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/maya/batch", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/nl/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "maya/batch",
"input": {
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}
}
Roep het Maya · Batch-model (maya/batch) aan via de Doitong API. Documentatie voor agents: https://doitong.com/nl/developers/models/maya/batch.md
POST https://api.doitong.com/v1/run/maya/batch?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}
Als de responsstatus "queued" of "running" is, poll dan GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20 totdat deze "succeeded" is; de bestanden staan in outputs[].url. POST https://api.doitong.com/v1/quote/maya/batch met dezelfde body retourneert de exacte prijs vóór de uitvoering.
Deze request: ≈$ 0,049 49 API-tegoed Op deze pagina uitvoeren
Je nieuwe API-sleutel. Deze wordt alleen nu getoond en staat al in de code en in het onderstaande API-sleutelveld. Houd deze geheim: zet deze nooit in code die in een browser wordt uitgevoerd.
Je eerste resultaat komt hier
Bouw hieronder een request en voer die uit met je API-sleutel. Uitvoer wordt naar onze opslag gekopieerd en voor altijd of 7 dagen gratis bewaard.
Een aanvraag samenstellen
Besturingselementen worden gegenereerd op basis van het modelschema. De code en de prijs worden bijgewerkt terwijl je ze wijzigt.
/run/maya/batch?wait=20
prijsopgave → $ 0,049
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/maya/batch?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/maya/batch?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"texts": [
"Hello from Doitong. This is a short test sentence.",
],
"prompts": [
"Hello from Doitong. This is a short test sentence.",
],
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/maya/batch", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "maya/batch",
"input": {
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
},
"wait_seconds": 20
}
}
}
Deze request uitvoeren
Je sleutel blijft in deze browser: hij wordt alleen naar de Doitong API verzonden en alleen in localStorage opgeslagen als je Onthouden aanvinkt. API-sleutel ophalen
Over Maya · Batch
Synthetiseert meerdere clips in één request. `texts` en `prompts` accepteren elk 1 tot 100 items en moeten dezelfde lengte hebben, waarbij elke tekst aan een stemomschrijving wordt gekoppeld. Emotietags werken in elke tekst. Instellingen zoals samplefrequentie, uitvoerformaat en temperatuur gelden voor alle items, en de resultaten bevatten een lijst met audiobestanden en duurwaarden.
Parameters
textsverplicht
promptsverplicht
temperatureoptioneel
top_poptioneel
max_tokensoptioneel
repetition_penaltyoptioneel
sample_rateoptioneel
output_formatoptioneel
enable_safety_checkeroptioneel
Uitvoer
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "maya/batch",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 49,
"usd": "0.049",
"charged": 49,
"refunded": 0
},
"input": {
"texts": [
"Hello from Doitong. This is a short test sentence."
],
"prompts": [
"Hello from Doitong. This is a short test sentence."
]
},
"output": {
"audios": [
{
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_name": "0-output.mp3",
"file_size": 1843200
}
],
"durations": [
5
],
"sample_rate": "48 kHz",
"total_generation_time": 5.7,
"average_rtf": 0.15
},
"outputs": [
{
"type": "audio",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp3",
"content_type": "audio/mpeg",
"file_size": 1843200,
"duration": 12,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
Velden van de uitvoer
- audios
- array of object {url, content_type, file_name, file_size}Geproduceerde audiobestanden, geretourneerd als lijst.
- durations
- array of numberLengte in seconden van elke gegenereerde audio-opname.
- sample_rate
- stringSamplefrequentie die door alle gegenereerde audiobestanden wordt gedeeld.
- total_generation_time
- numberGecombineerde generatietijd in seconden voor alle audiobestanden.
- average_rtf
- numberGemiddelde realtimefactor over alle generaties.
Andere varianten van Maya
Meer modellen: Tekst naar spraak
Voor AI-agents: deze pagina als Markdown staat op https://doitong.com/nl/developers/models/maya/batch.md. Alle modellen en handleidingen: https://doitong.com/developers/llms.txt