@acedatacloud/skills 2026.808.0 → 2026.809.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acedatacloud/skills",
3
- "version": "2026.808.0",
3
+ "version": "2026.809.1",
4
4
  "description": "Agent Skills for AceDataCloud AI services — music, image, video generation, LLM chat, web search. Compatible with Claude Code, GitHub Copilot, Gemini CLI, OpenAI Codex, and 30+ AI coding agents.",
5
5
  "keywords": [
6
6
  "agent-skills",
@@ -37,7 +37,6 @@ Synchronous responses return a direct audio URL:
37
37
  | `POST /fish/tts` | Text-to-speech generation |
38
38
  | `GET /fish/model` | Browse/search public Fish reference voices |
39
39
  | `GET /fish/model/{id}` | Fetch one reference voice by ID |
40
- | `POST /fish/model` | Clone a voice — create a reference model from an audio URL |
41
40
  | `POST /fish/tasks` | Poll async TTS jobs when `async: true` |
42
41
 
43
42
  ## Workflows
@@ -97,10 +96,9 @@ Headers:
97
96
  |-----------|---------------|-------------|
98
97
  | `text` | string | Text to synthesize (required) |
99
98
  | `reference_id` | string | Public/reference voice ID from `GET /fish/model` |
100
- | `format` | `"mp3"`, `"wav"`, `"pcm"`, `"opus"` | Output format |
99
+ | `format` | `"mp3"`, `"wav"`, `"pcm"` | Output format |
101
100
  | `sample_rate` | integer | Optional output sample rate |
102
101
  | `mp3_bitrate` | `64`, `128`, `192` | MP3 bitrate |
103
- | `opus_bitrate` | integer | Opus bitrate |
104
102
  | `latency` | `"normal"`, `"balanced"` | TTS latency mode |
105
103
  | `chunk_length` / `min_chunk_length` | integer | Chunking controls |
106
104
  | `temperature`, `top_p`, `repetition_penalty` | number | Sampling controls |
@@ -117,4 +115,3 @@ Headers:
117
115
  - Choose the Fish engine with the **`model` request header**, not a JSON `model` field.
118
116
  - Use `reference_id` from `GET /fish/model` — not `voice_id`.
119
117
  - Synchronous requests return `audio_url` directly; async jobs should be polled via `/fish/tasks`.
120
- - Voice cloning is `POST /fish/model`. `voices` must be a **single** HTTP(S) audio URL string — not an array, and not a file upload. It returns the `_id` you then pass to `/fish/tts` as `reference_id`.
@@ -20,7 +20,7 @@ Generate and edit images through AceDataCloud's Flux API.
20
20
  curl -X POST https://api.acedata.cloud/flux/images \
21
21
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
22
  -H "Content-Type: application/json" \
23
- -d '{"prompt": "a cat wearing a space helmet, photorealistic", "model": "flux-dev", "callback_url": "https://api.acedata.cloud/health"}'
23
+ -d '{"action": "generate", "prompt": "a cat wearing a space helmet, photorealistic", "model": "flux-dev", "callback_url": "https://api.acedata.cloud/health"}'
24
24
  ```
25
25
 
26
26
  > **Async:** See [async task polling](../_shared/async-tasks.md). Poll via `POST /flux/tasks` with `{"id": "..."}`.
@@ -51,10 +51,10 @@ POST /serp/google
51
51
 
52
52
  | Parameter | Type | Description |
53
53
  |-----------|------|-------------|
54
- | `query` | string | Search query (required) |
54
+ | `query` | string | Search query (required; must contain non-whitespace text; maximum 2048 characters) |
55
55
  | `type` | string | One of: search, images, news, maps, places, videos |
56
- | `country` | string | Country code (e.g., "us", "uk", "cn", "jp") |
57
- | `language` | string | Language code (e.g., "en", "zh", "ja") |
56
+ | `country` | string | Non-empty country code (e.g., "us", "uk", "cn", "jp"; maximum 32 characters) |
57
+ | `language` | string | Non-empty language code (e.g., "en", "zh", "ja"; maximum 32 characters) |
58
58
  | `range` | string | Time filter (see below) |
59
59
  | `number` | int | Number of results per page |
60
60
  | `page` | int | Page number for pagination |
@@ -69,6 +69,11 @@ POST /serp/google
69
69
  | `qdr:w` | Past week |
70
70
  | `qdr:m` | Past month |
71
71
  | `qdr:y` | Past year |
72
+ | `h` | Past hour |
73
+ | `d` | Past 24 hours |
74
+ | `w` | Past week |
75
+ | `m` | Past month |
76
+ | `y` | Past year |
72
77
 
73
78
  ## Response Structure
74
79
 
@@ -124,7 +124,9 @@ Apply precise camera/motion control from an image + reference video.
124
124
  POST /kling/motion
125
125
  {
126
126
  "image_url": "https://example.com/subject.jpg",
127
- "video_url": "https://example.com/motion-reference.mp4"
127
+ "video_url": "https://example.com/motion-reference.mp4",
128
+ "mode": "std",
129
+ "character_orientation": "image"
128
130
  }
129
131
  ```
130
132
 
@@ -186,6 +188,8 @@ POST /kling/talking-photo
186
188
  | `voice_id` (`/kling/lip-sync`) | string | Voice preset ID used in `text2video` |
187
189
  | `voice_language` (`/kling/lip-sync`) | `"zh"`, `"en"` | TTS language for `text2video` (default `zh`) |
188
190
  | `voice_speed` (`/kling/lip-sync`) | number | TTS speaking speed (default `1.0`) |
191
+ | `mode` (`/kling/motion`) | `"std"`, `"pro"` | Motion generation quality mode |
192
+ | `character_orientation` (`/kling/motion`) | `"image"`, `"video"` | Character orientation source |
189
193
  | `image_url` (`/kling/talking-photo`) | URL | Source portrait image |
190
194
  | `audio_url` (`/kling/talking-photo`) | URL | Driving audio track |
191
195
  | `model` (`/kling/talking-photo`) | `"kling-v1"`, `"kling-v1-6"`, `"kling-v2-master"`, `"kling-v2-1-master"`, `"kling-v2-5-turbo"`, `"kling-v2-6"` | Talking-photo model |
@@ -40,7 +40,7 @@ curl -X POST https://api.acedata.cloud/maestro/videos \
40
40
  }'
