Create a Transcript
Fetch a BotGhost transcript URL and host it as a permanent, shareable page. Returns 201 Created on success.
All body parameters can alternatively be provided as HTTP headers prefixed with x-transcript- (e.g. x-transcript-slug). Headers take precedence over body fields.
Request Body
| Parameter | Type | Description |
|---|---|---|
| urlrequired | string | BotGhost transcript URL to fetch HTML content from. Either url or html must be provided. |
| html | string | Raw HTML string to use as the transcript content. An alternative to providing a url. |
| slug | string | A custom slug or template for this transcript. Can include variables like {uuid}, {counter}, etc. Overrides project settings. |
| name | string | A custom display name for the transcript. If omitted, the name is automatically detected from the HTML content. |
| password | string | Override the default password for this transcript. Only applies when password protection is active. |
| protected | boolean | Force password protection on or off for this specific transcript, overriding project defaults. |
| requiredRoles | array | An array of Discord Role IDs required to view this transcript. This engages Discord OAuth on the transcript viewer. Requires Discord Sync to be configured. |
| path_prefix | string | A custom path prefix or template for this transcript's URL (e.g. {project}/{date}). Overrides project settings. |
| dry_run | boolean | If true, validates the request and returns a preview URL without saving anything. Useful for testing your slug template. |
Interactive Request Builder
Force Protection
Enable password protection regardless of settings.
Dry Run Mode
Validate request without saving anything.
Link a Discord server in your project settings to select real roles here.
POST
https://bgplus.robbiee.com/api/v1/create
Headers
x-api-token: your_api_token
Body (Raw JSON)
json
{
"url": "https://transcripts.botghost.com/view/12345"
}Response Body
| Parameter | Type | Description |
|---|---|---|
| url | string | The primary public hosted URL for the transcript based on your project settings. |
| urls | object | An object containing all possible access URLs (main, shorthand, custom, direct, etc.). |
| id | string | The unique internal ID for the transcript. |
| slug | string | The unique slug used in the URL. |
| name | string | The display name of the transcript. |
| isProtected | boolean | Whether password protection is enabled for this transcript. |
| password | string | The transcript password. Returns the provided password or an auto-generated one if protection is enabled. |
| requiredRoles | array | The Discord roles required to access the transcript, if any were provided. |
| dry_run | boolean | Identifies if the response is from a dry-run request. |
| preview_slug | string | The generated preview slug (dry-run only). |
| detected_name | string | The display name detected from the transcript HTML (dry-run only). |
| pathPrefix | string | The processed path prefix used for the generated transcript URLs. |
Example Response
json
{
"url": "https://test.bgplus.robbiee.com/my-transcript-slug",
"urls": {
"main": "https://bgplus.robbiee.com/72280428/my-transcript-slug",
"shorthand": "https://bgpl.us/72280428/my-transcript-slug",
"subdomain": "https://test.bgplus.robbiee.com/my-transcript-slug",
"shorthandSubdomain": "https://test.bgpl.us/my-transcript-slug",
"direct": "https://bgplus.robbiee.com/my-transcript-slug"
},
"id": "j57abc123...",
"slug": "my-transcript-slug",
"pathPrefix": "test-project/2026-02-26",
"isProtected": true,
"password": "example_password",
"requiredRoles": ["123456789012345678"],
"dry_run": false
}