3 min read

Source: Roblox Creator Hub · CC BY 4.0 · View source · Code samples: MIT Imported 2026-10-03. Formatting adapted for this site.

POST /cloud/v2/universes/{universe_id}:generateSpeechAsset — openapi

Generate Speech Asset

Generates an English speech audio asset from the specified text.

This endpoint requires the asset:read and asset:write scopes in addition to the universe:write scope.

The response returns an Operation object that must be prefixed with /assets/v1. For example, the URL to discover the result of the operation could be https://apis.roblox.com/assets/v1/operations/8b42ef30-9c17-4526-b8cf-2ff0136ca94d.

Endpoint

Method: POST

Path: /cloud/v2/universes/{universe_id}:generateSpeechAsset

Servers:

Parameters

NameLocationRequiredDescription
universe_idpathtrueThe universe ID.
[
  {
    "name": "universe_id",
    "in": "path",
    "description": "The universe ID.",
    "required": true,
    "schema": {
      "type": "string"
    }
  }
]

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/GenerateSpeechAssetRequest"
      }
    }
  },
  "required": true
}

Responses

StatusDescription
200OK
{
  "200": {
    "description": "OK",
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Operation"
        }
      }
    }
  }
}

Authentication

{
  "security": [
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": []
    }
  ],
  "securitySchemes": {
    "roblox-api-key": {
      "type": "apiKey",
      "description": "A configurable key that allows granular access to Roblox resources. See https://create.roblox.com/docs/cloud/auth/api-keys for more information.",
      "name": "x-api-key",
      "in": "header"
    },
    "roblox-legacy-cookie": {
      "type": "apiKey",
      "description": "A browser cookie that represents the identity of a Roblox user. DO NOT SHARE THIS. Sharing this will allow someone to log in as you and to steal your Robux and items. We do not recommend using cookies to call endpoints. When possible, use API keys with the x-api-key header or OAuth 2.0 instead for authentication.",
      "in": "cookie",
      "name": ".ROBLOSECURITY"
    },
    "roblox-oauth2": {
      "type": "oauth2",
      "description": "Build or authorize apps to access Roblox resources. See https://create.roblox.com/docs/cloud/auth/oauth2-overview for more information.",
      "flows": {
        "authorizationCode": {
          "authorizationUrl": "https://apis.roblox.com/oauth/v1/authorize",
          "tokenUrl": "https://apis.roblox.com/oauth/v1/token",
          "refreshUrl": "https://apis.roblox.com/oauth/v1/token",
          "scopes": {}
        }
      }
    }
  }
}

Complete Operation Definition

{
  "tags": [
    "Assets",
    "Generative AI"
  ],
  "summary": "Generate Speech Asset",
  "description": "Generates an English speech audio asset from the specified text.\n\nThis endpoint requires the `asset:read` and `asset:write` scopes in\naddition to the `universe:write` scope.\n\nThe response returns an `Operation` object that must be prefixed with\n`/assets/v1`. For example, the URL to discover the result of the operation\ncould be\n`https://apis.roblox.com/assets/v1/operations/8b42ef30-9c17-4526-b8cf-2ff0136ca94d`.",
  "operationId": "Cloud_GenerateSpeechAsset",
  "parameters": [
    {
      "name": "universe_id",
      "in": "path",
      "description": "The universe ID.",
      "required": true,
      "schema": {
        "type": "string"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/GenerateSpeechAssetRequest"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "description": "OK",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Operation"
          }
        }
      }
    }
  },
  "x-long-running-operation-parameters": {
    "metadata": {
      "$ref": "#/components/schemas/GenerateSpeechAssetMetadata"
    },
    "response": {
      "$ref": "#/components/schemas/GenerateSpeechAssetResponse"
    }
  },
  "x-roblox-engine-usability": {
    "apiKeyWithHttpService": false
  },
  "x-roblox-scopes": [
    {
      "name": "universe:write"
    },
    {
      "name": "asset:read"
    },
    {
      "name": "asset:write"
    }
  ],
  "x-roblox-docs": {
    "category": "Universes and places",
    "methodProperties": {
      "scopes": [
        "universe:write",
        "asset:read",
        "asset:write"
      ]
    },
    "resource": {
      "$ref": "#/components/schemas/Universe",
      "name": "Universe"
    }
  },
  "x-roblox-stability": "BETA",
  "x-roblox-rate-limits": {
    "perApiKeyOwner": {
      "period": "SECOND",
      "maxInPeriod": 4
    },
    "perOauth2Authorization": {
      "period": "SECOND",
      "maxInPeriod": 4
    }
  },
  "security": [
    {
      "roblox-api-key": []
    },
    {
      "roblox-oauth2": []
    }
  ],
  "externalDocs": {
    "url": "https://create.roblox.com/docs/cloud/reference/features/assets#Cloud_GenerateSpeechAsset"
  }
}