41
41
  ```
42
42
 
43
- The response contains a `task_id`. Maestro is asynchronous, so query the task until it reaches `succeeded` or `failed`:
43
+ The successful creation response is HTTP `201` and contains a `task_id`. Maestro is asynchronous, so query the task until it reaches `succeeded` or `failed`:
44
44
 
45
45
  ```bash
46
46
  curl -X POST https://api.acedata.cloud/maestro/tasks \
@@ -230,18 +230,17 @@ On success, inspect the delivered variants:
230
230
 
231
231
  Treat the fields above as a shape guide. Return fields that are actually present; never fabricate missing captions, covers, durations, or QC scores.
232
232
 
233
- ## List Recent Tasks
233
+ ## Task Retrieval
234
234
 
235
- The live task endpoint also supports account history:
235
+ Retrieve a task by its required `id`; the only documented action is `retrieve`:
236
236
 
237
237
  ```bash
238
238
  curl -X POST https://api.acedata.cloud/maestro/tasks \
239
239
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
240
240
  -H "Content-Type: application/json" \
241
- -d '{"action": "retrieve_batch", "limit": 20}'
241
+ -d '{"id": "TASK_ID", "action": "retrieve"}'
242
242
  ```
243
243
 
244
- Optional Unix timestamp filters are `created_at_min` and `created_at_max`. The authenticated identity determines which tasks are returned; do not supply or trust a body-level user ID.
245
244
 
