Aperçu de l’API publique Cloud
L’API développeur Cloud non publiée, avec des Artifacts en entrée et des Jobs durables en sortie.
L’API Cloud n’est pas publiée
Ceci est un aperçu du contrat, pas une destination pour le trafic de production. Le document OpenAPI n’a pas de serveur et les exemples utilisent le paramètre fictif $VOICESTUDIO_CLOUD_ORIGIN.
| Provenance | Valeur |
|---|---|
| Produit | API publique développeur VoiceStudio Cloud |
| Public | Identifiants développeur publics uniquement |
| Version du contrat | 1.0.0 |
| Version du contrat généré | 1.0.0 |
| Dépôt source | debpalash/vssaas |
| Commit source | c48c41f8fe5bb4496a9d218c513fd91fe827c0b5 |
| Projection publique brute | /cloud-openapi.json |
Elle contient 34 opérations développeur. Les opérations du tableau de bord, des opérateurs et internes sont exclues, ainsi que leurs schémas exclusifs.
Déroulement du travail
Le travail Cloud n’est pas un appel direct. Les entrées deviennent des Artifacts immuables, puis une requête authentifiée admet un Job durable et répond immédiatement. Chaque mutation utilise une Idempotency-Key créée par l’appelant : une même clé et un même corps donnent le même résultat ; un corps modifié provoque un conflit.
Aperçu non exécutable, sans hôte de production :
export VOICESTUDIO_CLOUD_ORIGIN="https://unreleased.invalid"
export VOICESTUDIO_API_KEY="vs_preview_only"
# 1. Ask to upload the exact text bytes.
curl "$VOICESTUDIO_CLOUD_ORIGIN/v1/artifacts/upload-authorizations" \
-H "Authorization: Bearer $VOICESTUDIO_API_KEY" \
-H "Idempotency-Key: 018f-example-upload-key" \
-H "Content-Type: application/json" \
-d '{
"project_id": "replace-with-project-id",
"purpose": "tts_text",
"media_type": "text/plain; charset=utf-8",
"size_bytes": 24,
"sha256": "replace-with-64-lowercase-hex-characters"
}'
# 2. PUT the bytes to the returned short-lived URL, then complete the Artifact.
curl "$VOICESTUDIO_CLOUD_ORIGIN/v1/artifacts/ARTIFACT_ID/complete" \
-H "Authorization: Bearer $VOICESTUDIO_API_KEY" \
-H "Idempotency-Key: 018f-example-complete-key" \
-H "Content-Type: application/json" \
-d '{ "size_bytes": 24, "sha256": "replace-with-64-lowercase-hex-characters" }'
# 3. Admit a Job. Success is 202 Accepted, not audio.
curl "$VOICESTUDIO_CLOUD_ORIGIN/v1/jobs" \
-H "Authorization: Bearer $VOICESTUDIO_API_KEY" \
-H "Idempotency-Key: 018f-example-job-key" \
-H "Content-Type: application/json" \
-d '{
"project_id": "replace-with-project-id",
"workflow": "tts",
"model": { "id": "replace-with-model-id", "version": "replace-with-version" },
"input": { "text_artifact_id": "replace-with-artifact-id" },
"configuration": { "voice_id": "replace-with-voice-id", "output_format": "wav" }
}'Le corps 202 Accepted contient l’identité et l’état du Job. Interrogez GET /v1/jobs/{job_id} ou reprenez GET /v1/jobs/{job_id}/events, puis récupérez la sortie avec une autorisation de téléchargement d’Artifact. L’accès dépend toujours des identifiants et de l’appartenance au tenant ; un ID dans une requête ne l’accorde jamais.
Schémas exacts : référence de l’API Cloud.