246
245
  ## Prompting Guidance
247
246
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: minimax-video
3
- description: Generate MiniMax H3 videos from text, up to nine reference images, or up to three audio references through AceDataCloud. Use for text-to-video, multi-image video, audio-guided video, and MiniMax H3 task polling.
3
+ description: Generate MiniMax H3 videos from text and optional image, video, or audio references through AceDataCloud. Use for text-to-video, first/last-frame video, multimodal reference video, and MiniMax H3 task polling.
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: acedatacloud
@@ -10,7 +10,7 @@ compatibility: Requires ACEDATACLOUD_API_TOKEN in .env (see _shared/authenticati
10
10
 
11
11
  # MiniMax H3 Video Generation
12
12
 
13
- Generate 4–15 second videos through `POST https://api.acedata.cloud/minimax/videos`.
13
+ Generate 4–15 second videos through `POST https://api.acedata.cloud/minimax/videos`. Use the V2 multimodal `content` array to supply the prompt and optional reference media.
14
14
 
15
15
  > **Setup:** See [authentication](../_shared/authentication.md). For long jobs, use [async task polling](../_shared/async-tasks.md) with `POST /minimax/tasks`.
16
16
 
@@ -18,70 +18,96 @@ Generate 4–15 second videos through `POST https://api.acedata.cloud/minimax/vi
18
18
 
19
19
  | Parameter | Values | Default |
20
20
  | --- | --- | --- |
21
- | `model` | `minimax-h3` | `minimax-h3` |
22
- | `prompt` | non-empty string, max 7000 chars | required |
23
- | `image_urls` | 1–9 public HTTP(S) URLs | omitted |
24
- | `audio_urls` | 1–3 public HTTP(S) URLs | omitted |
25
- | `resolution` | `768P`, `2K` | `2K` |
26
- | `ratio` | `16:9`, `9:16` | `16:9` |
27
- | `aigc_watermark` | boolean | false |
28
- | `duration` | integer 4–15 | 4 |
29
- | `async` | boolean | false |
21
+ | `model` | `MiniMax-H3` | required |
22
+ | `content` | array of prompt and optional media items | required |
23
+ | `resolution` | `768P`, `2K` | required |
24
+ | `duration` | integer 4–15 | required |
25
+ | `ratio` | `adaptive`, `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, `9:16` | omitted |
30
26
  | `callback_url` | public HTTP(S) webhook | omitted |
31
27
 
32
- `prompt` is required in every mode. Audio also requires at least one image. Mode inference is deterministic:
28
+ Each `content` item has a `type` of `text`, `image_url`, `video_url`, or `audio_url`; set the matching field to the text or public URL. Media items use a `role`:
33
29
 
34
- 1. `audio_urls` present → audio-guided video
35
- 2. otherwise `image_urls` present → image-to-video
36
- 3. otherwise → text-to-video
30
+ | Role | Use |
31
+ | --- | --- |
32
+ | `first_frame` | Starting image |
33
+ | `last_frame` | Ending image |
34
+ | `reference_image` | Reference image |
35
+ | `reference_video` | Reference video |
36
+ | `reference_audio` | Reference audio |
37
37
 
38
- Public pricing is **$0.057143/s for 768P** and **$0.091429/s for 2K** on the largest package. Failed tasks are not charged.
38
+ Include a `text` item with the generation prompt in every request.
39
39
 
40
40
  ## Text to video
41
41
 
42
42
  ```bash
43
43
  curl -X POST https://api.acedata.cloud/minimax/videos \
44
- -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
44
+ -H "Authorization: ******" \
45
45
  -H "Content-Type: application/json" \
46
46
  -d '{
47
- "model": "minimax-h3",
48
- "prompt": "A red fox running through a snowy forest at dawn, low tracking shot",
47
+ "model": "MiniMax-H3",
48
+ "content": [
49
+ {
50
+ "type": "text",
51
+ "text": "A red fox running through a snowy forest at dawn, low tracking shot"
52
+ }
53
+ ],
49
54
  "resolution": "768P",
50
55
  "ratio": "16:9",
51
- "duration": 4,
52
- "async": true
56
+ "duration": 4
53
57
  }'
54
58
  ```
55
59
 
56
- ## Multi-image video
60
+ ## First and last frame video
57
61
 
58
62
  ```json
59
63
  {
60
- "model": "minimax-h3",
61
- "prompt": "Preserve the character and clothing while the camera slowly pushes in",
62
- "image_urls": [
63
- "https://cdn.acedata.cloud/b1c82e4937.png",
64
- "https://cdn.acedata.cloud/eb75d88a3f.png"
64
+ "model": "MiniMax-H3",
65
+ "content": [
66
+ {
67
+ "type": "text",
68
+ "text": "A camera slowly pushes in as the character walks into the sunrise."
69
+ },
70
+ {
71
+ "type": "image_url",
72
+ "image_url": "https://cdn.acedata.cloud/first-frame.png",
73
+ "role": "first_frame"
74
+ },
75
+ {
76
+ "type": "image_url",
77
+ "image_url": "https://cdn.acedata.cloud/last-frame.png",
78
+ "role": "last_frame"
79
+ }
65
80
  ],
66
81
  "resolution": "768P",
67
82
  "ratio": "9:16",
68
- "duration": 8,
69
- "async": true
83
+ "duration": 8
70
84
  }
71
85
  ```
72
86
 
73
- ## Audio-guided video
87
+ ## Reference-guided video
74
88
 
75
89
  ```json
76
90
  {
77
- "model": "minimax-h3",
78
- "prompt": "A dancer moves naturally to the rhythm",
79
- "image_urls": ["https://cdn.acedata.cloud/b1c82e4937.png"],
80
- "audio_urls": ["https://cdn.acedata.cloud/6f7d62b18b.wav"],
91
+ "model": "MiniMax-H3",
92
+ "content": [
93
+ {
94
+ "type": "text",
95
+ "text": "A dancer moves naturally to the rhythm."
96
+ },
97
+ {
98
+ "type": "image_url",
99
+ "image_url": "https://cdn.acedata.cloud/reference.png",
100
+ "role": "reference_image"
101
+ },
102
+ {
103
+ "type": "audio_url",
104
+ "audio_url": "https://cdn.acedata.cloud/reference.wav",
105
+ "role": "reference_audio"
106
+ }
107
+ ],
81
108
  "resolution": "768P",
82
109
  "ratio": "9:16",
83
- "duration": 8,
84
- "async": true
110
+ "duration": 8
85
111
  }
86
112
  ```
87
113
 
@@ -89,18 +115,18 @@ curl -X POST https://api.acedata.cloud/minimax/videos \
89
115
 
90
116
  ```bash
91
117
  curl -X POST https://api.acedata.cloud/minimax/tasks \
92
- -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
118
+ -H "Authorization: ******" \
93
119
  -H "Content-Type: application/json" \
94
120
  -d '{"action":"retrieve","id":"TASK_ID"}'
95
121
  ```
96
122
 
97
- Continue polling about every five seconds until `response.success` is true or an error appears. Use `retrieve_batch` with `ids` to check several tasks in one request.
123
+ Continue polling about every five seconds until the task reaches a terminal state. Use `retrieve_batch` with `ids` to check several tasks, or `delete` with `id` to remove a task. Batch listing also accepts `limit`, `offset`, `created_at_min`, and `created_at_max`.
98
124
 
99
125
  ## Gotchas
100
126
 
101
127
  - Do not send `action` to `/minimax/videos`; the API infers the mode from media inputs.
102
128
  - `duration` must be an integer, not a decimal.
103
- - Audio mode requires both `prompt` and at least one `image_urls` entry.
104
- - Single-image mode uses the image as the first frame; multiple images are references.
105
- - Use public URLs that the generation service can download.
129
+ - Put the prompt in a `content` item with `type: "text"`; do not send a top-level `prompt`.
130
+ - Use `first_frame`, `last_frame`, and reference roles explicitly; do not rely on item order to determine an image's role.
131
+ - Use public URLs that the generation service can download for every media item.
106
132
  - Returned videos are served from AceDataCloud CDN.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: nano-banana-image
3
- description: Generate and edit AI images with NanoBanana (Gemini-based) via AceDataCloud API. Use when creating images from text prompts or editing existing images with text instructions. Supports nano-banana, nano-banana-2, nano-banana-pro and their :official variants.
3
+ description: Generate and edit AI images with NanoBanana (Gemini-based) via AceDataCloud API. Use when creating images from text prompts or editing existing images with text instructions. Supports nano-banana, nano-banana-2-lite, nano-banana-2, nano-banana-pro and their :official variants.
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: acedatacloud
@@ -29,9 +29,11 @@ curl -X POST https://api.acedata.cloud/nano-banana/images \
29
29
  | Model | Best For |
30
30
  |-------|----------|
31
31
  | `nano-banana` | Standard image generation (default) |
32
+ | `nano-banana-2-lite` | Fast, lightweight second-generation model |
32
33
  | `nano-banana-2` | Improved quality, second generation |
33
34
  | `nano-banana-pro` | Highest quality, most detailed output |
34
35
  | `nano-banana:official` | Official channel variant of `nano-banana` |
36
+ | `nano-banana-2-lite:official` | Official channel variant of `nano-banana-2-lite` |
35
37
  | `nano-banana-2:official` | Official channel variant of `nano-banana-2` |
36
38
  | `nano-banana-pro:official` | Official channel variant of `nano-banana-pro` |
37
39
 
@@ -69,7 +71,7 @@ POST /nano-banana/images
69
71
  | Parameter | Values | Description |
70
72
  |-----------|--------|-------------|
71
73
  | `action` | `"generate"`, `"edit"` | Operation mode |
72
- | `model` | `"nano-banana"`, `"nano-banana-2"`, `"nano-banana-pro"`, `"nano-banana:official"`, `"nano-banana-2:official"`, `"nano-banana-pro:official"` | Model to use |
74
+ | `model` | `"nano-banana"`, `"nano-banana-2-lite"`, `"nano-banana-2"`, `"nano-banana-pro"`, `"nano-banana:official"`, `"nano-banana-2-lite:official"`, `"nano-banana-2:official"`, `"nano-banana-pro:official"` | Model to use |
73
75
  | `prompt` | string | Image description or editing instruction |
74
76
  | `image_urls` | array of strings | Source image URLs (required for edit action) |
75
77
  | `aspect_ratio` | `"1:1"`, `"3:2"`, `"2:3"`, `"16:9"`, `"9:16"`, `"4:3"`, `"3:4"` | Output aspect ratio |
@@ -20,7 +20,7 @@ Generate AI music through AceDataCloud's Producer API.
20
20
  curl -X POST https://api.acedata.cloud/producer/audios \
21
21
  -H "Authorization: Bearer $ACEDATACLOUD_API_TOKEN" \
22
22
  -H "Content-Type: application/json" \
23
- -d '{"action": "generate", "prompt": "upbeat electronic dance track with synth leads"}'
23
+ -d '{"action": "generate", "lyric": "", "prompt": "upbeat electronic dance track with synth leads"}'
24
24
  ```
25
25
 
26
26
  > **Async:** All generation is async. See [async task polling](../_shared/async-tasks.md). Poll via `POST /producer/tasks` with `{"id": "..."}` every 3-5 seconds.
@@ -59,6 +59,7 @@ curl -X POST https://api.acedata.cloud/producer/audios \
59
59
  POST /producer/audios
60
60
  {
61
61
  "action": "generate",
62
+ "lyric": "",
62
63
  "prompt": "chill lo-fi hip hop with rain sounds and soft piano"
63
64
  }
64
65
  ```
@@ -72,6 +73,7 @@ POST /producer/audios
72
73
  "custom": true,
73
74
  "title": "Midnight City",
74
75
  "lyric": "[Verse]\nNeon lights reflect on wet streets\n[Chorus]\nMidnight city never sleeps",
76
+ "prompt": "nocturnal electronic pop",
75
77
  "instrumental": false
76
78
  }
77
79
  ```
@@ -82,6 +84,7 @@ POST /producer/audios
82
84
  POST /producer/audios
83
85
  {
84
86
  "action": "generate",
87
+ "lyric": "",
85
88
  "prompt": "epic orchestral soundtrack for a movie trailer",
86
89
  "instrumental": true
87
90
  }
@@ -94,6 +97,8 @@ POST /producer/audios
94
97
  {
95
98
  "action": "extend",
96
99
  "audio_id": "existing-audio-id",
100
+ "lyric": "",
101
+ "prompt": "",
97
102
  "continue_at": 30
98
103
  }
99
104
  ```
@@ -105,6 +110,8 @@ POST /producer/audios
105
110
  {
106
111
  "action": "replace_section",
107
112
  "audio_id": "existing-audio-id",
113
+ "lyric": "",
114
+ "prompt": "",
108
115
  "replace_section_start": 15,
109
116
  "replace_section_end": 30
110
117
  }
@@ -116,7 +123,9 @@ POST /producer/audios
116
123
  POST /producer/audios
117
124
  {
118
125
  "action": "stems",
119
- "audio_id": "existing-audio-id"
126
+ "audio_id": "existing-audio-id",
127
+ "lyric": "",
128
+ "prompt": ""
120
129
  }
121
130
  ```
122
131
 
@@ -152,13 +161,13 @@ POST /producer/upload
152
161
 
153
162
  | Parameter | Type | Description |
154
163
  |-----------|------|-------------|
155
- | `action` | string | See actions table |
156
- | `prompt` | string | Song description (for non-custom mode) |
164
+ | `action` | string | Required for every `/producer/audios` request; see actions table |
165
+ | `prompt` | string | Required for every `/producer/audios` request; use an empty string when an edit action does not use a prompt |
157
166
  | `model` | string | Model (e.g., `"FUZZ-2.0 Pro"`) |
158
167
  | `custom` | boolean | Enable custom lyrics mode |
159
168
  | `instrumental` | boolean | Pure instrumental (no vocals) |
160
169
  | `title` | string | Song title |
161
- | `lyric` | string | Custom lyrics with `[Verse]`, `[Chorus]` tags |
170
+ | `lyric` | string | Required for every `/producer/audios` request; custom lyrics use `[Verse]`, `[Chorus]` tags, otherwise use an empty string |
162
171
  | `audio_id` | string | Existing audio ID (for edit actions) |
163
172
  | `continue_at` | number | Seconds — where to extend from |
164
173
  | `replace_section_start` | number | Start time of section to replace |
@@ -164,7 +164,7 @@ POST /seedance/videos
164
164
  | `resolution` | `"480p"`, `"720p"`, `"1080p"`, `"4k"` | Output resolution. `4k` is `doubao-seedance-2-0-260128` (standard) only; `2-0-fast` / `2-0-mini` max out at `720p` (default: 720p for pro/2.0, 480p for lite) |
165
165
  | `ratio` | `"16:9"`, `"4:3"`, `"1:1"`, `"3:4"`, `"9:16"`, `"21:9"`, `"adaptive"` | Aspect ratio (default: 16:9) |
166
166
  | `duration` | `2` – `15` | Duration in seconds (Seedance 2.0 supports 4–15) |
167
- | `frames` | 29–361 (must satisfy 25+4n) | Frame count — mutually exclusive with `duration` |
167
+ | `frames` | 29–289 (must satisfy 25+4n) | Frame count — mutually exclusive with `duration` |
168
168
  | `seed` | -1 to 4294967295 | Seed for reproducible results (-1 = random) |
169
169
  | `generate_audio` | `true` / `false` | Generate audio (supported by `doubao-seedance-1-5-pro-251215` and the `doubao-seedance-2-0` series; other models ignore it) |
170
170
  | `camerafixed` | `true` / `false` | Fix the camera position during generation |
@@ -29,6 +29,7 @@ curl -X POST https://api.acedata.cloud/seedream/images \
29
29
  | Model | Version | Best For |
30
30
  |-------|---------|----------|
31
31
  | `doubao-seedream-5-0-260128` | Seedream 5.0 | Latest, highest quality (default) |
32
+ | `doubao-seedream-5-0-pro-260628` | Seedream 5.0 Pro | Highest-quality Seedream 5.0 model |
32
33
  | `doubao-seedream-4-5-251128` | Seedream 4.5 | High quality, balanced |
33
34
  | `doubao-seedream-4-0-250828` | Seedream 4.0 | Reliable generation |
34
35
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sora-video
3
- description: UNAVAILABLE — the Sora endpoints now return 404 and the service is unpublished; use veo-video, kling-video or seedance-video instead. Historical reference for AceDataCloud's OpenAI Sora API. Was used when creating videos from text prompts, generating videos from reference images, or using character references from existing videos. Supports text-to-video, image-to-video, and character-driven generation with multiple models and resolutions.
3
+ description: Generate AI videos with OpenAI Sora via AceDataCloud API. Use when creating videos from text prompts, generating videos from reference images, or using character references from existing videos. Supports text-to-video, image-to-video, and character-driven generation with multiple models and resolutions.
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: acedatacloud
@@ -10,13 +10,6 @@ compatibility: Requires ACEDATACLOUD_API_TOKEN in .env file (see _shared/authent
10
10
 
11
11
  # Sora Video Generation
12
12
 
13
- > [!WARNING]
14
- > **This service is currently unavailable.** `/sora/videos` and `/sora/tasks` return
15
- > `404 no Route matched with those values`, and the Sora service is no longer published
16
- > in the API catalog. The reference below is kept for historical accuracy only — do not
17
- > build against it. For video generation use [veo-video](../veo-video/SKILL.md),
18
- > [kling-video](../kling-video/SKILL.md) or [seedance-video](../seedance-video/SKILL.md).
19
-
20
13
  Generate AI videos through AceDataCloud's OpenAI Sora API.
21
14
 
22
15
  > **Setup:** See [authentication](../_shared/authentication.md) for token setup.
@@ -77,8 +70,8 @@ POST /sora/videos
77
70
  {
78
71
  "prompt": "the character walks through a futuristic city",
79
72
  "character_url": "https://example.com/source-video.mp4",
80
- "character_start": 2.0,
81
- "character_end": 5.0,
73
+ "character_start": 2,
74
+ "character_end": 5,
82
75
  "model": "sora-2-pro"
83
76
  }
84
77
  ```
@@ -101,4 +94,4 @@ POST /sora/videos
101
94
  - `orientation` sets the aspect ratio — use `"portrait"` for mobile-first content
102
95
  - Task states use `"succeeded"` (not "completed") — check for this value when polling
103
96
 
104
- > **MCP:** the hosted endpoint `https://sora.mcp.acedata.cloud/mcp` currently returns 503, in line with the service being unavailable. See [all MCP servers](../_shared/mcp-servers.md)
97
+ > **MCP:** `pip install mcp-sora` | Hosted: `https://sora.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
@@ -128,6 +128,7 @@ For best results follow this multi-step workflow:
128
128
  | `remaster` | Remaster an existing audio |
129
129
  | `mashup` | Blend multiple audio IDs together |
130
130
  | `samples` | Add samples to an uploaded song |
131
+ | `inspo` | Generate a song inspired by an existing audio |
131
132
 
132
133
  ## Auxiliary Endpoints
133
134
 
@@ -140,8 +141,11 @@ For best results follow this multi-step workflow:
140
141
  | `/suno/wav` | POST | Convert to lossless WAV format |
141
142
  | `/suno/midi` | POST | Extract MIDI data for DAW editing |
142
143
  | `/suno/vox` | POST | Extract vocal track (stem separation) |
144
+ | `/suno/voices` | POST | Create a reusable voice from an audio URL; requires `audio_url`, with optional `name` and `description` |
143
145
  | `/suno/timing` | POST | Get word-level timing/subtitles |
144
- | `/suno/persona` | POST | Save a vocal style as a reusable persona |
146
+ | `/suno/persona` | POST | Save a vocal style as a reusable persona; requires `audio_id` and `name` |
147
+ | `/suno/persona` | GET | List reusable personas |
148
+ | `/suno/persona` | DELETE | Delete a reusable persona |
145
149
  | `/suno/upload` | POST | Upload external audio for extend/cover |
146
150
  | `/suno/tasks` | POST | Query task status and results |
147
151
 
@@ -183,7 +187,7 @@ Ending lyrics
183
187
  - `variation_category` ("high"/"normal"/"subtle") is only supported on v5+ models
184
188
  - `duration` is forwarded as you send it — support varies by model and action, and an unsupported combination may ignore it or return an error, so verify with one request before batching. Note the request `duration` is a *target*; the `duration` in each returned clip is the *actual* length and will vary slightly
185
189
  - The `concat` action merges extended song segments — requires audio_id of the extended track
186
- - `persona` requires an existing audio_id to extract the vocal reference from
190
+ - `persona` requires an existing `audio_id` and a `name`; optional `vox_audio_id`, `vocal_start`, `vocal_end`, and `description` refine the vocal reference
187
191
  - Upload external audio via `/suno/upload` before using it with extend/cover
188
192
 
189
193
  > **MCP:** `pip install mcp-suno` | Hosted: `https://suno.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)
@@ -81,7 +81,7 @@ Then poll `POST /captcha/tasks` with the returned `task_id`:
81
81
 
82
82
  ```json
83
83
  POST /captcha/tasks
84
- {"id": "<task_id>"}
84
+ {"task_id": "<task_id>"}
85
85
  ```
86
86
 
87
87
  > **Async:** See [async task polling](../_shared/async-tasks.md) for the full polling contract.
@@ -107,11 +107,8 @@ POST /webextrator/tasks
107
107
  | `block_resources` | No | Drop `image`/`font`/`media`/`stylesheet`/`xhr`/`fetch` |
108
108
  | `headers` | No | Extra request headers for the target site |
109
109
  | `user_agent` | No | Override the browser User-Agent |
110
- | `cookies` | No | Cookies to install before navigation |
111
110
  | `async` | No | `true` submits without blocking; poll `/webextrator/tasks` for the result |
112
111
  | `callback_url` | No | Posted the final envelope when running asynchronously |
113
- | `bypass_cache` | No | Skip the Redis result cache for this request |
114
- | `cache_ttl_seconds` | No | Override cache TTL; `0` disables caching |
115
112
 
116
113
  ### Extract-only
117
114
 
@@ -135,6 +132,5 @@ POST /webextrator/tasks
135
132
  - `expected_type` only allows `product`/`article`/`general` — typed kinds (recipe/video/job) are detected automatically from schema.org
136
133
  - `enable_llm` has no effect when the page ships schema.org JSON-LD — the deterministic mapper wins for free
137
134
  - Tasks API is free and retains records for 7 days only
138
- - `cache_ttl_seconds: 0` means "do not cache" — use `bypass_cache` to skip read
139
135
 
140
136
  > **MCP:** `pip install mcp-webextrator` | Hosted: `https://webextrator.mcp.acedata.cloud/mcp` | See [all MCP servers](../_shared/mcp-servers.md)