# Flux Image Edits API Documentation Source: https://docs.ttapi.io/api/en/flux/edits openapi/en/flux.json POST /flux/edits Use the Flux image edits API to modify existing images with prompt-based changes, partial redraws, and visual refinements for production workflows. # Flux Result Fetch API Documentation Source: https://docs.ttapi.io/api/en/flux/fetch openapi/en/flux.json GET /flux/fetch Use the Flux fetch API to retrieve image generation task status, output URLs, and response payloads for asynchronous image workflows. # Flux.2[flex] API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-2-flex openapi/en/flux.json POST /bfl/v1/flux-2-flex Integrate the Flux.2[flex] API for high-quality AI image generation with balanced speed, flexibility, and prompt responsiveness. # Flux.2[klein] 4B API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-2-klein-4b openapi/en/flux.json POST /bfl/v1/flux-2-klein-4b Integrate the Flux.2[klein] 4B API for high-quality AI image generation with balanced speed, flexibility, and prompt responsiveness. # Flux.2[klein] 9B API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-2-klein-9b openapi/en/flux.json POST /bfl/v1/flux-2-klein-9b Integrate the Flux.2[klein] 9B API for high-quality AI image generation with balanced speed, flexibility, and prompt responsiveness. # Flux.2[max] API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-2-max openapi/en/flux.json POST /bfl/v1/flux-2-max Use the Flux.2[max] API to generate detailed, high-fidelity AI images for advanced creative, design, and visual production use cases. # Flux.2[pro] API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-2-pro openapi/en/flux.json POST /bfl/v1/flux-2-pro Use the Flux.2[pro] API for professional AI image generation with stronger prompt understanding and reliable visual output quality. # Generate a video with FLUX 3 Source: https://docs.ttapi.io/api/en/flux/flux-3-video openapi/en/flux.json POST /bfl/v1/flux-3-video Generate videos with FLUX 3 in BFL official format. Supports text-to-video, image/keyframe-to-video, video continuation, and draft enhance workflows. Official documentation # Flux.1[dev] API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-dev openapi/en/flux.json POST /bfl/v1/flux-dev Use the Flux.1[dev] API to test, prototype, and automate AI image generation workflows during development and product integration. # Flux Kontext Max API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-kontext-max openapi/en/flux.json POST /bfl/v1/flux-kontext-max Use the Flux Kontext Max API for context-aware image generation and editing with stronger control over complex prompts and visual consistency. # Flux.1 Kontext[pro] API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-kontext-pro openapi/en/flux.json POST /bfl/v1/flux-kontext-pro Integrate the Flux.1 Kontext[pro] API for advanced context-aware image generation suited to controlled, professional visual creation workflows. # Flux.1[pro] API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-pro openapi/en/flux.json POST /bfl/v1/flux-pro Use the Flux.1[pro] API for professional text-to-image generation across design, product marketing, creative automation, and visual content workflows. # Flux.1.1[pro] API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-pro-1.1 openapi/en/flux.json POST /bfl/v1/flux-pro-1.1 Use the Flux.1.1[pro] API for high-quality AI image generation with stable output, strong prompt alignment, and production-ready results. # Flux.1.1[pro] Ultra API Documentation Source: https://docs.ttapi.io/api/en/flux/flux-pro-1.1-ultra openapi/en/flux.json POST /bfl/v1/flux-pro-1.1-ultra Use the Flux.1.1[pro] Ultra API to generate high-resolution AI images with stronger detail, clarity, and premium output quality. # Flux Image Generation API Documentation Source: https://docs.ttapi.io/api/en/flux/generate openapi/en/flux.json POST /flux/generate Use the Flux image generation API to create high-quality images from text prompts for creative, product, and automated visual workflows. # Flux API Documentation Source: https://docs.ttapi.io/api/en/flux/index Explore the full Flux API on TTAPI, including Flux image generation, image edits, fetch, and official model endpoints such as Flux Pro, Flux Dev, Flux Kontext, and Flux.2. # Flux API The **Flux API** on TTAPI gives developers a complete entry point for Flux image generation, image edits, async fetch, and official model-specific endpoints. ## Flux.2 Overview **FLUX.2** spans the full spectrum of image generation—from sub-second inference with \[klein] to highest quality with \[max]. Generate photorealistic images with precise control over colors, poses, and composition, or edit existing images by referencing up to 10 sources simultaneously. Choose \[klein] for real-time, high-volume generation, \[pro] for production at scale, \[flex] for fine-grained control, or \[max] for maximum quality and grounding search. ## Compare FLUX.2 Models Sub-second inference. Our fastest models with open weights. Maximum performance. Highest editing consistency across tasks. Vast world knowledge. Strongest prompt following and faithful style representation. Top performance at affordable price. The high quality, production-grade image editing and generation model. Specialized for typography. Best for text rendering and preserving small details. ## What You Can Build With The Flux API * Generate images through the [Flux Generate API](/api/en/flux/generate) * Edit images with the [Flux Edits API](/api/en/flux/edits) * Fetch async results with the [Flux Fetch API](/api/en/flux/fetch) * Use official model endpoints such as [Flux Pro](/api/en/flux/flux-pro), [Flux Dev](/api/en/flux/flux-dev), [Flux Kontext Pro](/api/en/flux/flux-kontext-pro), and [Flux 2 Pro](/api/en/flux/flux-2-pro) * Generate videos through the [Flux 3 Video API](/api/en/flux/flux-3-video) for text-to-video, image-to-video, video continuation, and draft enhance workflows ## Popular Flux API Endpoints | Use case | Endpoint | | :- | :- | | Image generation | [Flux Generate API](/api/en/flux/generate) | | Image editing | [Flux Edits API](/api/en/flux/edits) | | Result fetch | [Flux Fetch API](/api/en/flux/fetch) | | Official model endpoint | [Flux Pro API](/api/en/flux/flux-pro) | | Video generation | [Flux 3 Video API](/api/en/flux/flux-3-video) | ## Recommended Workflow 1. Start with the [Flux Generate API](/api/en/flux/generate) for TTAPI-format generation. 2. Use [Flux Edits](/api/en/flux/edits) when your workflow edits existing images. 3. Use [Flux Fetch](/api/en/flux/fetch) for async jobs. 4. Use [Flux 3 Video](/api/en/flux/flux-3-video) when your workflow generates or continues video. 5. Use model-specific endpoints when you need one official Flux model family. # Get flux 3 video result Source: https://docs.ttapi.io/api/en/flux/video-result openapi/en/flux.json GET /bfl/v1/fetch # Fetch Result Source: https://docs.ttapi.io/api/en/gemini/fetch openapi/en/gemini.json get /gemini/image/fetch # Nano Banana Image Generation API | Nano Banana, Nano Banana 2, Nano Banana Pro Source: https://docs.ttapi.io/api/en/gemini/generate openapi/en/gemini.json POST /gemini/image/generate Generate images with the Nano Banana API using Nano Banana, Nano Banana 2, Nano Banana 2 Lite, and Nano Banana Pro, including official Gemini model names such as gemini-2.5-flash-image, gemini-3-pro-image-preview, gemini-3.1-flash-image, and gemini-3.1-flash-lite-image. Use this endpoint when you want the main **Nano Banana API** image generation workflow for **Nano Banana**, **Nano Banana 2**, or **Nano Banana Pro**. For the full family overview and model comparison, see the [Nano Banana API overview](/api/en/gemini) and the [Nano Banana Models Guide](/grids/en/start/nano-banana-models-guide). Since Nano Banana image generation is a synchronous response and takes a relatively long time, it is recommended to use the **[https://api.ttapi.org](https://api.ttapi.org)** gateway. ## Available Models | Model | Alias | | :- | :- | | `gemini-2.5-flash-image` | `Nano Banana` | | `gemini-3-pro-image-preview` | `Nano Banana Pro` | | `gemini-3.1-flash-image` | `Nano Banana 2` | | `gemini-3.1-flash-lite-image` | `Nano Banana 2 Lite` | # Nano Banana API Documentation | Nano Banana, Nano Banana 2, Nano Banana Pro Source: https://docs.ttapi.io/api/en/gemini/index Use the Nano Banana API on TTAPI for prompt-based image generation, reference-image workflows, and model selection across Nano Banana, Nano Banana 2, Nano Banana 2 Lite, and Nano Banana Pro. # Nano Banana API This page exists for a very practical reason: teams often talk about these models as **Nano Banana**, **Nano Banana 2**, or **Nano Banana Pro**, while the actual request payload uses Gemini model names. If you have ever had a product manager say "ship it on Nano Banana Pro" while the engineer is staring at `gemini-3-pro-image-preview`, this is the bridge between those two naming systems. On TTAPI, the Nano Banana family is the product-facing layer for Gemini image generation models. Use this page to decide which model line you want, then go to the generate endpoint once that choice is clear. ## Get Started * [Nano Banana Generate API](/api/en/gemini/generate) * [Nano Banana Models Guide](/grids/en/start/nano-banana-models-guide) * [Gateway & Auth](/grids/en/development/authentication) * [Image Pricing](/grids/en/start/pricing/image#gemini) ## Key Features ### One product family, multiple model lines TTAPI groups several Gemini image models under the Nano Banana family. That makes it easier to document them as one product, while still letting engineers choose the exact model variant in the request. ### Direct response flow Nano Banana generation is synchronous. You do not submit a job and come back later with a fetch call. The request stays open until the image result is ready, which makes the integration simpler but also means your gateway choice matters more for longer-running requests. ### Reference-image support The endpoint supports `refer_images`, so this is not only a plain prompt-to-image surface. It also works well for guided edits, style anchoring, and "make something in the spirit of these references" workflows. ### Request-time visual controls Fields such as `aspect_ratio`, `image_size`, and supported search options are handled directly in the request schema. That is useful when your product needs several output shapes without building a separate orchestration layer on top. ## Model Family | Product family | Official model name | How teams usually use it | | :- | :- | :- | | `Nano Banana` | `gemini-2.5-flash-image` | Good default for broad prompt testing and general image generation | | `Nano Banana 2` | `gemini-3.1-flash-image` | Better fit when you want the newer flash model line rather than the older baseline | | `Nano Banana 2 Lite` | `gemini-3.1-flash-lite-image` | Lightweight, lowest-cost Nano Banana 2 tier for high-volume generation where speed and price matter more than top-end quality | | `Nano Banana Pro` | `gemini-3-pro-image-preview` | Better fit for art-directed work, higher-end marketing visuals, or cases where quality matters more than iteration speed | If your internal docs, dashboard labels, or customer-facing copy use Nano Banana names, that is fine. Just make sure the actual API request uses the official model value expected by the endpoint. ## Authentication And Base URL Nano Banana image generation is synchronous, so the request remains open until the image is ready. * Base URL: `https://api.ttapi.org` * Header: `TT-API-KEY: YOUR_API_KEY` * Content-Type: `application/json` The [Generate endpoint](/api/en/gemini/generate) recommends `https://api.ttapi.org` for these longer-running image requests. That recommendation matters more here than on lightweight metadata endpoints. ## Example Request ```bash theme={null} curl --request POST 'https://api.ttapi.org/gemini/image/generate' \ --header 'Content-Type: application/json' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' \ --data-raw '{ "prompt": "editorial product photo of a matte black perfume bottle on wet basalt", "model": "gemini-3-pro-image-preview", "aspect_ratio": "4:5", "image_size": "2K" }' ``` In a real product flow, the usual sequence is simple: choose the model, shape the output with fields like `aspect_ratio` and `image_size`, optionally pass `refer_images`, then consume the returned `image_url`. ## Use Cases * Marketing and e-commerce teams generating polished product stills without building a queue-based image system * Design assistants that need quick prompt iteration first, then a higher-quality pass on `Nano Banana Pro` * Reference-guided generation where users provide style boards, product shots, or composition references through `refer_images` * Internal creative tooling where the business side thinks in Nano Banana family names, but engineering needs a precise Gemini model mapping ## Choosing The Right Model * Choose `Nano Banana` when you want the safest default and a broad baseline for prompt exploration. * Choose `Nano Banana 2` when your team wants the newer flash-family behavior specifically. * Choose `Nano Banana Pro` when the output is closer to final deliverable quality than rough ideation. There is no universal "best" model across all cases. Most teams get better results by deciding whether the current task is about speed, iteration, or quality before they decide which Nano Banana label to use. ## FAQ ### Is Nano Banana the same as Gemini image API on TTAPI? Nano Banana is the TTAPI product-facing label for a set of Gemini image models. That is why one page talks in Nano Banana family names while the request payload still expects Gemini model values. ### Does Nano Banana support reference images? Yes. The endpoint supports `refer_images`, which is why Nano Banana works for guided visual generation and not only plain prompt-only requests. ### My team says "use Nano Banana Pro." What should the API request actually send? Use `gemini-3-pro-image-preview`. That is the concrete model value behind the Nano Banana Pro label. ### Which page should I open next? If you already know which model you want, go straight to the [Nano Banana Generate API](/api/en/gemini/generate). If you are still comparing the model family, keep this page open and cross-check with the [Nano Banana Models Guide](/grids/en/start/nano-banana-models-guide). # Gemini Video Extend API Source: https://docs.ttapi.io/api/en/gemini/video-extend openapi/en/gemini.json POST /gemini/video/extend Extend a completed Gemini video task by jobId and receive a new asynchronous jobId. Video extension is asynchronous. Use a `jobId` from a completed Gemini video task; the endpoint returns a new `jobId` to fetch with the [Video Fetch API](/api/en/gemini/video-fetch). The `omni-flash` model does not support extension. # Gemini Video Fetch API Source: https://docs.ttapi.io/api/en/gemini/video-fetch openapi/en/gemini.json get /gemini/video/fetch Query the status and result of a Gemini video generation job by jobId. # Gemini Video Generation API Source: https://docs.ttapi.io/api/en/gemini/video-generations openapi/en/gemini.json POST /gemini/video/generations Submit an asynchronous Gemini Video API generation job and use the returned jobId to fetch the result. Video generation is asynchronous. After a successful submission, use the returned `jobId` with the [Video Fetch API](/api/en/gemini/video-fetch). # Video Extension Source: https://docs.ttapi.io/api/en/grok/extensions openapi/en/grok.json POST /grok/extensions Extend a video by generating continuation content. This is an asynchronous operation that returns a jobId for querying results. This is the video extension endpoint of the **Grok Video API**, which extends a video by generating continuation content. **Warning**: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges. If you want to see the full API catalog, recommended integration workflow and related capabilities, please read [Grok Video API Overview](/api/en/grok). # Grok Video Result Source: https://docs.ttapi.io/api/en/grok/fetch openapi/en/grok.json get /grok/fetch Query current task generation results by jobId # First Frame to Video Source: https://docs.ttapi.io/api/en/grok/first-frame-to-video openapi/en/grok-first-frame-to-video.json POST /grok/generations First frame to video - Specify the first frame image using first_frame This is the **Grok Video API** first frame to video endpoint. Specify the first frame of the video using `first_frame`. Only supported by `grok-imagine-video-1.5-fast`. **Warning**: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges. # First & Last Frame to Video Source: https://docs.ttapi.io/api/en/grok/first-last-frame-to-video openapi/en/grok-first-last-frame-to-video.json POST /grok/generations First & last frame to video - Specify both first_frame and last_frame This is the **Grok Video API** first & last frame to video endpoint. Specify both `first_frame` and `last_frame` simultaneously. Only supported by `grok-imagine-video-1.5-fast`. When both frames use the same image, it creates a loop effect. **Warning**: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges. # Grok Video API Documentation Source: https://docs.ttapi.io/api/en/grok/index Explore the Grok Video API on TTAPI, including video generation and fetch endpoints for prompt-based AI video workflows. # Grok Video API The **Grok video API** on TTAPI gives developers a simple way to submit prompt-based video generation requests and fetch asynchronous results. If you are searching for **Grok Video API documentation**, start here and then continue to the generation or fetch endpoint that matches your workflow. ## What You Can Build With The Grok Video API * Generate videos from prompts with the [Grok Generations API](/api/en/grok/generations) (UnOfficial) * Retrieve async results with the [Grok Fetch API](/api/en/grok/fetch) (UnOfficial) * Generate videos from images with the [Grok Video Generations API](/api/en/grok/video-generations) (Official) * Retrieve official async results with the [Grok Video Fetch API](/api/en/grok/video-fetch) (Official) ## Grok Video API Endpoints | Use case | Endpoint | | :- | :- | | Text to video generation (UnOfficial) | [Grok Generations API](/api/en/grok/generations) | | Task polling (UnOfficial) | [Grok Fetch API](/api/en/grok/fetch) | | Image to video generation (Official) | [Grok Video Generations API](/api/en/grok/video-generations) | | Task polling (Official) | [Grok Video Fetch API](/api/en/grok/video-fetch) | ## Recommended Grok Video API Workflow 1. Submit a job through the [Grok Generations API](/api/en/grok/generations) (UnOfficial) or [Grok Video Generations API](/api/en/grok/video-generations) (Official). 2. Poll the task with the corresponding Fetch API until the result is ready. ## Before You Integrate * Review [Gateway & Auth](/grids/en/development/authentication) so Grok Video requests include the correct `TT-API-KEY`. * Review [Video Pricing](/grids/en/start/pricing/video) before enabling production video workloads. ## Why Use TTAPI For Grok Video API Access * Unified access to Grok and other video APIs * Stable async task submission and fetch flow ## Grok Video API FAQ ### Which endpoint should I start with? Start with the [Grok Generations API](/api/en/grok/generations), because it is the main submission endpoint. ### How do I check job results? Use the [Grok Fetch API](/api/en/grok/fetch) to retrieve asynchronous generation results. ### Which page should I read after this overview? Most teams continue with the [Grok Generations API](/api/en/grok/generations) and [Grok Fetch API](/api/en/grok/fetch), because those pages define the main submission and async retrieval flow. # Last Frame to Video Source: https://docs.ttapi.io/api/en/grok/last-frame-to-video openapi/en/grok-last-frame-to-video.json POST /grok/generations Last frame to video - Specify the last frame image using last_frame This is the **Grok Video API** last frame to video endpoint. Specify the last frame of the video using `last_frame`. Only supported by `grok-imagine-video-1.5-fast`. **Warning**: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges. # Reference to Video Source: https://docs.ttapi.io/api/en/grok/reference-to-video openapi/en/grok-reference-to-video.json POST /grok/generations Reference to video - Generate videos using refer_images and reference_audios This is the **Grok Video API** reference to video endpoint. Use `refer_images` for reference images or `reference_audios` for voice characters, combined with `prompt` to generate videos. **Warning**: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges. # Text to Video Source: https://docs.ttapi.io/api/en/grok/text-to-video openapi/en/grok-text-to-video.json POST /grok/generations Text to video - Generate videos from prompt only This is the **Grok Video API** text to video endpoint. Generate videos from `prompt` only, without any media files. **Warning**: NSFW content is not allowed. A single or occasional moderation failure will not incur any charges. However, repeated moderation failures may result in charges. # Video Extension-Official Source: https://docs.ttapi.io/api/en/grok/video-extensions openapi/en/grok_video.json POST /grok/v1/videos/extensions Extend a video by generating continuation content. This is an asynchronous operation that returns a request_id for polling. **Note**: Following official rules, content moderation failures will also incur charges. # Query Video Results-Official Source: https://docs.ttapi.io/api/en/grok/video-fetch openapi/en/grok_video.json GET /grok/v1/videos/{request_id} Query video generation results # Generate Video-Official Source: https://docs.ttapi.io/api/en/grok/video-generations openapi/en/grok_video.json POST /grok/v1/videos/generations Grok video generation API. grok-imagine-video supports text-to-video (T2V) and image-to-video (I2V); grok-imagine-video-1.5 only supports image-to-video (I2V), image is required. **Note**: Following official rules, content moderation failures will also incur charges. # Edit Image Source: https://docs.ttapi.io/api/en/grokimage/editimage openapi/en/grokimage.json POST /grok/image/edits Edit images This is the edit endpoint of the **Grok Image API**. # Grok Result Source: https://docs.ttapi.io/api/en/grokimage/fetch openapi/en/grokimage.json post /grok/image/fetch Query current task generation result by jobId # Text to Image Source: https://docs.ttapi.io/api/en/grokimage/image openapi/en/grokimage.json POST /grok/image Text to image generation This is the core generation interface of the **Grok Image API** # Query Task Result Source: https://docs.ttapi.io/api/en/happyhorse/fetch openapi/en/happyhorse.json GET /happyhorse/api/v1/tasks/{task_id} Query Task Result - Query the status and result of video generation task by task ID # Text-to-Video Source: https://docs.ttapi.io/api/en/happyhorse/generations openapi/en/happyhorse.json POST /happyhorse/api/v1/services/aigc/video-generation/video-synthesis Text-to-Video - Generate video from text prompt This is the **HappyHorse Video API** text-to-video interface. # Image-to-Video - First Frame Source: https://docs.ttapi.io/api/en/happyhorse/image-to-video openapi/en/happyhorse-image-to-video.json POST /happyhorse/api/v1/services/aigc/video-generation/video-synthesis Image-to-Video - Generate video based on first-frame images This is the **HappyHorse Video API** image-to-video interface, generating videos based on first-frame images. # HappyHorse Video API Documentation Source: https://docs.ttapi.io/api/en/happyhorse/index View HappyHorse Video API documentation, including text-to-video, image-to-video, reference-to-video, video editing and task query interfaces, suitable for AI video application integration. # HappyHorse Video API This is the **HappyHorse Video API** overview page. Here you can quickly learn about HappyHorse's various video generation and editing capabilities and access the specific API documentation. ## What Can HappyHorse Video API Do HappyHorse provides multiple video generation and editing capabilities to meet different scenarios: * **Text-to-Video**: Generate high-quality videos directly from text prompts * **Image-to-Video (First Frame)**: Generate videos based on a single first-frame image * **Reference-to-Video**: Generate videos based on multiple reference images (1-9 images), supporting character reference through identifiers * **Video Editing**: Edit based on existing videos and reference images, supporting style transfer, partial replacement, etc. * **Task Query**: Query the status and results of asynchronous video generation tasks ## Common HappyHorse Video API Interfaces | Use Case | Interface | Description | | :- | :- | :- | | Text-to-Video | [Generations API](/api/en/happyhorse/generations) | Generate video from text prompt | | Image-to-Video | [Image-to-Video API](/api/en/happyhorse/image-to-video) | Generate video from first-frame image | | Reference-to-Video | [Reference-to-Video API](/api/en/happyhorse/reference-to-video) | Generate video from multiple reference images | | Video Editing | [Video Edit API](/api/en/happyhorse/video-edit) | Edit video with video and reference images | | Query Task Result | [Fetch API](/api/en/happyhorse/fetch) | Query asynchronous task status and results | ## Recommended Integration Flow ### Text-to-Video / Image-to-Video / Reference-to-Video / Video Editing 1. Select the appropriate generation interface based on your needs (text-to-video, image-to-video, reference-to-video, or video editing) 2. Call the corresponding generation API to submit a task, get `task_id` 3. Use [Fetch API](/api/en/happyhorse/fetch) to poll for task status 4. When `task_status` is `SUCCEEDED`, get the video URL from the response ### Task Status Description * `PENDING`: Task is queued * `RUNNING`: Task is processing * `SUCCEEDED`: Task completed successfully * `FAILED`: Task failed * `CANCELED`: Task was canceled * `UNKNOWN`: Task does not exist or status is unknown ## Why Use HappyHorse Video API * **Multiple Generation Modes**: Supports text-to-video, image-to-video, reference-to-video, video editing and more * **High-Quality Output**: Supports 720P/1080P resolution with various aspect ratio options * **Flexible Control**: Supports duration control, seed setting, watermark toggle and other parameters * **Unified Gateway**: Uses unified API gateway and authentication mechanism * **Complete Lifecycle**: Provides complete task submission, query, and result retrieval workflow ## HappyHorse Video API FAQ ### Which interface is best for new users to start with? We recommend starting with [Generations API](/api/en/happyhorse/generations) (text-to-video), which is the most basic and commonly used interface. ### What's the difference between Image-to-Video and Reference-to-Video? * **Image-to-Video**: Generates videos based on a single first-frame image, suitable for scenarios that need to start from a specific frame * **Reference-to-Video**: Generates videos based on multiple reference images (1-9 images), supporting character references through identifiers like character1, character2, etc., suitable for complex scenarios with multiple characters or elements ### What functions does Video Editing support? Supports style transfer, partial replacement and other editing functions. Requires providing the video to edit (required) and optional reference images (0-5), describing the editing intent through text prompts. ### How to query task results? Use [Fetch API](/api/en/happyhorse/fetch) to query the final result of asynchronous tasks. Note that: * `task_id` is valid for 24 hours * Video URL is retained for only 24 hours, and will be automatically deleted after timeout, please save generated videos promptly ### How long are the generated videos? * Text-to-Video / Image-to-Video / Reference-to-Video: 3-15 seconds (customizable) * Video Editing: Output video duration 3-15 seconds (consistent with input when input video ≤15 seconds, truncates to first 15 seconds when input >15 seconds) ### What resolutions and aspect ratios are supported? * **Resolution**: 720P, 1080P * **Aspect Ratio**: 16:9, 9:16, 3:4, 4:3, 1:1 # Reference-to-Video Source: https://docs.ttapi.io/api/en/happyhorse/reference-to-video openapi/en/happyhorse-reference-to-video.json POST /happyhorse/api/v1/services/aigc/video-generation/video-synthesis Reference-to-Video - Generate video based on multiple reference images This is the **HappyHorse Video API** reference-to-video interface, generating videos based on multiple reference images. # Video Editing Source: https://docs.ttapi.io/api/en/happyhorse/video-edit openapi/en/happyhorse-video-edit.json POST /happyhorse/api/v1/services/aigc/video-generation/video-synthesis Video Editing - Edit video based on videos and reference images This is the **HappyHorse Video API** video editing interface, editing videos based on videos and reference images. # Midjourney Image Actions API Documentation Source: https://docs.ttapi.io/api/en/midjourney/action openapi/en/midjourney.json POST /midjourney/v1/action Use the Midjourney image actions API to upscale, vary, rerun, or continue working from existing Midjourney image results. # Midjourney Blend API Documentation Source: https://docs.ttapi.io/api/en/midjourney/blend openapi/en/midjourney.json POST /midjourney/v1/blend Use the Midjourney Blend API to combine multiple reference images into a single generated result with merged visual traits and style cues. # Midjourney Describe API Documentation Source: https://docs.ttapi.io/api/en/midjourney/describe openapi/en/midjourney.json POST /midjourney/v1/describe Use the Midjourney Describe API to turn an uploaded image into reusable prompt suggestions for reverse prompting and creative analysis. # Midjourney Task Result API Documentation Source: https://docs.ttapi.io/api/en/midjourney/fetch openapi/en/midjourney.json GET /midjourney/v1/fetch Use the Midjourney task result API to fetch generation status, output data, and image result URLs in asynchronous image workflows. # Midjourney Imagine API Documentation Source: https://docs.ttapi.io/api/en/midjourney/imagine openapi/en/midjourney.json POST /midjourney/v1/imagine Use the Midjourney Imagine API to generate images from prompts or references for creative tooling, design workflows, and visual content production. Start here if you need the main endpoint for **Midjourney API** image generation. For the complete endpoint directory, workflow guidance, and related links, see the [Midjourney API overview](/api/en/midjourney). # Midjourney API Documentation Source: https://docs.ttapi.io/api/en/midjourney/index Build Midjourney image generation workflows on TTAPI with imagine, action, blend, describe, seed, inpaint, and fetch. # Midjourney API Most Midjourney integrations are straightforward at the submit step and messy after the first result comes back. This page is meant to reduce that confusion. If you are starting from a text prompt, use **Imagine**. If you already have a finished grid and want to keep working from it, use **Action**. If the workflow starts from several source images, use **Blend**. If you need to change only one part of an image, use **Inpaint**. On TTAPI, those workflows live under one Midjourney API family, with **Fetch** handling the async part in the middle. ## Get Started * [Midjourney API Quickstart](/grids/en/start/midjourney-api-quickstart) * [Midjourney Imagine API](/api/en/midjourney/imagine) * [Midjourney Fetch API](/api/en/midjourney/fetch) * [Midjourney Action API](/api/en/midjourney/action) * [Gateway & Auth](/grids/en/development/authentication) * [Image Pricing](/grids/en/start/pricing/image#midjourney) ## Key Features ### Start from text, then keep the workflow alive [Midjourney Imagine](/api/en/midjourney/imagine) is the normal starting point. It creates the initial grid and gives you the job handle you need for everything that follows. In practice, that means your app can treat Imagine as the "create" step and Fetch or Action as the "continue" step. ### Async handling that matches real product flows Midjourney generation is asynchronous. You submit the job, store the returned identifier, then poll [Midjourney Fetch](/api/en/midjourney/fetch) or use a `hookUrl`. This matters because most product bugs around Midjourney are not prompt bugs, they are state-management bugs: missing job storage, polling the wrong id, or trying to trigger follow-up actions before the first grid is done. ### Action-based continuation after the first grid Once a job completes, [Midjourney Action](/api/en/midjourney/action) lets you continue from that result instead of starting over. That is where upscales, variations, rerolls, pan, and zoom belong. If your product has U/V-style controls or "make this one stronger" buttons, Action is usually the endpoint behind them. ### Multiple entry points for non-standard workflows Not every Midjourney integration starts from a clean text prompt. [Blend](/api/en/midjourney/blend) is useful when the user begins with multiple reference images. [Describe](/api/en/midjourney/describe) helps when the user has an image but not a usable prompt yet. [Seed](/api/en/midjourney/seed) is practical for prompt testing and reproducibility. [Inpaint](/api/en/midjourney/inpaint) is the right choice when you want to preserve most of the image and only regenerate a selected area. ## Authentication And Base URL All Midjourney API requests on TTAPI use the same gateway and auth pattern. * Base URL: `https://api.ttapi.io` * Header: `TT-API-KEY: YOUR_API_KEY` * Content-Type: `application/json` ## Recommended Workflow The most common production path looks like this: 1. Submit `POST /midjourney/v1/imagine`. 2. Save the returned job identifier as soon as the request succeeds. 3. Poll `GET /midjourney/v1/fetch?jobId=...` until the job finishes. 4. Read `components`, output image URLs, and other metadata from the fetch payload. 5. If the user wants to continue from the completed result, call [Midjourney Action](/api/en/midjourney/action). One detail that trips teams up: the submit response returns a `jobId` field inside `data`, but the polling endpoint expects that same value as the `jobId` query parameter. Store it once, then reuse it consistently. ### Example Request ```bash theme={null} curl --request POST 'https://api.ttapi.io/midjourney/v1/imagine' \ --header 'Content-Type: application/json' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' \ --data-raw '{ "prompt": "cinematic portrait of an astronaut in neon rain", "mode": "fast" }' ``` ### Example Fetch ```bash theme={null} curl --request GET 'https://api.ttapi.io/midjourney/v1/fetch?jobId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' ``` When Fetch succeeds, the payload can include the final image URLs, the list of executable `components`, and metadata like `seed`. That is usually enough to drive the next UI state without another custom lookup layer. ## Use Cases * Creative review tools that generate a first grid, then let users request variations or upscales on demand * Campaign or catalog workflows where teams iterate through several prompt directions before choosing one branch to continue * Moodboard or art-direction tools that start from multiple reference images through [Blend](/api/en/midjourney/blend) * Prompt-research workflows that use [Describe](/api/en/midjourney/describe) and [Seed](/api/en/midjourney/seed) to make outputs easier to analyze and repeat * Visual editing tools that need selective repainting instead of full regeneration through [Inpaint](/api/en/midjourney/inpaint) ## Core Endpoints | Use case | Best page | | :- | :- | | Start a new prompt-based job | [Midjourney Imagine API](/api/en/midjourney/imagine) | | Continue a completed result | [Midjourney Action API](/api/en/midjourney/action) | | Combine several source images | [Midjourney Blend API](/api/en/midjourney/blend) | | Turn an image into prompt text | [Midjourney Describe API](/api/en/midjourney/describe) | | Look up the seed from a finished job | [Midjourney Seed API](/api/en/midjourney/seed) | | Regenerate only one part of an image | [Midjourney Inpaint API](/api/en/midjourney/inpaint) | | Poll task status and outputs | [Midjourney Fetch API](/api/en/midjourney/fetch) | ## FAQ ### Which Midjourney endpoint should I start with? If the user is starting from a fresh prompt, start with [Midjourney Imagine](/api/en/midjourney/imagine). That is the normal entry point for a new generation. ### When should I use Action instead of Inpaint? Use [Midjourney Action](/api/en/midjourney/action) when you want to continue a completed result with built-in follow-up operations like upscale, variation, reroll, pan, or zoom. Use [Midjourney Inpaint](/api/en/midjourney/inpaint) when you want to keep most of the image and only change a selected area with a mask. ### How do I get task results reliably? Store the job identifier from the initial submit call immediately, then use [Midjourney Fetch](/api/en/midjourney/fetch) with that same value. In most apps, losing the job id is a bigger operational problem than the generation itself. ### Do I need Blend or Describe for a normal text-to-image flow? No. For a standard prompt-first workflow, [Imagine](/api/en/midjourney/imagine) plus [Fetch](/api/en/midjourney/fetch) is enough. Use [Blend](/api/en/midjourney/blend) or [Describe](/api/en/midjourney/describe) only when the workflow starts from images rather than text. # Midjourney Inpaint API Documentation Source: https://docs.ttapi.io/api/en/midjourney/inpaint openapi/en/midjourney.json POST /midjourney/v1/inpaint Use the Midjourney Inpaint API to edit or regenerate selected regions of an image while preserving the rest of the composition. # Midjourney Seed Lookup API Documentation Source: https://docs.ttapi.io/api/en/midjourney/seed openapi/en/midjourney.json POST /midjourney/v1/seed Use the Midjourney seed lookup API to retrieve seed values from generated images for reproducibility, testing, and prompt iteration. # Midjourney Edit Result Source: https://docs.ttapi.io/api/en/midjourneyedit/fetch openapi/en/midjourneyedit.json get /midjourney/image-edits/fetch Query image editing task result, **this endpoint does not consume quota, free to use** # Midjourney Image Edit Source: https://docs.ttapi.io/api/en/midjourneyedit/submit openapi/en/midjourneyedit.json POST /midjourney/image-edits/submit Generate four images based on image and description, **asynchronous task** Midjourney's official image editing feature includes built-in cropping, so editable images must use supported aspect ratios. The currently supported ratios are 1:1, 1:2, 2:1, 2:3, 3:2, 3:4, 4:3, 9:16, and 16:9. If an uploaded image does not match one of these ratios, the system automatically adjusts it before generating a new image. # NovelAI Result Fetch API Documentation Source: https://docs.ttapi.io/api/en/novel/fetch openapi/en/novel.json get /novelai/fetch Use the NovelAI fetch API to retrieve image generation task status, output URLs, and response payloads for asynchronous image workflows. # NovelAI Image to Image API Documentation Source: https://docs.ttapi.io/api/en/novel/image-to-image openapi/en/novel.json POST /novelai/image-to-image Use the NovelAI image-to-image API to transform reference images with style transfer, redraw workflows, and anime-focused visual generation. # NovelAI Text to Image API Documentation Source: https://docs.ttapi.io/api/en/novel/text-to-image openapi/en/novel.json POST /novelai/text-to-image Use the NovelAI text-to-image API to generate anime-style images from prompts for characters, illustrations, concept art, and creative ideation. Focused on anime-style image generation, supporting text-to-image, sketch-to-final, and image redraw functionalities. # GPT-Image Result [Unofficial] Source: https://docs.ttapi.io/api/en/openai/gpt-fetch openapi/en/openai.json get /openai/gpt/fetch Query image generation result # GPT-Image Generation [Unofficial] Source: https://docs.ttapi.io/api/en/openai/gpt-generations openapi/en/openai.json POST /openai/gpt/generations Generate images based on text prompts and image resources # OpenAI Images Edits Source: https://docs.ttapi.io/api/en/openai/images-edits openapi/en/openai.json POST /v1/images/edits Create an edited or extended image from one or more source images and a prompt. The endpoint follows the official OpenAI Images API request and response shape for `POST /v1/images/edits`. Documentation translated from the official documentation. Supported models include `gpt-image-2`, `gpt-image-1.5`, `gpt-image-1`, and `dall-e-2`. Since OpenAI image editing is a synchronous response and takes a relatively long time, it is recommended to use the **[https://api.ttapi.org](https://api.ttapi.org)** gateway. # OpenAI Images Generations Source: https://docs.ttapi.io/api/en/openai/images-generations openapi/en/openai.json POST /v1/images/generations Create images from a text prompt using OpenAI-compatible image models. The endpoint follows the official OpenAI Images API request and response shape for `POST /v1/images/generations`. Documentation translated from the official documentation. Supported models include `gpt-image-2.5-flare`, `gpt-image-2.5-sunburst`, `gpt-image-2`, `gpt-image-1.5`, `gpt-image-1`, `dall-e-2`, and `dall-e-3`. Since OpenAI image generation is a synchronous response and takes a relatively long time, it is recommended to use the **[https://api.ttapi.org](https://api.ttapi.org)** gateway. # OpenAI Image API Documentation Source: https://docs.ttapi.io/api/en/openai/index Explore OpenAI image API endpoints on TTAPI, including image generation, image edits, GPT-4o image generation, and image fetch workflows. # OpenAI Image API The **OpenAI image API** on TTAPI gives developers one place to access image generation, image editing, GPT-4o image generation, and image result retrieval endpoints. If you are searching for **OpenAI image API documentation**, start here and then open the endpoint that matches your workflow. ## What You Can Build With The OpenAI Image API * Generate images with the [OpenAI Images Generations API](/api/en/openai/images-generations) * Edit images with the [OpenAI Images Edits API](/api/en/openai/images-edits) * Use GPT-4o image generation with the [4o Image Generations API](/api/en/openai/4o-image-generations) * Retrieve image results with the [4o Image Fetch API](/api/en/openai/4o-image-fetch) ## Popular OpenAI Image Endpoints | Use case | Endpoint | | :- | :- | | Image generation | [OpenAI Images Generations API](/api/en/openai/images-generations) | | Image editing | [OpenAI Images Edits API](/api/en/openai/images-edits) | | GPT-4o image generation | [4o Image Generations API](/api/en/openai/4o-image-generations) | | Image result retrieval | [4o Image Fetch API](/api/en/openai/4o-image-fetch) | ## Recommended Workflow 1. Start with [image generation](/api/en/openai/images-generations) or [image editing](/api/en/openai/images-edits). 2. Use the [4o image generation endpoint](/api/en/openai/4o-image-generations) when your workflow is built around GPT-4o image output. 3. Use [4o image fetch](/api/en/openai/4o-image-fetch) when the workflow returns asynchronous results. ## Why Use TTAPI For OpenAI Image API Access * Unified gateway for OpenAI image endpoints * Stable auth and billing workflow ## FAQ ### Which endpoint should I start with? Most users should start with the [OpenAI Images Generations API](/api/en/openai/images-generations). # Suno API Documentation — AI Music Generation, Lyrics & Audio Source: https://docs.ttapi.io/api/en/suno/index Complete Suno API developer documentation. Generate AI music, songs, and lyrics via REST API. Supports Suno v6, async jobs, webhook callbacks, and stems separation. Start building free. # Suno API Documentation — AI Music Generation, Lyrics & Audio The **Suno API** is a developer interface for **AI music generation**, enabling you to programmatically create complete songs, lyrics, and audio tracks from text prompts. Through TTAPI's unified gateway, you get stable access to the latest Suno models — including **Suno v6 (chirp-v6)**, **chirp-v6-wild**, and **chirp-v6-mini** — for music creation, vocal separation (stems), and asynchronous job processing. This documentation covers every Suno API endpoint, workflow pattern, and integration guide. If you want the fastest path to working code, start with the [Suno API Quickstart](/grids/en/start/suno-api-quickstart). > **New to Suno API?** Jump to the [End-to-End Example](#suno-api-end-to-end-example) to see a complete generate → fetch flow in under 3 minutes. *** ## What Is the Suno API? The Suno API allows developers to send text prompts to Suno's AI music models and receive fully generated audio tracks in return — including vocals, instrumentation, and lyrics. Unlike basic music loop generators, the Suno API produces complete, studio-quality songs from a single prompt. Through TTAPI, you get: * Access to **Suno v6 / chirp-v6**, the latest and most capable model * A clean, standard **REST API** with consistent authentication * **Async job handling** via polling or webhook callbacks * **Stems separation**, lyrics generation, music extension, and cover creation * Unified billing and quota management across all AI audio models *** ## Get Started with Suno API * [Suno API Quickstart](/grids/en/start/suno-api-quickstart) — fastest path to a working integration * [Music Generation API](/api/en/suno/suno_music) — submit a song generation job * [Fetch API (Get Results)](/api/en/suno/suno_fetch_v2) — poll for async results * [Suno API Async Workflow](/grids/en/start/suno-api-async-workflow) — deep dive on job handling * [Suno API Workflow Guide](/grids/en/start/suno-api-workflows) — full workflow patterns * [Audio Pricing](/grids/en/start/pricing/audio#suno) — credits and cost per generation *** ## Key Features of the Suno API ### 🎵 AI Music Generation with Suno v6 Generate complete music tracks from text prompts using the latest Suno models, including **chirp-v6**, **chirp-v6-wild**, and **chirp-v6-mini**. Supports vocal and instrumental outputs, music continuation, and creative style control — suitable for any scale of AI music application. ### ⚡ Asynchronous & Scalable Workflow Submit generation tasks asynchronously and retrieve results via polling or webhook callbacks. This async-first design handles long-running jobs efficiently and integrates cleanly into production backends. ### 🎚️ Stems & Vocal Separation Separate any generated audio into vocals and instrumental tracks. Use this for remixing, editing, cover production, or integration into professional audio pipelines. ### 🎼 Lyrics Generation & Custom Mode Generate lyrics before music creation, or supply your own lyrics in custom mode. The Suno Lyrics API aligns lyric content with vocal timing for seamless integration into full song generation. ### 🎛️ Custom Music Models Train a reusable model from 6–24 reference tracks, then set `mv` to `chirp-custom:{model_id}` on music, extend, cover, and other generation endpoints. See [Create Model](/api/en/suno/suno_create_model). ### 🧩 Developer-Friendly REST API Simple RESTful endpoints with clear request and response schemas. Designed for fast integration with any backend stack — Node.js, Python, Go, or any HTTP client. *** ## Authentication & Base URL All Suno API requests through TTAPI use a unified gateway and a single authentication header. | Setting | Value | | :- | :- | | Base URL | `https://api.ttapi.io` | | Auth Header | `TT-API-KEY: YOUR_API_KEY` | | Content-Type | `application/json` | For full setup instructions, see [Gateway & Auth](/grids/en/development/authentication). *** ## Suno API End-to-End Example The shortest production-safe Suno API flow has three steps: 1. Submit `POST /suno/v1/music` 2. Store `data.jobId` from the response 3. Pass that `jobId` to `GET /suno/v2/fetch` to retrieve results ### Step 1 — Submit a Music Generation Request ```bash theme={null} curl --request POST 'https://api.ttapi.io/suno/v1/music' \ --header 'Content-Type: application/json' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' \ --data-raw '{ "custom": true, "instrumental": false, "mv": "chirp-v6", "title": "Midnight Drive", "tags": "synthwave, female vocal, cinematic", "prompt": "[Verse] Neon headlights on a rainy street" }' ``` ### Step 2 — Read the Immediate Response ```json theme={null} { "status": "SUCCESS", "message": "success", "data": { "jobId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } ``` Store `data.jobId` immediately. This is the handle used for all downstream operations: polling, webhook reconciliation, extend, cover, stems, and WAV export. ### Step 3 — Fetch the Generation Result ```bash theme={null} curl --request GET 'https://api.ttapi.io/suno/v2/fetch?jobId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' ``` While the job is still running, the response `status` will be `ON_QUEUE`. Once generation finishes: ```json theme={null} { "status": "SUCCESS", "message": "success", "jobId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "data": { "jobId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "action": "music", "progress": "100%", "mv": "chirp-v6", "quota": "6", "hookUrl": "https://your-app.example.com/webhooks/suno", "musics": [ { "musicId": "xxxxxxxxxxxxxxxxx", "prompt": "[Verse] Neon headlights on a rainy street", "title": "Midnight Drive", "tags": "synthwave, female vocal, cinematic", "imageUrl": "https://cdn2.suno.ai/xxxxxxxxxxxxxxxxx.jpeg", "imageLargeUrl": "https://cdn2.suno.ai/xxxxxxxxxxxxxx.jpeg", "audioUrl": "https://cdn1.suno.ai/xxxxxxxxxxxxxxx.mp3", "videoUrl": "https://cdn1.suno.ai/xxxxxxxxxxxxxxx.mp4", "duration": 211.44, "modelName": "chirp-hawk", "negativeTags": "", "styleWeight": null, "weirdnessConstraint": null, "audioWeight": null, "createdAt": "2026-03-03T02:23:51.401Z" } ] } } ``` For most production apps, the minimum implementation is: submit → store `jobId` → poll fetch → persist `audioUrl`, `videoUrl`, `musicId`, and metadata for any follow-up operations. *** ## Model Mapping Official Suno legacy models have all been discontinued. Only `chirp-v6`, `chirp-v6-wild`, and `chirp-v6-mini` are currently supported. If a request still uses a discontinued legacy model name, it is automatically mapped to `chirp-v6`: | Discontinued model | Actual model | | :- | :- | | `chirp-v5-5` | `chirp-v6` | | `chirp-v5` | `chirp-v6` | | `chirp-v4-5+` | `chirp-v6` | | `chirp-v4-5` | `chirp-v6` | | `chirp-v4-5-all` | `chirp-v6` | | `chirp-v4` | `chirp-v6` | | `chirp-v3-5` | `chirp-v6` | | `chirp-v3-0` | `chirp-v6` | New integrations should pass `chirp-v6`, `chirp-v6-wild`, or `chirp-v6-mini` directly. Do not pass discontinued legacy model names. *** ## Suno API Parameters Reference ### Core Generation Parameters (`POST /suno/v1/music`) | Parameter | Type | Description | | :- | :- | :- | | `mv` | string | Model version. Available values: `chirp-v6`, `chirp-v6-wild`, `chirp-v6-mini`. Suno legacy models have all been discontinued; passing a legacy name maps it to `chirp-v6`. See [Model Mapping](#model-mapping). | | `prompt` | string | Lyrics or style description for the AI music generation. | | `tags` | string | Musical style tags, e.g. `synthwave, female vocal, cinematic`. | | `title` | string | Title of the generated song. | | `custom` | boolean | `true` to use custom lyrics mode; `false` for fully AI-generated content. | | `instrumental` | boolean | `true` to generate music without vocals. | | `audio_format` | string | Optional. Format of `audioUrl` after the job succeeds. | | `hookUrl` | string | Optional webhook URL to receive results via callback instead of polling. | ### Advanced Audio Parameters | Parameter | Type | Description | | :- | :- | :- | | `weirdnessConstraint` | number | Controls how far the AI music generation deviates from conventional musical patterns. A **higher value** produces more experimental, unconventional output; a **lower value** keeps the result closer to standard musical structure. Appears in the fetch result payload. | | `style_weight` | number | Controls how strongly the style tags influence the generated output relative to the prompt. | | `audio_weight` | number | Balances audio fidelity and generation speed when applicable. | | `negative_tags` | string | Style tags to suppress or avoid in the generated output. | | `variety` | string | Style variety. Available values: `off` (Exact style), `normal` (Balanced variety), `high` (Distinct styles), `extra` (Bold exploration), `max` (Unreasonably varied). Defaults to `normal`. | | `max_mode` | boolean | Whether to use more compute to maximize consistency throughout the song. Custom mode only. Defaults to `false`. When `true`, credit consumption is doubled. | *** ## Common Use Cases ### 🎧 AI Music Generation Apps Build applications that generate complete songs from text prompts, including vocals and instrumentals, using Suno v6 models. Ideal for creative platforms, game soundtrack generators, and personalized music experiences. ### ✍️ Lyrics & Creative Tools Integrate the Suno Lyrics API into writing tools, music platforms, or AI creative applications. Generate lyrics first, then feed them directly into the music generation step. ### 🔄 Async Music Processing Pipelines Handle long-running AI music generation tasks using polling or webhook callbacks. Suitable for backend services, batch processing systems, and scalable architectures. ### 🎚️ Remix, Cover & Stems Workflows Create remix tools, cover generation systems, or audio editing pipelines. Use the Stems API to separate vocals and instrumentals from any generated track for further processing. ### 📱 Content & Media Platforms Add AI-generated music features to video platforms, social apps, or content creation tools. Generate background music, theme songs, or branded audio at scale. *** ## What You Can Build with the Suno API | Goal | API Endpoint | | :- | :- | | Generate a full song from a text prompt | [Suno Music API](/api/en/suno/suno_music) | | Create lyrics before music generation | [Suno Lyrics API](/api/en/suno/suno_lyrics) | | Continue and extend an existing track | [Suno Extend API](/api/en/suno/suno_extend) | | Recreate a song in a new style | [Suno Cover API](/api/en/suno/suno_cover) | | Upload audio and generate a cover in one request | [Suno Upload Cover API](/api/en/suno/suno_upload_cover) | | Upload audio and extend it in one request | [Suno Upload Extend API](/api/en/suno/suno_upload_extend) | | Upload reference audio before generation | [Suno Upload API](/api/en/suno/suno_upload) | | Separate vocals and instrumentals | [Suno Stems API](/api/en/suno/suno_stems) | | Full multi-track stem separation | [Suno Stems All API](/api/en/suno/suno_stems_all) | | Poll async job status and retrieve results | [Suno Fetch API](/api/en/suno/suno_fetch_v2) | | Add a vocal layer to an arrangement | [Suno Add Vocals API](/api/en/suno/suno_add_vocals) | | Generate spoken audio | [Suno Speech API](/api/en/suno/suno_speech) | | Trim an existing song by time range | [Suno Crop API](/api/en/suno/suno_crop) | | Delete a selected time range from a song | [Suno Remove Section API](/api/en/suno/suno_remove_section) | | Add a fade-in to an existing song | [Suno Fade In API](/api/en/suno/suno_fade_in) | | Add a fade-out to an existing song | [Suno Fade Out API](/api/en/suno/suno_fade_out) | | Change song speed while optionally preserving pitch | [Suno Adjust Speed API](/api/en/suno/suno_adjust_speed) | | Train a reusable custom music model | [Suno Create Model API](/api/en/suno/suno_create_model) | | Export higher-quality WAV output | [Suno WAV API](/api/en/suno/suno_wav) | *** ## Core Suno API Endpoints | Use Case | Best Reference Page | | :- | :- | | Full song generation from a prompt | [Suno Music API Reference](/api/en/suno/suno_music) | | Lyrics generation before music | [Suno Lyrics API Reference](/api/en/suno/suno_lyrics) | | Continue a strong song draft | [Suno Extend API Reference](/api/en/suno/suno_extend) | | Restyle an existing song | [Suno Cover API Reference](/api/en/suno/suno_cover) | | Upload audio and restyle it in one request | [Suno Upload Cover API Reference](/api/en/suno/suno_upload_cover) | | Upload audio and continue it in one request | [Suno Upload Extend API Reference](/api/en/suno/suno_upload_extend) | | Upload source audio or reference material | [Suno Upload API Reference](/api/en/suno/suno_upload) | | Split vocals and accompaniment | [Suno Stems API Reference](/api/en/suno/suno_stems) | | Full-track stem separation | [Suno Stems All API Reference](/api/en/suno/suno_stems_all) | | Poll async task status | [Suno Fetch API Reference](/api/en/suno/suno_fetch_v2) | | Add a vocal layer to an arrangement | [Suno Add Vocals API Reference](/api/en/suno/suno_add_vocals) | | Generate spoken audio | [Suno Speech API Reference](/api/en/suno/suno_speech) | | Trim a song by start and end time | [Suno Crop API Reference](/api/en/suno/suno_crop) | | Add a fade-in effect | [Suno Fade In API Reference](/api/en/suno/suno_fade_in) | | Add a fade-out effect | [Suno Fade Out API Reference](/api/en/suno/suno_fade_out) | | Train a reusable custom music model | [Suno Create Model API Reference](/api/en/suno/suno_create_model) | | Export higher-quality WAV output | [Suno WAV API Reference](/api/en/suno/suno_wav) | *** ## Common Suno API Workflows | Workflow | Recommended Path | | :- | :- | | Text prompt → full song | [Lyrics](/api/en/suno/suno_lyrics) (optional) → [Music](/api/en/suno/suno_music) → [Fetch](/api/en/suno/suno_fetch_v2) | | Reference audio → custom model → generate | [Create Model](/api/en/suno/suno_create_model) → [Music](/api/en/suno/suno_music) → [Fetch](/api/en/suno/suno_fetch_v2) | | Reference audio → new output | [Upload](/api/en/suno/suno_upload) → downstream endpoint → [Fetch](/api/en/suno/suno_fetch_v2) | | Public audio URL → cover | [Upload Cover](/api/en/suno/suno_upload_cover) → [Fetch](/api/en/suno/suno_fetch_v2) | | Public audio URL → extension | [Upload Extend](/api/en/suno/suno_upload_extend) → [Fetch](/api/en/suno/suno_fetch_v2) | | Continue a strong draft | [Extend](/api/en/suno/suno_extend) → [Fetch](/api/en/suno/suno_fetch_v2) | | Restyle an existing song | [Cover](/api/en/suno/suno_cover) → [Fetch](/api/en/suno/suno_fetch_v2) | | Separate vocals and backing track | [Stems](/api/en/suno/suno_stems) or [Full Stems](/api/en/suno/suno_stems_all) | *** ## Fetch vs Webhook: Choosing an Async Pattern Most Suno API workflows are asynchronous. The two retrieval patterns are: **Polling with Fetch** — call `GET /suno/v2/fetch?jobId=...` on a loop until `status` is `SUCCESS`. Easier for first integrations and works with any HTTP client. **Webhook Callback** — pass a `hookUrl` in the generation request. TTAPI will `POST` the completed result to your endpoint. Better for production systems with a public callback URL already in place. For a full async design walkthrough, see [Suno API Async Workflow](/grids/en/start/suno-api-async-workflow). *** ## Recommended First Production Path 1. Read [Gateway & Auth](/grids/en/development/authentication) — ensure your app sends a valid `TT-API-KEY`. 2. Complete the [Suno API Quickstart](/grids/en/start/suno-api-quickstart) — shortest path to a working integration. 3. Submit music generation via the [Suno Music API](/api/en/suno/suno_music). 4. Store the returned `jobId` and retrieve results via [Suno Fetch](/api/en/suno/suno_fetch_v2) or a `hookUrl`. 5. Add post-processing with [Extend](/api/en/suno/suno_extend), [Cover](/api/en/suno/suno_cover), [Stems](/api/en/suno/suno_stems), or [WAV export](/api/en/suno/suno_wav). *** ## Error Codes & Troubleshooting ### Common Error Status Codes | Status Code | Error Message | Meaning & Fix | | :- | :- | :- | | `400` | `Job not exits.`, `mv cannot be empty.` | Invalid request parameters. Check and correct before retrying. | | `400` | `Request parameter type mismatch` | JSON body malformed or parameter type mismatch. Validate your request schema. | | `400` | `A technical issue with Suno is affecting everyone right now...` | Suno platform outage or maintenance. Retry after a delay. | | `401` | `Wrong TT-API-KEY or email is not activated.` | Missing or invalid `TT-API-KEY`, or account email not activated. | | `402` | `Insufficient balance in TT API.` | Account balance too low. Top up your TTAPI credits. | | `403` | `Authorized Error:[Account Block]` | Calling account has been blocked. Contact support. | | `404` | `Interface Not Found` | Request path did not match a valid endpoint. Check the URL. | | `405` | `Request method not supported` | Wrong HTTP method used. Check `GET` vs `POST`. | | `415` | `Content type not supported` | Set `Content-Type: application/json` in your request header. | | `429` | `Too Many Requests` | Rate limited. Add retry logic with exponential backoff. | | `499` | `You have reached the maximum of suno job queues.` | Suno queue full. Retry later. | | `500` | `Submission failed, system exception.` | Server-side exception. Contact support if persistent. | ### Quick Troubleshooting Checklist * **400 / 404 / 405 / 415** → Check request path, HTTP method, JSON body structure, and `Content-Type` header. * **401 / 402 / 403** → Check `TT-API-KEY` validity, account activation, block status, and balance. * **429 / 499** → Add retry logic with exponential backoff. Do not hammer the endpoint. * **500** → Wait and retry. Contact the TTAPI team if the error persists. *** ## Why Use TTAPI for Suno API Access * **Unified gateway** — access Suno and other AI models through a single API key and base URL * **Latest model support** — always on the newest Suno version, including `chirp-v6` * **Standardized async workflow** — consistent job submission, Fetch polling, and webhook callback patterns * **Clear documentation** — separated overview guides and endpoint references for faster development * **Consistent billing** — unified quota management across all supported audio and AI APIs * **Production-ready** — stable request handling and scalable infrastructure for high-volume use *** ## Suno API FAQ ### What is the Suno API? The Suno API is the developer interface for AI music generation using Suno's models. It accepts text prompts and returns fully generated audio tracks — complete with vocals, instrumentation, and lyrics. Through TTAPI, it also supports async workflows, webhook callbacks, stems separation, and multi-format audio export. *** ### How do I generate music with the Suno API? Submit a `POST` request to the [Suno Music API](/api/en/suno/suno_music) with your prompt, style tags, and model version (`chirp-v6` for the latest Suno v6 model). Store the returned `jobId`, then retrieve the generated audio via the [Suno Fetch API](/api/en/suno/suno_fetch_v2) or a webhook. *** ### Which Suno model should I use? Use `chirp-v6` (Suno v6) as the recommended model. You can also choose `chirp-v6-wild` or `chirp-v6-mini`. Suno legacy models have all been discontinued; passing a legacy name maps it to `chirp-v6`. See [Model Mapping](#model-mapping). *** ### What does the `weirdnessConstraint` parameter do? The `weirdnessConstraint` parameter controls how far the AI music generation deviates from conventional musical patterns. A **higher value** produces more experimental and unconventional output. A **lower value** keeps the result closer to standard song structure and genre conventions. It can be set during music submission and appears in the fetch result payload under each music item. *** ### How do I check job status? Use the [Suno Fetch API](/api/en/suno/suno_fetch_v2) with your `jobId` to poll for status. While processing, `status` returns `ON_QUEUE`. When complete, `status` returns `SUCCESS` and the full audio URLs are included in the response. *** ### Does the Suno API support webhooks? Yes. Pass a `hookUrl` parameter when submitting any Suno job. TTAPI will deliver the completed result via HTTP `POST` to your endpoint, eliminating the need for polling. See [Suno API Async Workflow](/grids/en/start/suno-api-async-workflow) for full webhook implementation details. *** ### Can I generate instrumental music without vocals? Yes. Set `"instrumental": true` in your music generation request. The Suno API will generate a full track without any vocal content. *** ### Can I upload my own audio as a reference? Yes. Use the [Suno Upload API](/api/en/suno/suno_upload) to upload source audio or reference material before passing it to a downstream generation endpoint. If you want to cover or extend a public audio URL in one request, use [Upload Cover](/api/en/suno/suno_upload_cover) or [Upload Extend](/api/en/suno/suno_upload_extend). *** ### Can I separate vocals and instruments from a generated track? Yes. Use the [Suno Stems API](/api/en/suno/suno_stems) for two-track separation (vocals + instrumental), or the [Suno Stems All API](/api/en/suno/suno_stems_all) for full multi-track stem separation. *** ### What pages should I read next? Start with the [Suno API Quickstart](/grids/en/start/suno-api-quickstart), then explore the [Music API](/api/en/suno/suno_music) and [Fetch API](/api/en/suno/suno_fetch_v2) for the core generate-and-retrieve workflow. For async design decisions, read [Suno API Async Workflow](/grids/en/start/suno-api-async-workflow). # Suno Cover Style API Reference Source: https://docs.ttapi.io/api/en/suno/suno_cover openapi/en/suno.json POST /suno/v1/cover Use the Suno cover API to reinterpret an existing song in a new genre, arrangement, or vocal style while preserving its core musical identity. Use the **Suno Cover API** when you want to transform an existing song into a new genre, arrangement, or vocal style while keeping the core musical identity recognizable. # Suno Song Extension API Reference Source: https://docs.ttapi.io/api/en/suno/suno_extend openapi/en/suno.json POST /suno/v1/extend Use the Suno song extension API to continue existing music with new sections, longer structure, or additional progression while keeping the original feel. Use the **Suno Extend API** when you already have a promising song segment and want to continue it with additional structure, length, or musical progression. # Suno Lyrics Generation API Reference Source: https://docs.ttapi.io/api/en/suno/suno_lyrics openapi/en/suno.json POST /suno/v1/lyrics Use the Suno lyrics generation API to create structured song lyrics from themes, moods, and prompts for songwriting and creative ideation. Use the **Suno Lyrics API** when you want to generate song-ready text before calling the main [Suno Music API](/api/en/suno/suno_music). # Suno Music Generation API Reference Source: https://docs.ttapi.io/api/en/suno/suno_music openapi/en/suno.json POST /suno/v1/music Use the Suno music generation API to create full AI songs from prompts for demos, content production, commercial ideas, and creative music workflows. Start here if you need the main endpoint for **Suno API** music generation. For the complete endpoint directory, workflow guidance, and related links, see the [Suno API overview](/api/en/suno). Suno legacy models have all been discontinued. Only `chirp-v6`, `chirp-v6-wild`, and `chirp-v6-mini` are currently supported. If a discontinued legacy model name is still passed, it is automatically mapped to `chirp-v6`. See [Model Mapping](/api/en/suno#model-mapping). After you create a custom model, set `mv` to `chirp-custom:{model_id}` to generate in that style. See [Create Model](/api/en/suno/suno_create_model). `persona_id` and `chirp-custom` cannot be used together. # Suno Stem Extraction API Reference Source: https://docs.ttapi.io/api/en/suno/suno_stems openapi/en/suno.json POST /suno/v1/stems Use the Suno Stems API to extract vocals, instruments, or another supported stem type from an existing Suno track. Use the **Suno Stems API** to extract a selected stem from an existing Suno track. Set `stem_type` to choose the target part, such as `lead_vocal`, `bass`, `piano`, `drum_kit`, or `electric_guitar`. If `stem_type` is omitted, uses `lead_vocal` by default. # Suno Upload Cover API Reference Source: https://docs.ttapi.io/api/en/suno/suno_upload_cover openapi/en/suno.json POST /suno/v1/upload-cover Upload an external audio file and generate a Suno cover in one request. Use **Upload Cover** when you already have a public audio URL and want to restyle it without calling [Upload](/api/en/suno/suno_upload) and [Cover](/api/en/suno/suno_cover) separately. * Submit a publicly accessible `audio_url`. Recommended duration is 8 minutes or less. * Store the returned `jobId` and retrieve the result through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or your `hookUrl` callback. # Suno Upload Extend API Reference Source: https://docs.ttapi.io/api/en/suno/suno_upload_extend openapi/en/suno.json POST /suno/v1/upload-extend Upload an external audio file and extend it in one request. Use **Upload Extend** when you already have a public audio URL and want to continue it without calling [Upload](/api/en/suno/suno_upload) and [Extend](/api/en/suno/suno_extend) separately. * Submit a publicly accessible `audio_url`. Recommended duration is 8 minutes or less. * `continue_at` must be `>= 1` and less than the uploaded audio duration. * This endpoint always runs in custom mode. If `prompt` is empty, the extension is treated as instrumental. * Store the returned `jobId` and retrieve the result through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or your `hookUrl` callback. # SwapFace Result Fetch Source: https://docs.ttapi.io/api/en/swapface/fetch openapi/en/swapface.json get /insightFace/v1/fetch Query face swap task results. The returned data structure is consistent with the hookUrl return format.
Note: jobId can be passed via URL parameters (Query) or request body (Body) # Swap Source: https://docs.ttapi.io/api/en/swapface/swap openapi/en/swapface.json POST /insightFace/v1/swap Create face swap service, this endpoint interaction is the same as TTAPI Midjourney API interaction mode (Async) ### Face Swap Feature Description The face swap feature leverages Midjourney’s image editing capabilities, allowing you to upload a portrait image along with a reference style image to generate a face swap effect according to the specified proportions. Before using, please ensure: 1. The reference image is clear, with recognizable facial features. 2. Do not upload illegal or copyrighted content. 3. Generated results are intended for legal and compliant use only. Example of Face Swap Result # Midjourney Video Extend Source: https://docs.ttapi.io/api/en/videoapi/extend openapi/en/sora.json POST /midjourney/video/extend Generate four videos by extending from the previous video result
This endpoint interaction is consistent with midjourney image generation endpoint, an **asynchronous task** # Midjourney Video Result Source: https://docs.ttapi.io/api/en/videoapi/fetch openapi/en/sora.json get /midjourney/video/fetch Query task results, **this endpoint does not consume quota, free to use** # Midjourney Video Generation Source: https://docs.ttapi.io/api/en/videoapi/submit openapi/en/sora.json POST /midjourney/video/submit Generate four videos based on images and descriptions. This endpoint interaction is consistent with midjourney image generation endpoint, an **asynchronous task** # File to Video Source: https://docs.ttapi.io/api/en/wan/file-to-video openapi/en/wan-file-to-video.json POST /wan/api/v1/services/aigc/video-generation/video-synthesis Create file-to-video task This is the **Wan 3.0 Video Generation API** file-to-video endpoint. Generate video by uploading a file with type `file`, and the model automatically understands the file content. # First Frame to Video Source: https://docs.ttapi.io/api/en/wan/first-frame-to-video openapi/en/wan-first-frame-to-video.json POST /wan/api/v1/services/aigc/video-generation/video-synthesis Create first-frame-to-video task This is the **Wan 3.0 Video Generation API** first-frame-to-video endpoint. Generate video by strictly specifying the first frame image with type `first_frame`. # First Last Frame to Video Source: https://docs.ttapi.io/api/en/wan/first-last-frame-to-video openapi/en/wan-first-last-frame-to-video.json POST /wan/api/v1/services/aigc/video-generation/video-synthesis Create first-last-frame-to-video task This is the **Wan 3.0 Video Generation API** first-last-frame-to-video endpoint. Generate video by strictly specifying both first and last frame images with types `first_frame` and `last_frame`. # Reference to Video Source: https://docs.ttapi.io/api/en/wan/reference-to-video openapi/en/wan-reference-to-video.json POST /wan/api/v1/services/aigc/video-generation/video-synthesis Create reference-to-video task This is the **Wan 3.0 Video Generation API** reference-to-video endpoint. Generate video by uploading reference materials with types `reference_image`, `reference_video`, or `reference_audio`, combined with prompt. # Query Task Result Source: https://docs.ttapi.io/api/en/wan/task-result openapi/en/wan-task-result.json GET /wan/api/v1/tasks/{task_id} Query task result by task ID This is the **Wan 3.0 Video Generation API** query task result endpoint. Query video generation status and results by task ID. # Text to Video Source: https://docs.ttapi.io/api/en/wan/text-to-video openapi/en/wan-text-to-video.json POST /wan/api/v1/services/aigc/video-generation/video-synthesis Create text-to-video task This is the **Wan 3.0 Video Generation API** text-to-video endpoint. Generate video using only prompt, without uploading any media files. # Contact Source: https://docs.ttapi.io/grids/en/about/connect How to reach TTAPI for integration, support, and commercial questions ## Business and integration support If you have questions about integration, usage, scaling, or commercial cooperation, contact us through one of the channels below. **Email:** [support@ttapi.io](mailto:support@ttapi.io) **Telegram:** [https://t.me/voyagell](https://t.me/voyagell) **Discord:** [https://discord.gg/edugm4QmCb](https://discord.gg/edugm4QmCb) ## Feedback If you want to report documentation issues, product feedback, or support quality concerns, email us anytime: **Feedback email:** [support@ttapi.io](mailto:support@ttapi.io) ## Official links * Website: [https://ttapi.io](https://ttapi.io) * Dashboard: [https://dashboard.ttapi.io](https://dashboard.ttapi.io) * Status page: [https://status.ttapi.io](https://status.ttapi.io) # Changelog Source: https://docs.ttapi.io/grids/en/about/history Product releases and pricing changes on TTAPI
## 2026-10-03 * Suno API added [Speech](/api/en/suno/suno_speech). It costs **6 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-09-23 * OpenAI added the `gpt-6-sol` and `gpt-6-luna` models. * Claude added the `claude-opus-5-5` model. ## 2026-09-22 * X.AI (Grok) LLM added `grok-4.7` model, billed at **40% off** official pricing. See [LLM Pricing](/grids/en/start/pricing/llm). ## 2026-09-10 * Suno generation endpoints added `variety` and `max_mode`. `variety` controls style variety: `off` (Exact style), `normal` (Balanced variety), `high` (Distinct styles), `extra` (Bold exploration), `max` (Unreasonably varied). `max_mode` is custom mode only and defaults to `false`; when `true`, it uses more compute to maximize consistency throughout the song and doubles credit consumption. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-09-09 * Suno API added `chirp-v6`, `chirp-v6-wild`, and `chirp-v6-mini` at the same price as existing models. Official Suno legacy models have all been discontinued; passing a legacy name maps it to `chirp-v6`. See [Model Mapping](/api/en/suno#model-mapping) and [Audio Pricing](/grids/en/start/pricing/audio#suno). * [GPT-Image Generation \[Unofficial\]](/api/en/openai/gpt-generations) added model `gpt-image-2.5`, priced at **2 quota**. See [pricing details](/grids/en/start/pricing/image#openai). * [OpenAI Images Generations \[Official\]](/api/en/openai/images-generations) added models `gpt-image-2.5-flare` and `gpt-image-2.5-sunburst`. See [pricing details](/grids/en/start/pricing/image#openai). * Grok Video Generation API (Unofficial) added `first_frame` and `last_frame` parameters, only supported by `grok-imagine-video-1.5-fast`. When the same image is provided for both parameters, it creates a loop effect. The `use_first_frame` parameter has been removed. See [endpoint details](/api/en/grok/generations). ## 2026-09-08 * NovelAI image generation added `nai-diffusion-5-full` and `nai-diffusion-5-curated` models, both priced at **8 quota**. See [text-to-image](/api/en/novel/text-to-image), [image-to-image](/api/en/novel/image-to-image), and [pricing details](/grids/en/start/pricing/image#novel-ai). ## 2026-09-07 * Suno API added [Create Model](/api/en/suno/suno_create_model) to train a reusable custom model from 6–24 reference tracks, then generate in that style with `mv=chirp-custom:{model_id}`. Create Model costs **60 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-09-03 * Suno API added [File Download](/api/en/suno/suno_download) to retrieve music files in formats such as mp3, m4a and wav. File Download costs **0.2 quota**. Every successful call is billed, including repeated requests for the same file—cache the returned URLs. See [Audio Pricing](/grids/en/start/pricing/audio#suno). * Suno API [Export WAV](/api/en/suno/suno_wav) is **deprecated** and will no longer be maintained. Please migrate to [File Download](/api/en/suno/suno_download). * Grok Video Generation API (Unofficial) added `use_first_frame` first frame control parameter, default `true`, used to control whether a single image is used as the first frame. See [endpoint details](/api/en/grok/generations). ## 2026-08-25 * Suno API added [Upload Cover](/api/en/suno/suno_upload_cover) and [Upload Extend](/api/en/suno/suno_upload_extend) to upload a public audio URL and generate a cover or extension in one request. Upload is not billed separately; quota follows Cover / Extend (**6 quota**). See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-08-24 * Grok Image API (generation and editing) added `grok-imagine-image-2.0` model; added `quality` parameter (supports `low`, `medium`), only supported by `grok-imagine-image-2.0`. See [generation endpoint](/api/en/grokimage/image) and [edit endpoint](/api/en/grokimage/editimage). * TTAPI launched **Wan 3.0 Video Generation API**, supporting file-to-video, reference-to-video, text-to-video, first-frame-to-video, and first-last-frame-to-video modes, with a limited-time official **30% off** discount. See [**endpoint details**](/api/en/wan/file-to-video) and [**pricing details**](/grids/en/start/pricing/video#wan-video-models). ## 2026-08-10 * Grok Image API added `grok-imagine-2.0` generation model and `grok-imagine-2.0-edit` editing model; `enable_pro` parameter is only supported by `grok-imagine-1.0` and `grok-imagine-2.0`; the edit endpoint `refer_images` now supports 1-5 images. See [generation endpoint](/api/en/grokimage/image) and [edit endpoint](/api/en/grokimage/editimage). * Grok Video Generation API (both Official and Unofficial) added the `voice_id` voice character parameter, supporting 26 AI voice characters (e.g. `carina`, `zagan`, `helix`, etc.) for specifying video narration/dubbing voices. See [Official endpoint](/api/en/grok/video-generations) and [Unofficial endpoint](/api/en/grok/generations). ## 2026-08-08 * TTAPI has launched the **Flux 3 Video Generation API**, supporting text-to-video, image-to-video, and video-to-video generation, with **HD / FHD** resolutions and Draft mode. The official model is currently available at **60% of the official price**. [**View API Documentation**](/api/en/flux/flux-3-video), [**View Pricing**](/grids/en/start/pricing/video#flux-3-video-models). ## 2026-07-30 * FlowMusic API added support for **Lyria 3.5** model, working alongside the existing Lyria 3 Pro model. All FlowMusic endpoint prices remain unchanged. See [endpoint details](/api/en/flowmuisc), [pricing details](/grids/en/start/pricing/audio#flowmusic-producer-upgraded-version). ## 2026-07-02 * TTAPI launched QW Music music generation API, supporting text-to-music, custom lyrics, and reference audio cover/remix. See [endpoint details](/api/en/qwmusic), [pricing details](/grids/en/start/pricing/audio#qw-music). ## 2026-07-01 * Grok Video Generation API (Unofficial) model update: `grok-imagine-1.0-video` renamed to `grok-imagine-video-1.5-fast` (supports 6-30s, multiple reference images up to 7); new `grok-imagine-video` model added (supports 1-15s, multiple reference images). See [endpoint details](/api/en/grok/generations). * [Gemini Image](/api/en/gemini/generate) added `gemini-3.1-flash-lite-image` (Nano Banana 2 Lite). See [Image Pricing](/grids/en/start/pricing/image#gemini). ## 2026-06-23 * HappyHorse Video API added three new models: `happyhorse-1.1-t2v`, `happyhorse-1.1-i2v`, `happyhorse-1.1-r2v` for text-to-video, image-to-video, and reference-to-video respectively. See [endpoint details](/api/en/happyhorse). ## 2026-06-18 * Suno API added [Add Stem](/api/en/suno/suno_add_stem) for layering an additional stem onto an existing song. Add Stem costs **6 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-06-11 * Grok Video API (both Official and Unofficial) added Video Extensions endpoints for generating continuation content from existing videos. Maximum input video duration is 15 seconds. Official path: `/grok/v1/videos/extensions`, Unofficial path: `/grok/extensions`. See [Official endpoint](/api/en/grok/video-extensions) and [Unofficial endpoint](/api/en/grok/extensions). ## 2026-06-10 * Suno API added [Remove Section](/api/en/suno/suno_remove_section) for deleting a selected time range from a song and [Adjust Speed](/api/en/suno/suno_adjust_speed) for changing playback speed from 0.25x to 4x with optional pitch preservation. Remove Section costs **1 quota** and Adjust Speed costs **3 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). * Suno API added [Inspo](/api/en/suno/suno_inspo), which uses 1-4 audio URLs as inspiration references to create a new song. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-06-08 * Suno API added [Crop Track](/api/en/suno/suno_crop), [Fade In](/api/en/suno/suno_fade_in), and [Fade Out](/api/en/suno/suno_fade_out) audio editing endpoints for trimming existing songs and applying fade effects. Each operation costs **1 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-06-04 * TTAPI launched Grok Official Video Generation API, supporting `grok-imagine-video-1.5-preview` model. See [endpoint details](/api/en/grok/video-generations) and [pricing details](/grids/en/start/pricing/video#grok-video). ## 2026-05-04 * TTAPI now supports MidJourney v8.1. * Usage: simply add `--v 8.1` to your prompt to use the latest model. ## 2026-04-30 * [GPT-Image Generation \[Unofficial\]](/api/en/openai/gpt-generations) endpoint updated. 1. The `gpt-image-2` model now supports the [aspect\_ratio](/api/en/openai/gpt-generations#body-aspect-ratio) parameter 2. Added a new model `gpt-image-2-plus`, which supports the [size](/api/en/openai/gpt-generations#body-size) parameter for generating high-resolution images. ## 2026-04-29 * TTAPI launched HappyHorse video generation API. See [endpoint details](/api/en/happyhorse). ## 2026-04-25 * TTAPI launched Google Flow Music music generation API (Producer upgraded version). See [endpoint details](/api/en/flowmuisc). ## 2026-04-22 * TTAPI integrated the gpt-image-2 image generation endpoint. See the [endpoint details](/api/en/openai/gpt-generations) and [pricing details](/grids/en/start/pricing/image#openai). ## 2026-04-04 * Grok Image API,[Generate Image](/api/en/grokimage/image) Add Usage Mode`enable_pro`,[For details](/api/en/grokimage/image)。 ## 2026-04-02 * Producer API,[Generate Music](/api/en/producer/producer_music) mv generation using new model`Lyria 3 Pro`,[For details](/api/en/producer/producer_music)。 ## 2026-03-30 * Grok API added the [Edit Image](/api/en/grokimage/editimage) endpoint. ## 2026-03-30 * Suno API added the [Create Voice](/api/en/suno/suno_create_voice) endpoint. ## 2026-03-27 * The Suno API [Generate Music](/api/en/suno/suno_music#body-mv) endpoint has added support for the `chirp-v5-5` model. ## 2026-03-23 * TTAPI integrates the Grok Image API,For details [API Documentation](/api/en/grokimage/image),[Image pricing](/grids/en/start/pricing/image#grok-image)。 ## 2026-03-16 * Grok AI has added [Generate Video](/api/en/grok/generations)with reference image address (refer\_images) as an input parameter. For details, see below. ## 2026-03-11 * TTAPI added Grok Video API. See [Video Pricing](/grids/en/start/pricing/video#grok-video). ## 2026-03-10 * TTAPI added [Claude Code](/grids/en/development/claude-code) support. ## 2026-02-26 * [Gemini Image](/api/en/gemini/generate) added `gemini-3.1-flash-image-preview` (Nano Banana 2.0). ## 2026-02-25 * [Novel API](/api/en/novel/text-to-image) improved character reference support. * Suno added [Sounds](/api/en/suno/suno_sounds). See [Audio Pricing](/grids/en/start/pricing/audio). * Sora added [watermark removal](/api/en/sora/no-watermark). See [Video Pricing](/grids/en/start/pricing/video). ## 2026-02-12 * TTAPI integrated [Novel API](/api/en/novel/text-to-image). ## 2026-01-31 * Suno added [Sample](/api/en/suno/suno_sample). ## 2026-01-23 * Suno added [Mashup](/api/en/suno/suno_mashup). ## 2026-01-12 * Midjourney API added niji 7 support. ## 2026-01-09 * Suno added [Fetch Result v2](/api/en/suno/suno_fetch_v2). ## 2026-01-07 * Suno added [VOX](/api/en/suno/suno_vox) and [TAG enhancement](/api/en/suno/suno_upsample_tags). * Suno updated [Persona](/api/en/suno/suno_persona) and [Lyrics](/api/en/suno/suno_lyrics). ## 2025-12-24 * Flux added [flux-2-max](/api/en/flux/flux-2-max). ## 2025-12-14 * Sora added [Characters](/api/en/sora/characters). * OpenAI LLM support added `gpt-5.2`. ## 2025-12-08 * Suno added [BPM generation](/api/en/suno/suno_bpm). * Flux added [flux-2-pro](/api/en/flux/flux-2-pro) and [flux-2-flex](/api/en/flux/flux-2-flex). ## 2025-12-02 * [Sora video](/api/en/sora/generations) added character support for jobs. ## 2025-11-26 * [Gemini Image](/api/en/gemini/generate) added the `google_search` field. * Suno [Extend](/api/en/suno/suno_extend) and [Cover](/api/en/suno/suno_cover) added `persona_id`. ## 2025-11-20 * [Gemini Image](/api/en/gemini/generate) added `gemini-3-pro-image-preview`. ## 2025-11-11 * Suno [Music](/api/en/suno/suno_music) and [Cover](/api/en/suno/suno_cover) added the `chirp-v4-5-all` model. * [Add Vocals](/api/en/suno/suno_add_vocals) and [Add Instrumental](/api/en/suno/suno_add_instrumental) added `custom` and `gpt_description_prompt`. ## 2025-10-25 * Suno added [Persona](/api/en/suno/suno_persona), and [Music](/api/en/suno/suno_music) added the singer-style ID field. * Producer added [Stems](/api/en/producer/producer_stems) and [Download](/api/en/producer/producer_download). ## 2025-10-16 * Suno added [Remaster](/api/en/suno/suno_remaster). ## 2025-10-14 * Luma added `ray-v3` and `ray-v3-reasoning`. ## 2025-10-13 * Sora added `sora-2-pro` HD support. See [Video Pricing](/grids/en/start/pricing/video#sora). * Gemini Image added `gemini-2.5-flash-image`. ## 2025-10-10 * TTAPI added Sora 2. See [the endpoint](/api/en/sora/generations) and [Video Pricing](/grids/en/start/pricing/video). ## 2025-10-09 * Producer added [Upload Audio](/api/en/producer/producer_upload) and the `FUZZ-2.0 Pro` model. ## 2025-09-30 * Flux API added the latest official request format. See [Flux Generate](/api/en/flux/generate). ## 2025-09-29 * Suno added [MIDI export](/api/en/suno/suno_midi). ## 2025-09-25 * Suno [Upload Audio](/api/en/suno/suno_upload) added asynchronous interaction support. * Suno added the `chirp-v5` model. ## 2025-09-22 * TTAPI added Producer for music and audio generation. See [the API](/api/en/producer/producer_music) and [Audio Pricing](/grids/en/start/pricing/audio). ## 2025-09-17 * Suno [Add Vocals](/api/en/suno/suno_add_vocals) and [Add Instrumental](/api/en/suno/suno_add_instrumental) added `underpainting_start_s` and `underpainting_end_s`. ## 2025-09-14 * Suno added [Replace Section](/api/en/suno/suno_replace_section). * Suno music and extend workflows added the `vocal_gender` parameter. ## 2025-09-10 * TTAPI added Gemini LLM support. See [Gemini chat](/api/en/llm/gemini-completions) and [LLM Pricing](/grids/en/start/pricing/llm). * TTAPI added Gemini 2.5 Flash Image. See [the endpoint](/api/en/gemini/generate) and [Image Pricing](/grids/en/start/pricing/image). ## 2025-08-25 * [Midjourney Video](/api/en/videoapi/submit) added video resolution and generation-count parameters. ## 2025-08-08 * Suno added [Cover](/api/en/suno/suno_cover), [Add Vocals](/api/en/suno/suno_add_vocals), [Add Instrumental](/api/en/suno/suno_add_instrumental), and [Upload Audio](/api/en/suno/suno_upload). See [Audio Pricing](/grids/en/start/pricing/audio). ## 2025-08-04 * Suno added [WAV export](/api/en/suno/suno_wav). ## 2025-07-30 * Midjourney added [external image editing](/api/en/midjourneyedit/submit). See [Image Pricing](/grids/en/start/pricing/image). ## 2025-07-28 * Midjourney Video [submit](/api/en/videoapi/submit) added the `endingUrl` parameter. ## 2025-07-12 * Midjourney added [video generation](/api/en/videoapi/submit). See [Video Pricing](/grids/en/start/pricing/video). ## 2025-07-01 * Flux added `flux-kontext-pro` and `flux-kontext-max`. * Flux added [image editing](/api/en/flux/edits). ## 2025-06-27 * Suno added [Stems](/api/en/suno/suno_stems), [Full-track stems](/api/en/suno/suno_stems_all), and split [video generation](/api/en/suno/suno_generate_video) into a standalone endpoint. ## 2025-05-13 * Suno [Music](/api/en/suno/suno_music) added the `generateVideo` parameter. ## 2025-04-28 * TTAPI added OpenAI `gpt-image-1`. See [OpenAI image generation](/api/en/openai/images-generations). ## 2025-04-10 * TTAPI added Grok model support. ## 2025-03-31 * TTAPI added early GPT-4o image generation support. See [the endpoint](/api/en/openai/4o-image-generations). * Suno split [Extend](/api/en/suno/suno_extend) from music generation and added [Concat](/api/en/suno/suno_concat). ## 2025-03-06 * TTAPI added [Grok Chat API](/api/en/llm/completions). * TTAPI added Recraft API support. ## 2025-01-18 * Added HTTP `499` status support. * Midjourney service status responses now include recent execution times by mode. * Added a TTAPI service status endpoint. ## 2024-12-21 * TTAPI added [Suno](/api/en/suno/suno_music) for text-to-music and lyrics generation. ## 2024-10-07 * Midjourney `imagine` default model moved from `v5.2` to the current official default model (`v6.1` at the time). ## 2024-09-10 * TTAPI added [Flux API](/api/en/flux/generate). ## 2024-09-08 * Midjourney [Action](/api/en/midjourney/action) added `redo_upscale2` and `redo_upscale4`. ## 2024-08-11 * TTAPI added the LLM API module with [ChatGPT](/api/en/llm/completions) and [Claude](/api/en/llm/messages). * Midjourney, SwapFace, and Luma async JSON responses added the `quota` field. ## 2024-07-31 * TTAPI added Midjourney v6.1 support. ## 2024-07-12 * TTAPI added Luma for text-to-video and image-to-video generation. ## 2024-06-24 * Midjourney [Action](/api/en/midjourney/action) added `reroll`. ## 2024-06-19 * Midjourney added the Prompt Checker endpoint. ## 2024-06-11 * Added a penalty mechanism for disallowed prompts. ## 2024-06-05 * [Midjourney Imagine](/api/en/midjourney/imagine) added prompt translation support. ## 2024-06-01 * Midjourney fetch responses added `width` and `height`. ## 2024-05-16 * Released [Midjourney Account Hosting](/grids/en/development/midjourney-hold-account). ## 2024-04-20 * Added [DALLE 3 support](/api/en/openai/images-generations). * Added [SwapFace](/api/en/swapface/swap). * Midjourney [Action](/api/en/midjourney/action) added `getUImages`. ## 2024-04-03 * Midjourney [Imagine](/api/en/midjourney/imagine) added `getUImages`. ## 2024-03-26 * Midjourney added [Vary Region](/api/en/midjourney/inpaint). ## 2024-03-23 * Midjourney added [Blend](/api/en/midjourney/blend) and [Describe](/api/en/midjourney/describe). * Midjourney v6 [Action](/api/en/midjourney/action) added creative and subtle upscale buttons. ## 2024-02-02 * Midjourney added [Seed](/api/en/midjourney/seed). ## 2024-01-29 * Midjourney added turbo mode. * Added `info` and `fetch-list` style account history support. ## 2024-01-12 * TTAPI enabled Stripe payments. ## 2023-11-12 * [TTAPI website](https://ttapi.io) launched. * Released the initial Midjourney API endpoints.
## 2026-09-07 * [LLM Large Language Models](/grids/en/start/pricing/llm) pricing updated: Claude models adjusted from 20% off to **official pricing**; X.AI (Grok) models adjusted from 50% off to **40% off** official pricing. See [pricing details](/grids/en/start/pricing/llm). ## 2026-09-03 * Suno API [Export WAV](/api/en/suno/suno_wav) price changed from Free to **0.2 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-08-26 * [Grok Video Models \[UnOfficial\]](/api/en/grok) price reduced: `grok-imagine-video-1.5-fast` `10s` from 12 quota to **9 quota**, `>10s and <=20s` from 25 quota to **20 quota**, `>20s and <=30s` from 40 quota to **30 quota**; `grok-imagine-video-1.5` from 4 quota/s to **2 quota/s**, 1080P from 8 quota/s to **4 quota/s**. See [pricing details](/grids/en/start/pricing/video#grok-video). ## 2026-08-03 * Suno API [Music Generation](/api/en/suno/suno_music), [Cover](/api/en/suno/suno_cover), [Mashup](/api/en/suno/suno_mashup), [Sample](/api/en/suno/suno_sample), and [Inspo](/api/en/suno/suno_inspo) endpoint prices were reduced from 8 quota to **6 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-07-31 * [Grok Video Models \[UnOfficial\]](/api/en/grok) price adjusted: `grok-imagine-video-1.5-fast` `10s` from 6 quota to **12 quota**, `>10s and <=20s` from 15 quota to **25 quota**, `>20s and <=30s` from 25 quota to **40 quota**; `grok-imagine-video-1.5` from 2 quota/s to **4 quota/s**, 1080P from 4 quota/s to **8 quota/s**. See [pricing details](/grids/en/start/pricing/video#grok-video). ## 2026-07-23 * [GPT-Image Generation \[Unofficial\]](/api/en/openai/gpt-generations) `gpt-image-2` model price adjusted from 1.5 quota to **2 quota**. See [pricing details](/grids/en/start/pricing/image#openai). ## 2026-07-21 * Suno API [Music Generation](/api/en/suno/suno_music), [Cover](/api/en/suno/suno_cover), [Mashup](/api/en/suno/suno_mashup), [Sample](/api/en/suno/suno_sample), and [Inspo](/api/en/suno/suno_inspo) endpoint prices were adjusted from 6 quota to **8 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-07-20 * [Grok Video Models \[UnOfficial\]](/api/en/grok) price adjusted: `grok-imagine-video-1.5-fast` `10s` adjusted from 3 quota to **6 quota**, `>10s and <=20s` from 8 quota to **15 quota**, `>20s and <=30s` from 13 quota to **25 quota**; `grok-imagine-video-1.5` adjusted from 0.5 quota/s to **1 quota/s**, 1080P from 1 quota/s to **2 quota/s**; `grok-imagine-video` adjusted from 0.5 quota/s to **1 quota/s**. See [pricing details](/grids/en/start/pricing/video#grok-video). ## 2026-06-26 * [Grok Video Models \[UnOfficial\]](/api/en/grok) price reduced: `grok-imagine-1.0-video` `10s` adjusted from 6 quota to **3 quota**, `>10s and <=20s` from 15 quota to **8 quota**, `>20s and <=30s` from 25 quota to **13 quota**; `grok-imagine-video-1.5` adjusted from 1 quota/s to **0.5 quota/s**, 1080P from 2 quota/s to **1 quota/s**. See [pricing details](/grids/en/start/pricing/video#grok-video). ## 2026-06-24 * [Novel AI](/api/en/novel) image generation price adjusted from 6 quota to **8 quota**. See [pricing details](/grids/en/start/pricing/image#novel-ai). ## 2026-06-23 * [HappyHorse Video Models](/api/en/happyhorse) pricing adjusted from 20% off to **40% off** official pricing. 720P adjusted from 11.2 quota to **8.4 quota**, 1080P adjusted from 19.2 quota to **14.4 quota**. See [pricing details](/grids/en/start/pricing/video#happyhorse-text-to-video). ## 2026-06-17 * [Suno Stems](/api/en/suno/suno_stems) price adjusted from 6 quota to **12 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). ## 2026-06-16 * [GPT-Image Generation \[Unofficial\]](/api/en/openai/gpt-generations) `gpt-image-2-plus` model price adjusted from 2 quota to **4 quota**. See [pricing details](/grids/en/start/pricing/image#openai). ## 2026-06-12 * [Midjourney](/api/en/midjourney/imagine) image generation pricing updated for `hd` resolution: in `fast` and `turbo` modes, quota usage is **1.5x** the standard image generation price. See [pricing details](/grids/en/start/pricing/image#midjourney). ## 2026-06-04 * [LLM Large Language Models](/grids/en/start/pricing/llm) pricing updated: OpenAI models adjusted from 40% off to **20% off** official pricing; Claude models adjusted from 40% off to **20% off** official pricing. See [pricing details](/grids/en/start/pricing/llm). * [Grok Official Video Model](/api/en/grok/video-generations) new pricing: billed at **40% off** official pricing, input 0.6 quota/img, output 480P 4.8 quota/s, 720P 8.4 quota/s. See [pricing details](/grids/en/start/pricing/video#grok-video). ## 2026-05-22 * [Grok AI](/api/en/grok/generations) Video generation endpoint: Price adjusted from 3 quota to 6 quota for`10s`, Price adjusted from 12 quota to 15 quota for`>10s and <=20s`, Price adjusted from 20 quota to 25 quota for`>20s and <=30s`, [pricing details](/grids/en/start/pricing/video#grok-video). * [Midjourney](/api/en/midjourney/imagine) image generation API pricing has been updated: the `relax` model price has been adjusted from `2 quota` to `3 quota`, and the `fast` model price has been adjusted from `4 quota` to `5 quota`. [See detailed pricing](/grids/en/start/pricing/image#midjourney). ## 2026-05-12 * [HappyHorse Video Models](/api/en/happyhorse) pricing updated: All models now at **20% off** official pricing. 720P adjusted from 14 quota to **11.2 quota**, 1080P adjusted from 24 quota to **19.2 quota**. See [pricing details](/grids/en/start/pricing/video#happyhorse-video). ## 2026-05-06 * [LLM Large Language Models](/grids/en/start/pricing/llm) pricing updated: OpenAI models adjusted from 20% off to **40% off** official pricing; Claude models adjusted from 20% off to **40% off** official pricing; X.AI (Grok) models adjusted from 20% off to **50% off** official pricing. See [pricing details](/grids/en/start/pricing/llm). ## 2026-04-29 * [LLM Large Language Models](/grids/en/start/pricing/llm) OpenAI models changed from official list price to 20% off official pricing; Claude models changed from 10% off to 20% off official pricing. See [pricing details](/grids/en/start/pricing/llm). ## 2026-04-18 * In [Gemini image](/api/en/gemini/generate), the price of the `gemini-3.1-flash-image-preview` model has been adjusted from 3 quota to 4 quota. See [pricing details](/grids/en/start/pricing/image#gemini). ## 2026-04-17 * [Grok AI](/api/en/grok/generations) Video generation endpoint: Price adjusted from 6 quota to 12 quota for`>10s and <=20s`,Price adjusted from 9 quota to 20 quota for`>20s and <=30s`,[pricing details](/grids/en/start/pricing/video#grok-video). ## 2026-04-16 * [Novel AI](/api/en/novel/text-to-image) image generation pricing has been updated from 4 quota to 6 quota. See [pricing details](/grids/en/start/pricing/image#novel-ai). ## 2026-04-07 * `sora-2` changed from `2 quota` to `10 quota`. ## 2026-03-31 * Grok image changed from free to `2 quota`. ## 2026-03-23 * `sora-2` changed from `15 quota` to `2 quota`. ## 2026-03-05 * [Suno Upload](/api/en/suno/suno_upload) changed from fully free to limited free usage. The current rule is the first `200` uploads per day are free, then `0.5 quota` per request. ## 2026-02-26 * `sora-2` changed from `10 quota` to `15 quota`. ## 2026-02-25 * [Suno Sounds](/api/en/suno/suno_sounds) increased from `1.0 quota` to `1.2 quota`. See [Audio Pricing](/grids/en/start/pricing/audio). ## 2026-02-13 * `sora-2` changed from `15 quota` to `10 quota`. ## 2026-02-12 * `sora-2` changed from `20 quota` to `15 quota`. * LLM pricing changed from a fixed `20% off` model to a variable range of `40% off` through list price depending on channel conditions. ## 2026-02-10 * `sora-2` changed from `36 quota` to `20 quota`. ## 2026-02-08 * Due to increased Sora risk-control cost, `sora-2` changed from `10 quota` to `36 quota`. * [Suno MIDI](/api/en/suno/suno_midi) changed from free to paid. ## 2025-08-25 * [Midjourney Imagine](/api/en/midjourney/imagine) in `turbo` mode changed from `6 quota` to `7 quota`. ## 2025-07-30 * Some Midjourney follow-up actions were repriced. See [Image Pricing](/grids/en/start/pricing/image). ## 2025-07-01 * Flux legacy model pricing changed. See [Image Pricing](/grids/en/start/pricing/image). ## 2025-03-31 * [Suno Music](/api/en/suno/suno_music) changed from `5 quota` to `6 quota`. ## 2024-11-08 * Claude pricing changed from `30% off` to `20% off` official pricing. * DALLE 3 pricing changed from a much higher markup to `40% off` official pricing. ## 2024-10-07 * Midjourney `imagine` pricing changed: `v6` dropped from `5 quota` to `4 quota`, while `v5` and other models changed from `3 quota` to `4 quota`. ## 2024-08-27 * Midjourney hosting changed from `$6 / account / month` to `$9 / account / month`. See [Midjourney Account Hosting](/grids/en/development/midjourney-hold-account). ## 2024-06-05 * Midjourney, SwapFace, and DALLE 3 pricing was adjusted. * Midjourney [Action](/api/en/midjourney/action) turbo `U` changed from `2 quota` to `1 quota`. * Midjourney [Describe](/api/en/midjourney/describe) changed to a flat `1 quota`. * Midjourney [Blend](/api/en/midjourney/blend) no longer supports turbo mode. * [SwapFace](/api/en/swapface/swap) changed from `1 quota` to `2 quota`. * [DALLE 3](/api/en/openai/images-generations) HD `1024x1792` and `1792x1024` changed from `3 quota` to `4 quota`. ## 2024-03-26 * Midjourney pricing dropped by `30%` overall. ## 2024-01-12 * Midjourney `imagine` pricing for `v6.0` was adjusted.
# Midjourney Account Hosting Source: https://docs.ttapi.io/grids/en/about/midjourney-hold-account Setup notes and operational guidance for TTAPI Midjourney account hosting This page covers the practical setup and usage details for TTAPI Midjourney account hosting. ## Before you start Your Midjourney account must already have an active paid subscription. You also need to create a Discord channel and invite the Midjourney Bot into that channel. You can follow the [official Midjourney guide](https://docs.midjourney.com/docs/invite-the-bot). Once those steps are complete, you can bind the account in the TTAPI Midjourney hosting console. Invite Midjourney Bot Discord channel example Make sure the Midjourney Bot has successfully joined your channel before you start the hosting setup. ## Get the Discord Authorization token If you are familiar with browser devtools, this is simply the `Authorization` header value from a Discord request. Keep these points in mind: * Do not log out of Discord after extracting the token, or it may become invalid * It is safer to use an incognito browser window, then close it after setup is complete Using Chrome as an example: 1. Sign in to Discord, create a private channel, and invite the Midjourney Bot 2. Open the channel, then press `F12` 3. Open the `Network` tab and search for `message` 4. Switch to `Fetch/XHR` 5. Click a request similar to `message?limit=50` 6. In `Headers` under `Request Headers`, copy the `Authorization` value Open devtools Authorization token ## Execution window When you expand the account details, you will see three time window options: `DAY`, `NIGHT`, and `ALL TIME`. * `DAY`: active during `0-12` UTC * `NIGHT`: active during `12-24` UTC * `ALL TIME`: active during `0-24` UTC These settings are most useful when you rotate multiple accounts across different time windows. In most cases, it is better not to run a single account at full load for 24 hours a day. Time range settings ## Execution mode After an account is bound successfully, you can assign an execution mode. TTAPI then routes Midjourney requests to matching accounts based on the speed mode you use. Typical use case: * Some accounts are close to renewal but still have fast hours left * You can set those accounts to `Only Fast` or `Only Turbo` * This helps consume the remaining high-speed usage first Also note: * When an account runs out of `fast` time, TTAPI automatically switches it to `Only Relax` * After the next monthly renewal or after you buy extra time, switch it back manually if needed Execution mode ## Subscription, seat count, and usage planning ### Cancel a subscription Inside the console: 1. Open `Billing` 2. Go to subscription billing 3. Find the active subscription 4. Click `Unsubscribe` if it is still active The account remains available until the current billing cycle ends. It simply will not renew for the next cycle. Unsubscribe ### Choose the right seat count This depends mainly on two variables: * Which speed mode you use * How often you run jobs For `relax`-only usage, hosting is usually not the best fit unless you already have a large number of stable low-cost accounts. As a conservative rule of thumb: * Keep `fast` usage below about `300` images per account per day * Keep `relax` usage around `150-200` images per account per day * Spread traffic across multiple accounts instead of concentrating it on one account If your workflow is more bursty and you want to burn through `fast` usage in `24-48` hours, size your seat count around your daily volume and subscription plan. Example: * If you need about `10,000` fast `imagine` tasks per day * A `$30` plan may require around `10` hosted seats * Higher-tier plans can reduce the number of seats you need ## Risk and captcha handling ### Reduce account risk There is no guaranteed formula, but the safer operating pattern is usually: * Avoid running one account at full load for long periods * Spread jobs across multiple accounts * Do not keep one account busy 24/7 * Leave headroom for spikes and account rotation ### Popup captcha handling Since Midjourney introduced the newer popup verification flow, many users run into repeated human checks. TTAPI includes that handling inside the hosting service so hosted accounts can continue processing without manual intervention. Important notes: * This capability has a fixed operational cost * Hosted pricing was adjusted from `$6 / account / month` to `$9 / account / month` * Existing subscribers on the older plan keep the original `$6 / month` pricing Captcha handling # Gateway & Auth Source: https://docs.ttapi.io/grids/en/development/authentication Gateway domains, request rules, and how to authenticate with TTAPI ## Overview The TTAPI gateway is the entry point for all API requests. It handles routing, authentication, and traffic control. Every request must pass gateway authentication, otherwise the API returns `401`. ### General API domains * **Primary**: `https://api.ttapi.io` * Recommended for most requests * **Accelerated**: `https://api.ttapi.org` * Recommended for longer-running synchronous requests ### Midjourney hosting domains * **Primary**: `https://hold.ttapi.io` * **Accelerated**: `https://hold.ttapi.org` ### Claude Code domains * **Primary**: `https://cc.ttapi.io` * Recommended for most requests * **Accelerated**: `https://cc.ttapi.org` * Recommended for longer-running synchronous requests ## Authentication All TTAPI endpoints use `TT-API-KEY` in the request header. * Header name: `TT-API-KEY` * Location: HTTP request header * Case sensitivity: case-sensitive * Key source: [TTAPI Dashboard](https://dashboard.ttapi.io/) ## Request rules | Item | Requirement | | :- | :- | | Protocol | HTTPS only | | Method | Follow the API definition | | Encoding | UTF-8 | | Content type | `application/json` | ## Auth errors | HTTP code | Meaning | What to check | | :- | :- | :- | | `401` | Authentication failed | Missing key, wrong key, or inactive account | #### Sample error response ```json theme={null} { "status": "FAILED", "message": "Wrong TT-API-KEY or email is not activated." } ``` # Responses Source: https://docs.ttapi.io/grids/en/development/response Unified response format, HTTP status codes, and common error cases TTAPI uses a consistent JSON response structure across endpoints so your application can handle success and failure cases in a predictable way. ## Unified response format ### Success ```json theme={null} { "status": "SUCCESS", "message": "success", "data": { "jobId": "b8bd3ff0-4349-4b71-8938-5e13aefa64fe" } } ``` ### Failure ```json theme={null} { "status": "FAILED", "message": "Parameter error", "data": null } ``` ## HTTP status codes | HTTP code | Meaning | Common cause | | :- | :- | :- | | `200` | Request succeeded | Submission or fetch succeeded | | `400` | Bad request | Invalid or missing parameters | | `401` | Unauthorized | Missing or invalid `TT-API-KEY` | | `402` | Insufficient balance | Not enough quota | | `404` | Not found | Wrong endpoint or missing resource | | `429` | Too many requests | Short-term request rate exceeded | | `499` | Queue exhausted | Not enough queue capacity for that product | | `500` | Server error | Internal service failure | | `504` | Timeout | Long-running synchronous request timed out | ## Business statuses The `status` field inside the JSON body describes the task state at the business level. | Status | Meaning | | :- | :- | | `PENDING_QUEUE` | Waiting in queue | | `ON_QUEUE` | In progress | | `SUCCESS` | Completed successfully | | `FAILED` | Task failed | ## Common examples ### Successful submission ```json theme={null} { "status": "SUCCESS", "message": "success", "data": { "jobId": "b8bd3ff0-4349-4b71-8938-5e13aefa64fe" } } ``` ### Successful fetch ```json theme={null} { "status": "SUCCESS", "message": "", "jobId": "8ddd973f-b5ff-4192-b418-b37fb65c65f3", "data": { "action": "imagine", "jobId": "8ddd973f-b5ff-4192-b418-b37fb65c65f3", "progress": "100", "prompt": "A cute kitten", "quota": "2", "discordImage": "https://cdn.ttapi.io/midjourney/2025-11-14/20260307_024522_19cf9806e1c7438b.png", "cdnImage": "https://cdn.ttapi.io/midjourney/2025-11-14/20260307_024522_19cf9806e1c7438b.png", "width": 960, "height": 1200, "hookUrl": "https://webhook-test.com/40bb50795afa242aee8c837617cd72e9", "components": [ "upsample1", "upsample2", "upsample3", "upsample4", "reroll", "variation1", "variation2", "variation3", "variation4" ], "seed": null, "images": [ "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84tl.png", "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84tr.png", "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84bl.png", "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84br.png" ] } } ``` ### Parameter error ```json theme={null} { "status": "FAILED", "message": "[Invalid parameter] Invalid value for argument: `--v`:`8`", "data": null } ``` ### Invalid key ```json theme={null} { "status": "FAILED", "message": "Wrong TT-API-KEY or email is not activated." } ``` ## Notes * For `4xx` responses, check the request first before retrying * For `5xx` responses, retry once or twice, then contact support if the issue persists * Save the returned `jobId` for polling, webhook correlation, and troubleshooting # How does TTAPI pricing work? Quota usage, discounts and payment methods Source: https://docs.ttapi.io/grids/en/faq/billing Learn how TTAPI pricing and quota system work, including how usage is calculated, current discounts, billing rules, and supported payment methods. ## Quota and billing model * TTAPI uses `quota` as its billing unit, where `1 USD = 100 quota` * For example, a task that costs `4 quota` consumes `$0.04` * TTAPI uses a prepaid model, so usage is deducted from your existing balance * Purchased quota is currently **non-expiring** ## Refund policy For paid, used, credited, or already-charged products and subscription services, TTAPI does not accept any refund requests unless there is a platform-side product issue. To cancel a **Midjourney Hold Account** subscription, go to the **Billing** menu, find the first order created when you originally subscribed, and cancel the subscription from that order. Cancelling a subscription only stops future automatic charges; subscription fees already incurred are non-refundable. # What are TTAPI accounts and queue system? How do API concurrency and task queues work? Source: https://docs.ttapi.io/grids/en/faq/queue Learn how TTAPI accounts and queue system work, including API concurrency limits, request queuing, queue priority, and rate limiting. ## What queue means on TTAPI On TTAPI, `queue` does not mean traditional rate limiting such as `QPS` or `RPM`. It means the number of **in-progress tasks** a product can hold for your account at the same time. An in-progress task usually means one of these: * The task has been accepted but is still waiting in queue * The task is already running but has not finished yet * The final result must be fetched later through polling or webhook callbacks So queue is closer to concurrent active jobs than per-second request throughput. ## Which products use queue limits | Product | Queue limit | Why | | :- | :- | :- | | `Midjourney` | Yes | Jobs take time and results are usually asynchronous | | `Suno` | Yes | Music generation is long-running and asynchronous | | `Sora` | Yes | Video jobs are resource-heavy and slower to complete | | `Producer` | Yes | Audio generation and processing are not instant jobs | These products all share the same pattern: longer execution time, higher resource usage, and delayed final results. ## Why queue limits exist TTAPI relies on a finite account pool and execution capacity behind each product line. Without queue controls, a single customer could suddenly push a large amount of unannounced concurrency and fill the shared account pool, which can lead to: * One product line being saturated * Other users being blocked from submitting or fetching tasks * Large queue buildup across the service * Upstream provider risk controls or service degradation The goal of queue limits is not to block normal usage. It is to prevent abusive or unplanned traffic spikes from destabilizing the platform. ## Queue expansion If you expect stable and predictable traffic, you can [contact us](/grids/en/about/connect) to request more queue capacity. Useful details to include: * Which product needs more queue * Expected peak concurrent jobs * Typical daily task volume * Time window for the traffic increase * Whether the increase is tied to a launch, campaign, or scheduled growth Queue expansion is currently **free**, but we may include it in future value-added service plans. # How long does TTAPI store files? Where are they stored? Is persistence supported? Source: https://docs.ttapi.io/grids/en/faq/storage Understand TTAPI's file storage mechanism, including storage locations, retention periods, persistence, and best practices for managing your content. ## Storage & Persistence TTAPI provides temporary storage for generated content. Files' expiration times vary depending on the storage node where they are located. ### Expiration Time Table | Storage Domain (Host) | Expiration | Description | | :- | :- | :- | | `https://cdn.ttapi.io`
`https://cdn1.ttapi.io` | 15-30 days | TTAPI's native storage service | | `https://cloudflarer2.ttapi.io` | 3 days | Cloudflare R2 storage node | | `https://cdn2.suno.ai`
`https://delivery.eu2.bfl.ai`
... | Sync with official | Original provider's CDN, follows their official retention policy | ### Usage Recommendations As the platform provides temporary relay storage, please keep the following in mind to ensure your business stability: * **Timely Persistence**: We recommend downloading and uploading files to your own cloud storage (e.g., Aliyun OSS, AWS S3) as soon as you receive the results. * **Avoid Direct Linking**: Do not use the platform's temporary file URLs as long-term access links in your production environment. # Midjourney API Async Workflow | Fetch, Polling, and Follow-up Actions Source: https://docs.ttapi.io/grids/en/start/midjourney-api-async-workflow Learn how to run asynchronous Midjourney API workflows on TTAPI using imagine, fetch, action, blend, and inpaint endpoints. # Midjourney API Async Workflow The **Midjourney API** on TTAPI is centered around asynchronous task handling. This guide helps you decide when to submit, when to poll, and when to continue a finished job. ## Core Async Pattern The most common pattern is: 1. Submit a job through [Imagine](/api/en/midjourney/imagine), [Blend](/api/en/midjourney/blend), or [Inpaint](/api/en/midjourney/inpaint) 2. Receive a `jobId` 3. Poll the [Midjourney Fetch API](/api/en/midjourney/fetch) 4. Trigger a follow-up operation through the [Midjourney Action API](/api/en/midjourney/action) if needed ## Which Endpoint Starts The Job | Use case | Starting endpoint | | :- | :- | | Prompt-based image generation | [Imagine](/api/en/midjourney/imagine) | | Multi-image composition | [Blend](/api/en/midjourney/blend) | | Region editing | [Inpaint](/api/en/midjourney/inpaint) | | Prompt extraction | [Describe](/api/en/midjourney/describe) | ## When To Poll Fetch Use [Midjourney Fetch](/api/en/midjourney/fetch) when: * You need final image URLs * You want to know whether the task succeeded or failed * Your app needs the finished components before calling an action ## When To Use Action Use [Midjourney Action](/api/en/midjourney/action) after a successful generation when you want: * Upscale * Variation * Reroll * Zoom * Pan ## Common Midjourney Async Paths | Workflow | Path | | :- | :- | | Text prompt to final image | [Imagine](/api/en/midjourney/imagine) -> [Fetch](/api/en/midjourney/fetch) | | Grid to upscale or variation | [Imagine](/api/en/midjourney/imagine) -> [Fetch](/api/en/midjourney/fetch) -> [Action](/api/en/midjourney/action) | | Image blend workflow | [Blend](/api/en/midjourney/blend) -> [Fetch](/api/en/midjourney/fetch) | | Localized image editing | [Inpaint](/api/en/midjourney/inpaint) -> [Fetch](/api/en/midjourney/fetch) | ## Related Pages * [Midjourney API overview](/api/en/midjourney) * [Midjourney API quickstart](/grids/en/start/midjourney-api-quickstart) * [Midjourney workflow guide](/grids/en/start/midjourney-api-workflows) # Midjourney API Quickstart | Generate, Fetch, and Continue Images Source: https://docs.ttapi.io/grids/en/start/midjourney-api-quickstart Start using the Midjourney API on TTAPI with a practical quickstart covering imagine, fetch, and follow-up action workflows for production apps. # Midjourney API Quickstart Use this guide when you want to go from API key to your first working **Midjourney API** integration on TTAPI. ## What You Will Build This quickstart covers the core Midjourney flow: 1. Submit an image generation request 2. Poll the task status 3. Continue the workflow with an action such as upscale or variation ## Step 1: Generate An Image Start with the [Midjourney Imagine API](/api/en/midjourney/imagine). This is the main entry point for prompt-based image generation. ```bash theme={null} curl --request POST \ --url https://api.ttapi.io/midjourney/v1/imagine \ --header 'Content-Type: application/json' \ --header 'TT-API-KEY: YOUR_API_KEY' \ --data ' { "prompt": "cinematic portrait of an astronaut in neon rain", "mode": "fast", "hookUrl": "https://your-domain.com/webhook" } ' ``` ## Step 2: Fetch The Result Midjourney jobs are asynchronous. After you receive a `jobId`, poll the [Midjourney Fetch API](/api/en/midjourney/fetch). ```bash theme={null} curl --request GET \ --url "https://api.ttapi.io/midjourney/v1/fetch?jobId=YOUR_jobId" \ --header 'TT-API-KEY: YOUR_API_KEY' ``` ## Step 3: Continue The Workflow Once the initial grid is ready, use the [Midjourney Action API](/api/en/midjourney/action) for operations such as: * Upscale * Variation * Reroll * Pan * Zoom ## Recommended Midjourney Flow | Goal | Recommended path | | :- | :- | | Prompt to image | [Imagine](/api/en/midjourney/imagine) -> [Fetch](/api/en/midjourney/fetch) | | Continue a strong result | [Imagine](/api/en/midjourney/imagine) -> [Fetch](/api/en/midjourney/fetch) -> [Action](/api/en/midjourney/action) | | Blend multiple sources | [Blend](/api/en/midjourney/blend) -> [Fetch](/api/en/midjourney/fetch) | | Edit part of an image | [Inpaint](/api/en/midjourney/inpaint) -> [Fetch](/api/en/midjourney/fetch) | ## Related Midjourney Pages * [Midjourney API overview](/api/en/midjourney) * [Midjourney Imagine API](/api/en/midjourney/imagine) * [Midjourney Fetch API](/api/en/midjourney/fetch) * [Midjourney Action API](/api/en/midjourney/action) * [Midjourney workflow guide](/grids/en/start/midjourney-api-workflows) # Midjourney API Workflows | Imagine vs Action vs Blend vs Inpaint Source: https://docs.ttapi.io/grids/en/start/midjourney-api-workflows Choose the right Midjourney API endpoint on TTAPI by comparing imagine, action, blend, describe, seed, inpaint, and fetch workflows. # Midjourney API Workflows Use this guide when you need to choose the right **Midjourney API** endpoint for a specific product workflow. ## Midjourney Endpoint Comparison | Endpoint | Best for | | :- | :- | | [Imagine](/api/en/midjourney/imagine) | Prompt-based image generation | | [Action](/api/en/midjourney/action) | Upscale, variation, reroll, pan, and zoom after a completed job | | [Blend](/api/en/midjourney/blend) | Combining multiple source images | | [Describe](/api/en/midjourney/describe) | Converting an image into prompt text | | [Seed](/api/en/midjourney/seed) | Retrieving the seed from a generation | | [Inpaint](/api/en/midjourney/inpaint) | Editing a selected image region | | [Fetch](/api/en/midjourney/fetch) | Polling async task status and outputs | ## Imagine vs Action * Use [Imagine](/api/en/midjourney/imagine) when you are starting a brand-new job. * Use [Action](/api/en/midjourney/action) when you already have a completed generation and want to continue it. ## Blend vs Inpaint * Use [Blend](/api/en/midjourney/blend) when you want to merge multiple images into a new result. * Use [Inpaint](/api/en/midjourney/inpaint) when you want to edit a chosen area of an existing image. ## Describe vs Seed * Use [Describe](/api/en/midjourney/describe) when you want text guidance derived from an image. * Use [Seed](/api/en/midjourney/seed) when you want to inspect or reuse generation seed information. ## Recommended Starting Points | Goal | Start here | | :- | :- | | Generate images from prompts | [Midjourney Imagine API](/api/en/midjourney/imagine) | | Continue a finished result | [Midjourney Action API](/api/en/midjourney/action) | | Blend reference images | [Midjourney Blend API](/api/en/midjourney/blend) | | Edit a region | [Midjourney Inpaint API](/api/en/midjourney/inpaint) | | Poll async status | [Midjourney Fetch API](/api/en/midjourney/fetch) | ## Related Pages * [Midjourney API overview](/api/en/midjourney) * [Midjourney API quickstart](/grids/en/start/midjourney-api-quickstart) * [Midjourney async workflow guide](/grids/en/start/midjourney-api-async-workflow) # Audio Pricing Source: https://docs.ttapi.io/grids/en/start/pricing/audio Pricing for Suno and Producer endpoints on TTAPI ## Suno See the full [Suno API docs overview](/api/en/suno) for endpoint details and integration guidance. Helpful guides: * [Suno API Quickstart](/grids/en/start/suno-api-quickstart) * [Suno async workflow guide](/grids/en/start/suno-api-async-workflow) `—` means the price applies to every model supported by that endpoint. Suno legacy models have all been discontinued. Only `chirp-v6`, `chirp-v6-wild`, and `chirp-v6-mini` are currently supported. Passing a discontinued legacy model name maps it to `chirp-v6`. See [Model Mapping](/api/en/suno#model-mapping). For generation endpoints, enabling `max_mode=true` in custom mode doubles credit consumption. For example, music generation goes from **6 quota** to **12 quota**. `max_mode` defaults to `false` and is available in custom mode only. | Endpoint | Model | Price | | :- | :- | :- | | [Music generation](/api/en/suno/suno_music) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Extend](/api/en/suno/suno_extend) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Cover](/api/en/suno/suno_cover) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Upload Cover](/api/en/suno/suno_upload_cover) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Upload Extend](/api/en/suno/suno_upload_extend) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Add vocals](/api/en/suno/suno_add_vocals) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Add instrumental](/api/en/suno/suno_add_instrumental) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Add stem](/api/en/suno/suno_add_stem) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Stem separation](/api/en/suno/suno_stems) | `—` | **12 quota (≈\$0.12)** | | [Stems all](/api/en/suno/suno_stems_all) | `—` | **30 quota (≈\$0.30)** | | [Remaster](/api/en/suno/suno_remaster) | `—` | **6 quota (≈\$0.06)** | | [Mashup](/api/en/suno/suno_mashup) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Inspo](/api/en/suno/suno_inspo) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Sample](/api/en/suno/suno_sample) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Midi](/api/en/suno/suno_midi) | `—` | **6 quota (≈\$0.06)** | | [Replace section](/api/en/suno/suno_replace_section) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **6 quota (≈\$0.06)** | | [Lyrics generation](/api/en/suno/suno_lyrics) | `—` | **1 quota (≈\$0.01)** | | [Sounds](/api/en/suno/suno_sounds) | `chirp-v6`
`chirp-v6-wild`
`chirp-v6-mini` | **1.2 quota (≈\$0.012)** | | [Speech](/api/en/suno/suno_speech) | `—` | **6 quota (≈\$0.06)** | | [Upload](/api/en/suno/suno_upload) | `default` | **0.5 quota (≈\$0.005)** | | [Upload](/api/en/suno/suno_upload) | `enhanced` | **1 quota (≈\$0.01)** | | [Create voice](/api/en/suno/suno_create_voice) | `—` | **2 quota (≈\$0.02)** | | [Create model](/api/en/suno/suno_create_model) | `—` | **60 quota (≈\$0.60)** | | [Crop track](/api/en/suno/suno_crop) | `—` | **1 quota (≈\$0.01)** | | [Remove section](/api/en/suno/suno_remove_section) | `—` | **1 quota (≈\$0.01)** | | [Fade in](/api/en/suno/suno_fade_in) | `—` | **1 quota (≈\$0.01)** | | [Fade out](/api/en/suno/suno_fade_out) | `—` | **1 quota (≈\$0.01)** | | [Adjust speed](/api/en/suno/suno_adjust_speed) | `—` | **3 quota (≈\$0.03)** | | [File Download](/api/en/suno/suno_download) | `—` | **0.2 quota (≈\$0.002)** | | [Wav](/api/en/suno/suno_wav) | `—` | **0.2 quota (≈\$0.002)** (deprecated) | | [Aligned lyrics](/api/en/suno/suno_aligned_lyrics) | `—` | **Free** | | [Concatenate](/api/en/suno/suno_concat) | `—` | **Free** | | [Persona](/api/en/suno/suno_persona) | `—` | **Free** | | [Video generation](/api/en/suno/suno_generate_video) | `—` | **Free** | | [Upsample tags](/api/en/suno/suno_upsample_tags) | `—` | **Free** | | [Bpm](/api/en/suno/suno_bpm) | `—` | **Free** | ## Producer See the full [Producer API documentation](/api/en/producer) for endpoint details and integration guidance. | Endpoint | Price | | :- | :- | | [Music generation](/api/en/producer/producer_music)
[Extend](/api/en/producer/producer_extend)
[Cover](/api/en/producer/producer_cover)
[Variation](/api/en/producer/producer_variation)
[Replace](/api/en/producer/producer_replace)
[Vocal cover](/api/en/producer/producer_vocals-swap)
[Instrumental cover](/api/en/producer/producer_instrumentals-swap)
[Stem export](/api/en/producer/producer_stems) | **3 quota (≈\$0.03)** | | [Lyrics generation](/api/en/producer/producer_lyrics)
[Audio download](/api/en/producer/producer_download) | **1 quota (≈\$0.01)** | ## FlowMusic (Producer Upgraded Version) See the full [FlowMusic API documentation](/api/en/flowmuisc) for endpoint details and integration guidance. > **Model Info**: FlowMusic supports both **Lyria 3 Pro** and **Lyria 3.5** models, with Lyria 3 Pro as the default. Lyria 3.5 is priced the same as Lyria 3 Pro. | Endpoint | Price | | :- | :- | | [Music generation](/api/en/flowmuisc/flowmuisc_generate)
[Extend](/api/en/flowmuisc/flowmuisc_extend)
[Replace](/api/en/flowmuisc/flowmuisc_replace)
[Stem separation](/api/en/flowmuisc/flowmuisc_stems) | **3 quota (≈\$0.03)** | | [Lyrics generation](/api/en/flowmuisc/flowmuisc_lyricscreate)
[Audio download](/api/en/flowmuisc/flowmuisc_download)
[Video download](/api/en/flowmuisc/flowmuisc_videoclip) | **1 quota (≈\$0.01)** | | [Audio upload](/api/en/flowmuisc/flowmuisc_uploadaudio) | **0.5 quota (≈\$0.005)** | ## QW Music See the full [QW Music API documentation](/api/en/qwmusic) for endpoint details and integration guidance. | Endpoint | Price | | :- | :- | | [Submit music generation task](/api/en/qwmusic/generate) | **1 quota (≈\$0.01)** | | [Query task result](/api/en/qwmusic/fetch) | **Free** | # Image Pricing Source: https://docs.ttapi.io/grids/en/start/pricing/image Pricing for image generation and image editing models on TTAPI All prices below use `quota` as the billing unit. Dollar values are approximate and shown only to help with estimation. If there is any difference between this page and the dashboard, the live billing result takes precedence. `flux-schnell` starts at **0.6 quota (≈\$0.006)**. `GPT-4o`, `Gemini`, and `SwapFace` are easy to estimate per request. `OpenAI` image endpoints are billed at **20% off** official pricing. `Flux 2` models are billed at **40% off** official pricing. ## Midjourney See the full [Midjourney API documentation](/api/en/midjourney) for endpoint details and integration guidance. Note: The prices below are standard image generation prices. In `fast` and `turbo` modes, using `hd` image generation consumes **1.5x** the listed quota for the corresponding item; `relax` mode is not affected by this rule. ### Image generation | Operation | Relax | Fast | Turbo | | :- | :- | :- | :- | | `imagine` | **3 quota (≈\$0.03)** | **5 quota (≈\$0.05)** | **7 quota (≈\$0.07)** | | `variation`
`high_variation`
`low_variation`
`pan`
`zoom_out`
`vary_region`
`reroll`
`make_square` | **3 quota (≈\$0.03)** | **5 quota (≈\$0.05)** | **7 quota (≈\$0.07)** | | `upscale_creative`
`redo_upscale_creative` | **3 quota (≈\$0.03)** | **8 quota (≈\$0.08)** | **14 quota (≈\$0.14)** | | `upscale_subtle`
`redo_upscale_subtle` | **3 quota (≈\$0.03)** | **8 quota (≈\$0.08)** | **14 quota (≈\$0.14)** | | `upsample` | **1 quota (≈\$0.01)** | **1 quota (≈\$0.01)** | **1 quota (≈\$0.01)** | | `upscale2` | **8 quota (≈\$0.08)** | ~~Not supported~~ | **12 quota (≈\$0.12)** | | `upscale4` | **18 quota (≈\$0.18)** | ~~Not supported~~ | **36 quota (≈\$0.36)** | | `describe` | **1 quota (≈\$0.01)** | **1 quota (≈\$0.01)** | **1 quota (≈\$0.01)** | | `blend` | **3 quota (≈\$0.03)** | **5 quota (≈\$0.05)** | ~~Not supported~~ | | `seed` | **1 quota (≈\$0.01)** | **1 quota (≈\$0.01)** | **1 quota (≈\$0.01)** | ### Image editing | Mode | Price | | :- | :- | | `fast` | **5 quota (≈\$0.05)** | | `relax` | **3 quota (≈\$0.03)** | | `turbo` | **7 quota (≈\$0.07)** | ## OpenAI See the full [OpenAI image API documentation](/api/en/openai) for endpoint details and integration guidance. Note: Prices may be dynamically adjusted based on cost changes. ### 1. Official Channel > Use case: Accessed through the official authorized channel, pricing follows OpenAI's official rates. Suitable for users who prioritize official stability and compliance. | Endpoint | Price | | :- | :- | | [OpenAI Image Generation](/api/en/openai/images-generations) | **20% off official OpenAI pricing** | | [OpenAI Image Editing](/api/en/openai/images-edits) | **20% off official OpenAI pricing** | ### 2. Non-Official Channel (Fixed Price Models) > Use case: Accessed through a non-official channel, with fixed model pricing. Suitable for users with lower stability requirements or those sensitive to cost. | Model | Price | | :- | :- | | [gpt-image-2.5](/api/en/openai/gpt-generations) | **2 quota (≈\$0.02) / image** | | [gpt-image-2](/api/en/openai/gpt-generations) | **2 quota (≈\$0.02) / image** | | [gpt-image-2-plus](/api/en/openai/gpt-generations) | **4 quota (≈\$0.04) / image** | | [gpt-image-1.5](/api/en/openai/gpt-generations) | **2 quota (≈\$0.02) / image** | ## Gemini See the full [Nano Banana API documentation](/api/en/gemini) for endpoint details and integration guidance. | Model | Price | | :- | :- | | `gemini-2.5-flash-image` | **2 quota (≈\$0.02) / image** | | `gemini-3-pro-image-preview` | **6 quota (≈\$0.06) / image** | | `gemini-3.1-flash-image` | **4 quota (≈\$0.04) / image** | | `gemini-3.1-flash-lite-image` | **2 quota (≈\$0.02) / image** | ## Grok Image | Endpoint | Price | | :- | :- | | [Grok image](/api/en/grokimage/image) | **2 quota (≈\$0.02)** | | [Grok Task Result](/api/en/grokimage/fetch) | **No separate charge** | ## Flux See the full [Flux API documentation](/api/en/flux) for endpoint details and integration guidance. | Model / action | Generate | Edit | | :- | :- | :- | | `flux-schnell` | **0.6 quota (≈\$0.006)** | **0.6 quota (≈\$0.006)** | | `flux-dev` | **1.5 quota (≈\$0.015)** | **1.5 quota (≈\$0.015)** | | `flux-pro` | **2 quota (≈\$0.02)** | **2 quota (≈\$0.02)** | | `flux-kontext-pro` | **3 quota (≈\$0.03)** | **3 quota (≈\$0.03)** | | `flux-kontext-max` | **5 quota (≈\$0.05)** | **5 quota (≈\$0.05)** | | `flux-2-pro` | **40% off official pricing** | **40% off official pricing** | | `flux-2-flex` | **40% off official pricing** | **40% off official pricing** | | `flux-2-max` | **40% off official pricing** | **40% off official pricing** | ## Novel AI | Mode | Price | | :- | :- | | `nai-diffusion-5-full` | **8 quota (≈\$0.08)** | | `nai-diffusion-5-curated` | **8 quota (≈\$0.08)** | | `nai-diffusion-4-5-full` | **8 quota (≈\$0.08)** | | `nai-diffusion-4-5-curated` | **8 quota (≈\$0.08)** | ## SwapFace | Endpoint | Price | | :- | :- | | [Submit swap request](/api/en/swapface/swap) | **2 quota (≈\$0.02)** | | [Fetch result](/api/en/swapface/fetch) | **No extra charge** | # LLM Pricing Source: https://docs.ttapi.io/grids/en/start/pricing/llm Pricing rules for OpenAI, Claude, Grok, and Gemini models on TTAPI LLM billing follows the vendor's input and output pricing model, then applies the TTAPI channel discount where applicable. Supported models change over time, so this page focuses on the main platforms and pricing rules rather than every single version. ## Pricing rules | Platform | Common models | Billing rule | | :- | :- | :- | | **OpenAI** | `gpt-4o`
`gpt-4o-mini`
`gpt-4.1`
`gpt-4.1-mini`
`o1`
`o3-mini`
`gpt-5`
`gpt-5-mini`
`gpt-5-nano`
`gpt-5-chat-latest`
`gpt-5.1`
`gpt-5.2`
`gpt-5-nano-2025-08-07`
`gpt-5-pro`
`gpt-5.2-pro`
`gpt-5.4-mini`
`gpt-5.4-nano`
`gpt-5.5`
`gpt-5.6-luna`
`gpt-5.6-terra`
`gpt-5.6-sol`
`gpt-6-astra`
`gpt-6-sol`
`gpt-6-luna` | **20% off official pricing** | | **Claude** | `claude-haiku-4-5-20251001`
`claude-sonnet-4-5-20250929`
`claude-opus-4-5-20251101`
`claude-opus-4-5`
`claude-sonnet-4-5`
`claude-haiku-4-5`
`claude-opus-4-6`
`claude-sonnet-4-6`
`claude-opus-4-7`
`claude-opus-4-8`
`claude-opus-5`
`claude-mythos-5`
`claude-fable-5`
`claude-fable-5-1`
`claude-opus-5-5` | **Official pricing** | | **Gemini** | `gemini-2.5-flash`
`gemini-2.5-flash-lite`
`gemini-2.5-pro`
` gemini-3-pro-preview`
`gemini-3-flash-preview`
`gemini-3.1-pro-preview`
`gemini-3.1-flash-lite-preview`
`gemini-3.1-flash-lite`
`gemini-3.5-flash`
`gemini-3.6-flash`
`gemini-3.7-flash`
`gemini-3.8-flash` | **40% off official pricing** | | **X.AI** | `grok-4`
`grok-4-fast`
`grok-4-1-fast-reasoning`
`grok-4-1-fast-non-reasoning`
`grok-4.3`
`grok-4.5`
`grok-4.6`
`grok-4.7` | **40% off official pricing** | ## Claude Code Supported Models & Pricing | Supported Models | Pricing Details | | :- | :- | | `claude-haiku-4-5-20251001`
`claude-sonnet-4-5-20250929`
`claude-opus-4-5-20251101`
`claude-opus-4-5`
`claude-sonnet-4-5`
`claude-haiku-4-5`
`claude-opus-4-6`
`claude-sonnet-4-6`
`claude-opus-4-7`
`claude-opus-4-8`
`claude-opus-5` | **70% off official pricing** | ## Notes If a platform offers multiple versions of the same model family, the same discount rule usually applies across that platform unless TTAPI announces a special promotion or a separate pricing exception. Final cost per request still depends on actual input tokens, output tokens, context size, and model version. # Video Pricing Source: https://docs.ttapi.io/grids/en/start/pricing/video Pricing for video models and video endpoints on TTAPI Video pricing depends on model, resolution, duration, and channel type. The tables below show common submission pricing. Live billing in the dashboard and endpoint response is the final source of truth. ## Midjourney Video | Resolution / action | Generate | Extend | | :- | :- | :- | | `sd` | **7.5 quota (≈\$0.075)** | **7.5 quota (≈\$0.075)** | | `hd` | **27.5 quota (≈\$0.275)** | **27.5 quota (≈\$0.275)** | ## Grok Video ### UnOfficial See the full [Grok video API documentation](/api/en/grok) for endpoint details and integration guidance. | Model | Duration | Price | | :- | :- | :- | | `grok-imagine-video-1.5-fast` | `10s` | **9 quota (≈\$0.09)** | | `grok-imagine-video-1.5-fast` | `>10s` and `<=20s` | **20 quota (≈\$0.20)** | | `grok-imagine-video-1.5-fast` | `>20s` and `<=30s` | **30 quota (≈\$0.30)** | | `grok-imagine-video-1.5` | `>=1s` and `<=15s` | **2 quota (≈\$0.02)/s** (480P, 720P) | | `grok-imagine-video-1.5` | `>=1s` and `<=15s` | **4 quota (≈\$0.04)/s** (1080P) | | `grok-imagine-video` | `>=1s` and `<=15s` | **2 quota (≈\$0.02)/s** | ### Official **Promotion**: All Grok Official models are billed at **40% off** the official price. Video Extension API pricing is currently offered at a promotional rate and is subject to change. See the full [Grok Official Video API documentation](/api/en/grok) for endpoint details and integration guidance. | Model | Input Type | Input Price | Output Resolution | Output Price | | :- | :- | :- | :- | :- | | `grok-imagine-video` | Text/Image/Video → Video | **0.12 quota (≈\$0.0012)/img**
(original 0.2 quota) | 480P | **3 quota (≈\$0.03)/s**
(original 5 quota) | | `grok-imagine-video` | Text/Image/Video → Video | **0.12 quota (≈\$0.0012)/img**
(original 0.2 quota) | 720P | **4.2 quota (≈\$0.042)/s**
(original 7 quota) | | `grok-imagine-video-1.5` | Image → Video | **0.6 quota (≈\$0.006)/img**
(original 1 quota) | 480P | **4.8 quota (≈\$0.048)/s**
(original 8 quota) | | `grok-imagine-video-1.5` | Image → Video | **0.6 quota (≈\$0.006)/img**
(original 1 quota) | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota) | | `grok-imagine-video-1.5` | Image → Video | **0.6 quota (≈\$0.006)/img**
(original 1 quota) | 1080P | **15 quota (≈\$0.15)/s**
(original 25 quota) | ## HappyHorse Video See the full [HappyHorse API documentation](/api/en/happyhorse) for endpoint details and integration guidance. ### HappyHorse-Text to Video | Model | Output Resolution | Output Price | | :- | :- | :- | | `happyhorse-1.0-t2v` | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota, 40% off official pricing) | | `happyhorse-1.0-t2v` | 1080P | **14.4 quota (≈\$0.144)/s**
(original 24 quota, 40% off official pricing) | | `happyhorse-1.1-t2v` | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota, 40% off official pricing) | | `happyhorse-1.1-t2v` | 1080P | **14.4 quota (≈\$0.144)/s**
(original 24 quota, 40% off official pricing) | ### HappyHorse-Image to Video | Model | Output Resolution | Output Price | | :- | :- | :- | | `happyhorse-1.0-i2v` | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota, 40% off official pricing) | | `happyhorse-1.0-i2v` | 1080P | **14.4 quota (≈\$0.144)/s**
(original 24 quota, 40% off official pricing) | | `happyhorse-1.1-i2v` | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota, 40% off official pricing) | | `happyhorse-1.1-i2v` | 1080P | **14.4 quota (≈\$0.144)/s**
(original 24 quota, 40% off official pricing) | ### HappyHorse-Reference to Video | Model | Output Resolution | Output Price | | :- | :- | :- | | `happyhorse-1.0-r2v` | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota, 40% off official pricing) | | `happyhorse-1.0-r2v` | 1080P | **14.4 quota (≈\$0.144)/s**
(original 24 quota, 40% off official pricing) | | `happyhorse-1.1-r2v` | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota, 40% off official pricing) | | `happyhorse-1.1-r2v` | 1080P | **14.4 quota (≈\$0.144)/s**
(original 24 quota, 40% off official pricing) | ### HappyHorse-Video Edit Video edit billing: both input and output videos are billed by video seconds. Failed tasks are not billed and do not consume free quota. | Model | Output Resolution | Input and Output Price | | :- | :- | :- | | `happyhorse-1.0-video-edit` | 720P | **8.4 quota (≈\$0.084)/s**
(original 14 quota, 40% off official pricing) | | `happyhorse-1.0-video-edit` | 1080P | **14.4 quota (≈\$0.144)/s**
(original 24 quota, 40% off official pricing) | ## Gemini Video Models See the full [Gemini Video API documentation](/api/en/gemini/video-generations) for endpoint details and integration guidance. ### Veo 3.1 | Model | Duration | Generate | Extend | | :- | :- | :- | :- | | `veo-3.1-quality` | `8s` | **100 quota (≈\$1.0)** | **100 quota (≈\$1.0)** | | `veo-3.1-fast` | `8s` | **14 quota (≈\$0.14)** | **14 quota (≈\$0.14)** | | `veo-3.1-lite` | `8s` | **7 quota (≈\$0.07)** | **7 quota (≈\$0.07)** | ### omni-flash | Resolution | Duration | Price | | :- | :- | :- | | `720p` / `1080p` | `4s` | **25 quota (≈\$0.25)** | | `720p` / `1080p` | `6s` | **30 quota (≈\$0.3)** | | `720p` / `1080p` | `8s` | **35 quota (≈\$0.35)** | | `720p` / `1080p` | `10s` | **40 quota (≈\$0.4)** | | Default | — | **35 quota (≈\$0.35)** | ## Flux 3 Video Models For a complete overview of capabilities and API endpoints, please refer to the [Flux 3 Video API Documentation](/api/en/flux/flux-3-video). **Promotion**: The Flux 3 official model is currently offered at **60% of the official price**. This is a promotional price and is subject to change. | | Resolution | Operation | Price | | :- | :- | :- | :- | | `FLUX 3 Video` | `HD` | `Text / Image → Video` | **10.2 quota (≈\$0.102) / second**
(Original price: 17 quota) | | `FLUX 3 Video` | `FHD` | `Text / Image → Video` | **17.4 quota (≈\$0.174) / second**
(Original price: 29 quota) | | `FLUX 3 Video` | `HD` | `Video → Video` | **24.6 quota (≈\$0.246) / second**
(Original price: 41 quota) | | `FLUX 3 Video` | `FHD` | `Video → Video` | **31.8 quota (≈\$0.318) / second**
(Original price: 53 quota) | | `FLUX 3 Video Draft` | `HD` | `Text / Image → Video` | **3.6 quota (≈\$0.036) / second**
(Original price: 6 quota) | | `FLUX 3 Video Draft` | `HD` | `Video → Video` | **7.2 quota (≈\$0.072) / second**
(Original price: 12 quota) | ## Wan Video Models **Promotion**: Limited-time official **30% off** discount. Billing rules: both input and output videos are billed by video seconds. Failed tasks are not billed and do not consume free quota. For a complete overview of capabilities and API endpoints, please refer to the [Wan 3.0 API Documentation](/api/en/wan/reference-to-video). ### wan3.0-video (Standard Version) | Model | Output Resolution | Price | | :- | :- | :- | | `wan3.0-video` | 480P | **3.5 quota (≈\$0.035)/s**
(original 0.05/s, limited-time 30% off) | | `wan3.0-video` | 720P | **7 quota (≈\$0.07)/s**
(original 0.1/s, limited-time 30% off) | | `wan3.0-video` | 1080P | **14 quota (≈\$0.14)/s**
(original 0.2/s, limited-time 30% off) | # TTAPI Quick Start | AI API Integration Guide (Image, Video, Audio, LLM APIs) Source: https://docs.ttapi.io/grids/en/start/quick-start This guide helps you quickly get started with TTAPI and integrate image, video, audio, and LLM APIs through a unified API gateway. Complete your first API call in minutes. ## 1. Get your API key Before you call any API, you need a `TT-API-KEY`. ### Step 1: Create your account Go to [TTAPI](https://ttapi.io/) or open the [TTAPI Dashboard](https://dashboard.ttapi.io/login). You can sign in with `GitHub` or `Google`. After your account is created, TTAPI generates a default `TT-API-KEY`. This key is used across all TTAPI endpoints. New accounts also receive `30 quota` (about `$0.30`) in trial credit. ### Step 2: Basic account setup For security, we recommend rotating the default key before production use. You can reset it directly from the dashboard homepage. If you do not want to rely on GitHub or Google login later, use `Forgot password?` on the [login page](https://dashboard.ttapi.io/login) and set a password for your TTAPI account. ## 2. Add the request header All requests must include your API key in the header: ```bash theme={null} TT-API-KEY: YOUR_API_KEY ``` ## 3. Send your first request ### Step 1: Submit a generation request The example below creates a Midjourney image task. ```bash title="cURL" theme={null} curl --request POST \ --url https://api.ttapi.io/midjourney/v1/imagine \ --header 'Content-Type: application/json' \ --header 'TT-API-KEY: YOUR_API_KEY' \ --data ' { "prompt": "A cute kitten", "mode": "fast", "hookUrl": "" } ' ``` ```python title="Python" theme={null} import requests url = "https://api.ttapi.io/midjourney/v1/imagine" payload = { "prompt": "A cute kitten", "mode": "fast", "hookUrl": "" } headers = { "TT-API-KEY": "YOUR_API_KEY", "Content-Type": "application/json" } response = requests.post(url, json=payload, headers=headers) print(response.text) ``` ```javascript title="JavaScript" theme={null} const options = { method: "POST", headers: { "TT-API-KEY": "YOUR_API_KEY", "Content-Type": "application/json" }, body: JSON.stringify({ prompt: "A cute kitten", mode: "fast", hookUrl: "" }) }; fetch("https://api.ttapi.io/midjourney/v1/imagine", options) .then((res) => res.json()) .then((res) => console.log(res)) .catch((err) => console.error(err)); ``` ```java title="Java" theme={null} HttpResponse response = Unirest.post("https://api.ttapi.io/midjourney/v1/imagine") .header("TT-API-KEY", "YOUR_API_KEY") .header("Content-Type", "application/json") .body("{\n \"prompt\": \"A cute kitten\",\n \"mode\": \"fast\",\n \"hookUrl\": \"\"\n}") .asString(); ``` #### Sample response ```json theme={null} { "status": "SUCCESS", "message": "success", "data": { "jobId": "b8bd3ff0-4349-4b71-8938-5e13aefa64fe" } } ``` ### Step 2: Fetch the task result Use the returned `jobId` to poll the result: ```bash title="cURL" theme={null} curl -X GET "https://api.ttapi.io/midjourney/v1/fetch?jobId={jobId}" \ -H "TT-API-KEY: YOUR_API_KEY" ``` ```python title="Python" theme={null} import requests url = "https://api.ttapi.io/midjourney/v1/fetch" headers = {"TT-API-KEY": "YOUR_API_KEY"} params = {"jobId": "jobId"} response = requests.get(url, headers=headers, params=params) print(response.status_code) print(response.json()) ``` ```javascript title="JavaScript" theme={null} const options = { method: "GET", headers: {"TT-API-KEY": "YOUR_API_KEY"} }; fetch("https://api.ttapi.io/midjourney/v1/fetch?jobId={jobId}", options) .then((res) => res.json()) .then((res) => console.log(res)) .catch((err) => console.error(err)); ``` ```java title="Java" theme={null} OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.ttapi.io/midjourney/v1/fetch?jobId={jobId}") .get() .addHeader("TT-API-KEY", "YOUR_API_KEY") .build(); Response response = client.newCall(request).execute(); System.out.println(response.body().string()); ``` #### Sample response ```json theme={null} { "status": "SUCCESS", "message": "", "jobId": "8ddd973f-b5ff-4192-b418-b37fb65c65f3", "data": { "action": "imagine", "jobId": "8ddd973f-b5ff-4192-b418-b37fb65c65f3", "progress": "100", "prompt": "A cute kitten", "quota": "2", "discordImage": "https://cdn.ttapi.io/midjourney/2025-11-14/20260307_024522_19cf9806e1c7438b.png", "cdnImage": "https://cdn.ttapi.io/midjourney/2025-11-14/20260307_024522_19cf9806e1c7438b.png", "width": 960, "height": 1200, "hookUrl": "https://webhook-test.com/40bb50795afa242aee8c837617cd72e9", "components": [ "upsample1", "upsample2", "upsample3", "upsample4", "reroll", "variation1", "variation2", "variation3", "variation4" ], "seed": null, "images": [ "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84tl.png", "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84tr.png", "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84bl.png", "https://cdn.ttapi.io/midjourney/20260307/5c7261ec-7271-495d-a0f7-4dd395652a84br.png" ] } } ``` ## Task statuses | Status | Meaning | | :- | :- | | `PENDING_QUEUE` | Waiting in queue | | `ON_QUEUE` | Being processed | | `SUCCESS` | Completed successfully | | `FAILED` | Failed | ## Popular next steps * Start the [Suno API Quickstart](/grids/en/start/suno-api-quickstart) if you want to generate music instead of images. * Read the [Suno async workflow guide](/grids/en/start/suno-api-async-workflow) if your integration relies on webhooks or polling. * Read the [Suno workflow guide](/grids/en/start/suno-api-workflows) when you need the right Suno endpoint for your product. ## Need help? * For queue and concurrency limits, see [Queue](/grids/en/faq/queue) * For request signing and headers, see [Gateway & Auth](/grids/en/development/authentication) * For support, see [Contact](/grids/en/about/connect) # Suno API Async Workflow Source: https://docs.ttapi.io/grids/en/start/suno-api-async-workflow Learn how to handle Suno API jobs with polling, webhooks, fetch endpoints, retries, and production-safe async workflow patterns on TTAPI. # Suno API Async Workflow Most production **Suno API** integrations are asynchronous. Your app submits a job, receives a `jobId`, and then waits for the final result through polling or a webhook. This guide explains how to structure that workflow cleanly on TTAPI. For the full endpoint map, see the [Suno API docs overview](/api/en/suno). ## When the async model matters Use an async-ready integration whenever you: * Generate full songs or longer audio assets * Upload reference audio before downstream processing * Need reliable background processing in a backend or queue worker * Want to avoid blocking a user request until media is complete ## The core pattern 1. Submit a job through an endpoint such as [Suno Music](/api/en/suno/suno_music), [Upload](/api/en/suno/suno_upload), [Cover](/api/en/suno/suno_cover), or [Extend](/api/en/suno/suno_extend). 2. Store the returned `jobId` in your database or queue. 3. Retrieve the final output through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or a `hookUrl`. 4. Update your application state only after the job reaches a terminal result. ## Polling vs webhook | Approach | Best when | Notes | | :- | :- | :- | | [Fetch V2](/api/en/suno/suno_fetch_v2) polling | You want a simple implementation or your client controls refresh | Easier to debug and replay | | `hookUrl` callback | You already run a public backend and want push-based updates | Better for reducing repeated polling | ## When to prefer Fetch V2 Polling is usually the best starting point when: * You are building the first version of the integration * You want to inspect job transitions in logs * You need to manually retry failed fetches * Your app already has a worker or scheduled job system ## When to prefer webhooks Callbacks are a better fit when: * You want immediate background completion updates * You are processing many jobs every day * You want to reduce repeated fetch traffic * Your backend can expose a stable public endpoint ## Recommended implementation details * Persist `jobId`, request type, and submission time together * Treat job fetching as idempotent so retries are safe * Keep a clear mapping between endpoint type and expected result payload * Log webhook deliveries and fetch responses for debugging * Keep a fallback path that lets you query [Fetch V2](/api/en/suno/suno_fetch_v2) even if a webhook fails ## Common failure patterns * The webhook URL is not publicly reachable * The application discards `jobId` too early * The frontend expects final media in the submit response * The app mixes deprecated [Fetch](/api/en/suno/suno_fetch) behavior with [Fetch V2](/api/en/suno/suno_fetch_v2) * The workflow has no retry or timeout logic for long-running jobs ## Which pages to read next * [Suno API docs overview](/api/en/suno) * [Suno Fetch V2 API](/api/en/suno/suno_fetch_v2) * [Suno Upload API](/api/en/suno/suno_upload) * [Suno Music API](/api/en/suno/suno_music) * [Gateway & Auth](/grids/en/development/authentication) # Suno API Quickstart Source: https://docs.ttapi.io/grids/en/start/suno-api-quickstart Start using the Suno API on TTAPI with authentication, first request flow, async polling, webhook handling, and the fastest path to production. # Suno API Quickstart This guide is the fastest path to a working **Suno API** integration on TTAPI. It is designed for teams that want to go from API key to first completed song without reading every endpoint page first. For the complete docs hub, start with the [Suno API docs overview](/api/en/suno). ## What this quickstart covers * Getting your `TT-API-KEY` * Choosing the first Suno endpoint to call * Creating lyrics or going straight to music generation * Fetching asynchronous results * Continuing the workflow with cover, extend, stems, or export steps ## 1. Prepare your account Before you call Suno endpoints, make sure you have: * A valid `TT-API-KEY` * Access to the TTAPI gateway described in [Gateway & Auth](/grids/en/development/authentication) * Enough quota for the endpoints you plan to use in [Audio Pricing](/grids/en/start/pricing/audio) The standard gateway pattern is: * Base URL: `https://api.ttapi.io` * Header: `TT-API-KEY` * Response flow: submit request -> store `data.jobId` -> fetch result or wait for `hookUrl` ## 2. Pick your starting endpoint Use the endpoint that matches your real starting asset: | Starting point | Best first endpoint | | :- | :- | | You have only a prompt or song idea | [Suno Music API](/api/en/suno/suno_music) | | You want help writing lyrics first | [Suno Lyrics API](/api/en/suno/suno_lyrics) | | You already have reference audio | [Suno Upload API](/api/en/suno/suno_upload) | | You want to reuse an existing song structure | [Suno Extend API](/api/en/suno/suno_extend) or [Suno Cover API](/api/en/suno/suno_cover) | ## 3. Submit your first generation request The most common first integration starts with [Suno Music API](/api/en/suno/suno_music). ```bash theme={null} curl --request POST 'https://api.ttapi.io/suno/v1/music' \ --header 'Content-Type: application/json' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' \ --data-raw '{ "custom": true, "instrumental": false, "mv": "chirp-v6", "title": "Midnight Drive", "tags": "synthwave, female vocal, cinematic", "prompt": "[Verse] Neon headlights on a rainy street" }' ``` If the request is accepted, you should receive an immediate task response: ```json theme={null} { "status": "SUCCESS", "message": "success", "data": { "jobId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } } ``` Store `data.jobId` immediately. You will use that same value as the `jobId` query parameter when calling [Fetch V2](/api/en/suno/suno_fetch_v2). ## 4. Fetch the result with the returned job ID Once you have the task ID, fetch the latest status and final media payload like this: ```bash theme={null} curl --request GET 'https://api.ttapi.io/suno/v2/fetch?jobId=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' ``` The fetch endpoint can return `ON_QUEUE`, `SUCCESS`, or `FAILED`. A completed music task looks like this: ```json theme={null} { "status": "SUCCESS", "message": "success", "jobId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "data": { "jobId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "action": "music", "progress": "100%", "mv": "chirp-v6", "quota": "6", "hookUrl": "https://your-app.example.com/webhooks/suno", "musics": [ { "musicId": "xxxxxxxxxxxxxxxxx", "prompt": "[Verse] Neon headlights on a rainy street", "title": "Midnight Drive", "tags": "synthwave, female vocal, cinematic", "imageUrl": "https://cdn2.suno.ai/xxxxxxxxxxxxxxxxx.jpeg", "imageLargeUrl": "https://cdn2.suno.ai/xxxxxxxxxxxxxx.jpeg", "audioUrl": "https://cdn1.suno.ai/xxxxxxxxxxxxxxx.mp3", "videoUrl": "https://cdn1.suno.ai/xxxxxxxxxxxxxxx.mp4", "duration": 211.44, "modelName": "chirp-hawk", "negativeTags": "", "styleWeight": null, "weirdnessConstraint": null, "audioWeight": null, "createdAt": "2026-03-03T02:23:51.401Z" } ] } } ``` For a first production-ready flow, persist at least: * `data.jobId` from the submit response * `status` and `progress` from fetch * `musicId`, `audioUrl`, `videoUrl`, `modelName`, and `createdAt` from the final `musics` array. `modelName` is the actual model name used by official Suno. ## 5. Decide between polling and webhooks Many Suno integrations are built around background jobs. That means your app usually needs to choose one of these patterns: * Poll [Fetch V2](/api/en/suno/suno_fetch_v2) until the job is finished * Or pass a `hookUrl` during submission and receive a callback when the task completes Polling is usually the easiest way to ship the first integration. Webhooks are usually better once your backend already has a stable callback endpoint and retry handling. If you are designing a job queue, retry logic, or webhook handler, read the [Suno async workflow guide](/grids/en/start/suno-api-async-workflow). ## 6. Add the most useful follow-up endpoints Once the first generation flow works, these are usually the next endpoints teams adopt: * [Suno Extend API](/api/en/suno/suno_extend) to continue a good song idea * [Suno Cover API](/api/en/suno/suno_cover) to restyle an existing song * [Suno Stems API](/api/en/suno/suno_stems) to split vocals and accompaniment * [Suno Upload API](/api/en/suno/suno_upload) to start from source audio * [Suno WAV API](/api/en/suno/suno_wav) when delivery quality matters ## Common integration mistakes * Starting with the wrong endpoint instead of matching the real source asset * Treating async jobs as if they return final media immediately * Forgetting to store `data.jobId` for result polling * Using [Suno Stems API](/api/en/suno/suno_stems) when you actually need the more detailed [Full Stems API](/api/en/suno/suno_stems_all) * Skipping pricing review before enabling higher-cost post-processing endpoints ## Related pages * [Suno API docs overview](/api/en/suno) * [Suno Music API](/api/en/suno/suno_music) * [Suno Fetch V2 API](/api/en/suno/suno_fetch_v2) * [Audio Pricing](/grids/en/start/pricing/audio) * [Suno workflow guide](/grids/en/start/suno-api-workflows) # Suno API Workflow Guide | Choose the Right Suno Endpoint on TTAPI Source: https://docs.ttapi.io/grids/en/start/suno-api-workflows Learn how to choose the right Suno API workflow on TTAPI for prompt-to-song generation, lyrics-first flows, uploads, cover workflows, extensions, stem separation, and exports. # Suno API Workflow Guide If you are building with the **Suno API**, the biggest integration question is usually not "can Suno generate a song?" It is "which Suno endpoint should my app call first, and what should happen next?" This guide maps the main **Suno API workflows** on TTAPI so you can choose the right path for your product. For the main docs hub and endpoint reference map, start with the [Suno API docs overview](/api/en/suno). ## Choose the right Suno starting point | Goal | Best entry point | | :- | :- | | Generate a full song from a prompt | [Suno Music API](/api/en/suno/suno_music) | | Write lyrics before generation | [Suno Lyrics API](/api/en/suno/suno_lyrics) | | Start from a reference file or source audio | [Suno Upload API](/api/en/suno/suno_upload) | | Continue an existing track | [Suno Extend API](/api/en/suno/suno_extend) | | Restyle or reinterpret a song | [Suno Cover API](/api/en/suno/suno_cover) | | Split vocals and backing audio | [Suno Stems API](/api/en/suno/suno_stems) | | Retrieve async job status and results | [Suno Fetch V2 API](/api/en/suno/suno_fetch_v2) | ## The main Suno workflows ### Prompt to song This is the standard workflow for teams starting from an idea, theme, or prompt. 1. Optionally create lyrics through the [Suno Lyrics API](/api/en/suno/suno_lyrics). 2. Submit the song through the [Suno Music API](/api/en/suno/suno_music). 3. Poll [Fetch V2](/api/en/suno/suno_fetch_v2) or receive a `hookUrl` callback. 4. Continue with [Extend](/api/en/suno/suno_extend), [Cover](/api/en/suno/suno_cover), [WAV export](/api/en/suno/suno_wav), or [Stems](/api/en/suno/suno_stems). ### Upload to downstream processing Use this path when the workflow starts from existing vocals, a demo, or reference audio. 1. Upload the source file with the [Suno Upload API](/api/en/suno/suno_upload). 2. Pass the uploaded asset into the next Suno workflow. 3. Fetch the result through [Suno Fetch V2](/api/en/suno/suno_fetch_v2). This path is common for cover generation, vocal-based workflows, and audio transformations. ### Extension and post-processing Use this path when the first song draft is good and you want to improve or expand it. * Use [Suno Extend](/api/en/suno/suno_extend) to continue a track. * Use [Suno Cover](/api/en/suno/suno_cover) to restyle an existing song. * Use [Suno Stems](/api/en/suno/suno_stems) or [Suno Stems All](/api/en/suno/suno_stems_all) for separation workflows. * Use [Suno WAV](/api/en/suno/suno_wav) when higher-quality delivery matters. ## Which endpoint should come first? | You already have... | Recommended first call | | :- | :- | | Only a concept or prompt | [Suno Music API](/api/en/suno/suno_music) | | A theme but no lyrics | [Suno Lyrics API](/api/en/suno/suno_lyrics) | | A source file or voice reference | [Suno Upload API](/api/en/suno/suno_upload) | | A promising song you want to continue | [Suno Extend API](/api/en/suno/suno_extend) | | A song you want to reinterpret | [Suno Cover API](/api/en/suno/suno_cover) | ## Common workflow mistakes * Starting with [Suno Music](/api/en/suno/suno_music) when the real asset is already an uploaded audio reference * Treating submit endpoints as if they return final media immediately * Using the older [Fetch](/api/en/suno/suno_fetch) pattern instead of [Fetch V2](/api/en/suno/suno_fetch_v2) for new integrations * Forgetting to store `jobId` for polling or retry logic * Calling stems too early when the final song has not finished processing ## Recommended next reads * [Suno API docs overview](/api/en/suno) * [Suno API Quickstart](/grids/en/start/suno-api-quickstart) * [Suno API Async Workflow](/grids/en/start/suno-api-async-workflow) * [Audio Pricing](/grids/en/start/pricing/audio) # TTAPI - Unified AI API Platform Source: https://docs.ttapi.io/index ## One API for the Leading AI Models **TTAPI** is a unified AI platform that gives developers and teams seamless access to the most popular AI models through a single gateway. No need to manage multiple vendors, APIs, authentication systems, or billing accounts. TTAPI provides a consistent interface for building AI-powered applications. Integrate products like **Suno API, Midjourney API, HappyHorse, Flux** to build apps powered by image generation, video creation, music synthesis from one platform. Access Midjourney, Flux, NovelAI, and more from one platform. Build Suno and Google Lyria 3 / FlowMusic music workflows from one unified gateway. Generate videos with HappyHorse — text-to-video, image-to-video, reference-to-video, and video editing. ## Explore Product Docs Prompt-based AI image generation, actions, blend, describe, inpaint, and fetch workflows. Generate songs, lyrics, covers, stems, uploads, and full music workflows. Explore Nano Banana, Nano Banana 2, and Nano Banana Pro image workflows plus official Gemini model mappings. Generate and edit images with OpenAI image endpoints workflows. Access Flux image generation, edits, fetch, and official model endpoints. Build music generation, lyrics, stems, upload, and video flows through the FlowMusic product line. An AI video generation model that supports text-to-video, image-to-video, reference-based video generation, and video editing. Build anime-style image generation and image-to-image creative workflows. ## Popular API Documentation Pages | Search intent | Best page on TTAPI | | :- | :- | | Suno API documentation | [Suno API documentation](/api/en/suno) | | Midjourney API documentation | [Midjourney API documentation](/api/en/midjourney) | ## Popular Suno API Guides Go from API key to first generated song with the core Suno workflow on TTAPI. Learn when to use webhooks, when to poll, and how to manage async Suno jobs cleanly. Choose the right Suno endpoint for prompts, uploads, covers, extensions, stems, and exports. ## Popular Midjourney API Guides Go from API key to your first Midjourney image generation workflow with imagine and fetch. Learn how to submit jobs, poll fetch, and continue completed generations with actions. Compare imagine, action, blend, describe, seed, inpaint, and fetch to choose the right endpoint. ## Why teams use TTAPI | Capability | Direct vendor setup | TTAPI | | :- | :- | :- | | Multi-model access | Separate accounts and integrations | Unified gateway | | Pricing management | Vendor by vendor | One balance system | | Operational overhead | Higher | Lower | | Integration speed | Slower | Faster | # Music Cover Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_cover openapi/en/flowmuisc.json POST /flowmusic/v1/cover Perform Cover editing on source music to generate a new music version # Download Audio Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_download openapi/en/flowmuisc.json POST /flowmusic/v1/download-audio Download audio # Music Extension Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_extend openapi/en/flowmuisc.json POST /flowmusic/v1/extend Extend the generated audio, **Note: This endpoint can only be used after the previous task completes successfully** # Get Task Status - fetch Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_fetch openapi/en/flowmuisc.json get /flowmusic/v1/fetch Query task result # Generate Music Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_generate openapi/en/flowmuisc.json POST /flowmusic/v1/generations Generate music via text prompt or custom lyrics, **Note: Each request generates one music** # Generate Lyrics Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_lyricscreate openapi/en/flowmuisc.json POST /flowmusic/v1/lyrics-create Generate lyrics based on prompt # Segment Replacement Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_replace openapi/en/flowmuisc.json POST /flowmusic/v1/replace Replace part of the generated audio # Stems Separation Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_stems openapi/en/flowmuisc.json POST /flowmusic/v1/stems Generate a new music with similar effect based on previous music's seed value # Upload Audio Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_uploadaudio openapi/en/flowmuisc.json POST /flowmusic/v1/upload-audio Upload your own audio for further processing # Download Video Source: https://docs.ttapi.io/api/en/flowmuisc/flowmuisc_videoclip openapi/en/flowmuisc.json POST /flowmusic/v1/video-clip Download video processing # FlowMusic API Documentation Source: https://docs.ttapi.io/api/en/flowmuisc/index View the complete FlowMusic API documentation provided by TTAPI, including music generation, lyrics, extension, replacement, stems, upload, download, video clip, and result query capabilities. # FlowMusic API This is the **FlowMusic API** overview page from TTAPI. Here you can quickly understand the main capabilities of FlowMusic API and access specific endpoint documentation. ## Relationship between FlowMusic and Producer FlowMusic is a newly upgraded music generation API module based on Producer. Compared to Producer, FlowMusic provides: * **Better performance**: Upgraded underlying models and architecture for faster generation * **More stable service**: Optimized endpoint design and error handling mechanisms * **Richer capabilities**: Support for music extension, segment replacement, video download, and more * **Better compatibility**: Maintains similar endpoint style to Producer, reducing migration cost > **Migration suggestion**: New users are recommended to use FlowMusic API directly. Existing Producer users can migrate gradually, as the endpoint calling style remains largely consistent. ## What FlowMusic API Can Do * Generate music via [Music Generation API](/api/en/flowmuisc/flowmuisc_generate) * Generate lyrics via [Lyrics Generation API](/api/en/flowmuisc/flowmuisc_lyricscreate) * Extend music via [Music Extension API](/api/en/flowmuisc/flowmuisc_extend) * Replace segments via [Segment Replacement API](/api/en/flowmuisc/flowmuisc_replace) * Export stems via [Stems Export API](/api/en/flowmuisc/flowmuisc_stems) * Upload audio via [Audio Upload API](/api/en/flowmuisc/flowmuisc_uploadaudio) * Download audio via [Download API](/api/en/flowmuisc/flowmuisc_download) * Generate video via [Video Clip API](/api/en/flowmuisc/flowmuisc_videoclip) * Query results via [Result Query API](/api/en/flowmuisc/flowmuisc_fetch) ## Common FlowMusic API Endpoints | Use Case | Endpoint | | :- | :- | | Music Generation | [Music Generation API](/api/en/flowmuisc/flowmuisc_generate) | | Lyrics Generation | [Lyrics Generation API](/api/en/flowmuisc/flowmuisc_lyricscreate) | | Music Extension | [Music Extension API](/api/en/flowmuisc/flowmuisc_extend) | | Result Query | [Result Query API](/api/en/flowmuisc/flowmuisc_fetch) | ## Recommended Integration Flow 1. Call [Music Generation API](/api/en/flowmuisc/flowmuisc_generate) to submit the main task. 2. Call [Lyrics Generation API](/api/en/flowmuisc/flowmuisc_lyricscreate) when lyrics are needed. 3. Call [Result Query API](/api/en/flowmuisc/flowmuisc_fetch) for async tasks. 4. After generation completes, continue with [Extension](/api/en/flowmuisc/flowmuisc_extend), [Replace](/api/en/flowmuisc/flowmuisc_replace), [Stems](/api/en/flowmuisc/flowmuisc_stems). # Completions Source: https://docs.ttapi.io/api/en/llm/completions openapi/en/llm.json POST /v1/chat/completions The request and response fields follow the official Responses API format. For details, refer to the OpenAI official documentation. # Gemini Completions Source: https://docs.ttapi.io/api/en/llm/gemini-completions openapi/en/llm.json POST /gemini/chat/completions The request and response fields follow the official Responses API format. For details, refer to the Google official documentation. # Gemini Generate Content Source: https://docs.ttapi.io/api/en/llm/gemini-generate-content openapi/en/llm.json POST /v1beta/models/{model}:generateContent Generates a Gemini response using the native generateContent REST request and response format. Request and response fields follow the official Gemini API structure. See the Google API reference for the complete specification. Use `contents` for text or multimodal conversation turns. The endpoint also supports system instructions, tools, safety settings, cached content, structured output, thinking configuration, and model-specific generation options. # Grok Completions Source: https://docs.ttapi.io/api/en/llm/grok_chat openapi/en/llm.json POST /v1/chat/completions The request and response fields follow the official Responses API format. For details, refer to the Grok official documentation. # Claude Messages API Source: https://docs.ttapi.io/api/en/llm/messages openapi/en/llm.json POST /v1/messages The request and response fields follow the official Responses API format. For details, refer to the Claude official documentation. # Responses Source: https://docs.ttapi.io/api/en/llm/responses openapi/en/llm.json POST /v1/responses Creates a model response from text, image, or file input. Supports structured output, tool calls, conversation state, background processing, and streaming. The request and response fields follow the official Responses API format. See the OpenAI API reference for the complete specification. Use this endpoint for text, image, and file inputs, structured outputs, tool calls, multi-turn conversations, background processing, and streaming responses. # Google Lyria 3 API Documentation | Producer API Overview Source: https://docs.ttapi.io/api/en/producer/index Use Google Lyria 3 on TTAPI through the Producer API for music generation, lyrics, extend, cover, variation, stems, upload, video generation, and async fetch workflows. # Google Lyria 3 / Producer API The naming here can be confusing the first time through. People usually search for **Google Lyria 3 API**, but on TTAPI the actual endpoint family lives under **Producer**. This page is here to make that translation explicit so you do not have to infer it from the sidebar. If your goal is "generate music with Google Lyria 3 on TTAPI," the practical starting point is usually [Producer Music](/api/en/producer/producer_music) plus [Producer Fetch](/api/en/producer/producer_fetch). Everything else in the Producer family exists to support the workflows that happen before or after that core path. ## Get Started * [Google Lyria 3 API guide](/grids/en/start/google-lyria-3-api) * [Producer Music API](/api/en/producer/producer_music) * [Producer Lyrics API](/api/en/producer/producer_lyrics) * [Producer Fetch API](/api/en/producer/producer_fetch) * [Producer Stems API](/api/en/producer/producer_stems) * [Gateway & Auth](/grids/en/development/authentication) * [Audio Pricing](/grids/en/start/pricing/audio) ## Key Features ### Prompt-first and lyrics-first workflows Some teams start from a sound idea. Others start from lyrics, chorus structure, or a rough song concept. The Producer family supports both patterns. Use [Producer Music](/api/en/producer/producer_music) when you are ready to generate a track. Use [Producer Lyrics](/api/en/producer/producer_lyrics) first when the writing step needs its own pass before audio generation begins. ### Async job flow that is simple to reason about Producer generation is asynchronous. Submit the job, keep the returned `jobId`, and use [Producer Fetch](/api/en/producer/producer_fetch) as the source of truth for job state and result retrieval. In practice, this is the endpoint your backend will end up calling the most once traffic becomes real. ### Post-processing without leaving the product family After the first result is ready, you can stay in the same Producer surface for common next steps: [Extend](/api/en/producer/producer_extend) to continue a track, [Cover](/api/en/producer/producer_cover) or [Variation](/api/en/producer/producer_variation) to reinterpret it, [Replace](/api/en/producer/producer_replace) to change sections, and [Stems](/api/en/producer/producer_stems) to split the output for editing or remix use cases. ### Model routing when you specifically want Google Lyria 3 The broader Producer family supports more than one model line. If you want Google Lyria 3 specifically, choose supported `mv` values such as `Lyria 3 preview` or `Lyria 3 Pro` where the endpoint allows them. That is the detail that matters when you are mapping product requirements to a real request body. ## Product Mapping On TTAPI, Google Lyria 3 workflows map to the **Producer API** family: * `Google Lyria 3 music generation` usually means [Producer Music](/api/en/producer/producer_music) * `Google Lyria 3 async status / results` usually means [Producer Fetch](/api/en/producer/producer_fetch) * `Google Lyria 3 stems` usually means [Producer Stems](/api/en/producer/producer_stems) That mapping is the main reason this page exists. It gives search traffic and implementation traffic the same landing point. ## Authentication And Base URL All Producer requests use the TTAPI music gateway. * Base URL: `https://api.ttapi.io` * Header: `TT-API-KEY: YOUR_API_KEY` * Content-Type: `application/json` ## Recommended Workflow For most apps, the cleanest path is: 1. Decide whether the workflow is lyric-first or prompt-first. 2. If needed, generate lyrics through [Producer Lyrics](/api/en/producer/producer_lyrics). 3. Submit music creation through `POST /producer/v1/music`. 4. Store the returned `jobId` immediately. 5. Poll `GET /producer/v1/fetch?jobId=...`. 6. Once the result is stable, branch into [Extend](/api/en/producer/producer_extend), [Cover](/api/en/producer/producer_cover), [Variation](/api/en/producer/producer_variation), or [Stems](/api/en/producer/producer_stems) depending on the product. One subtle but useful point from the endpoint docs: the music endpoint is designed around one generated song per request. That keeps job handling simpler, but it also means teams usually build batching above the API instead of expecting one call to return a large set of tracks. ### Example Request ```bash theme={null} curl --request POST 'https://api.ttapi.io/producer/v1/music' \ --header 'Content-Type: application/json' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' \ --data-raw '{ "sound_prompt": "warm indie pop with shimmering guitars and soft female vocals", "title": "City Lights", "mv": "Lyria 3 Pro", "instrumental": false }' ``` ### Example Fetch ```bash theme={null} curl --request GET 'https://api.ttapi.io/producer/v1/fetch?jobId=xxxxxxxxxxxxxxxx' \ --header 'TT-API-KEY: YOUR_TTAPI_KEY' ``` When Fetch succeeds, the response can include `action`, `progress`, `mv`, and a `musics` array with fields such as `musicId`, `title`, `lyrics`, `audioUrl`, and `videoUrl`. In most production systems, this is the payload that gets persisted and fan-outs to downstream services. ## Use Cases * Music products that start with a text prompt, generate a full track, then extend or restyle the strongest result * Lyric-focused tools that want a separate writing step before they commit quota to full audio generation * Brand, jingle, or creator workflows that need stems after generation so the result can be edited outside TTAPI * Backend pipelines that need stable async polling and explicit job tracking rather than one long blocking request * Teams experimenting with Google Lyria 3 routing while keeping the rest of the workflow under one Producer API surface ## Core Endpoints | Use case | Best page | | :- | :- | | Generate a new song | [Producer Music API](/api/en/producer/producer_music) | | Generate or refine lyrics first | [Producer Lyrics API](/api/en/producer/producer_lyrics) | | Continue a completed track | [Producer Extend API](/api/en/producer/producer_extend) | | Reinterpret the track | [Producer Cover API](/api/en/producer/producer_cover) | | Create alternate versions | [Producer Variation API](/api/en/producer/producer_variation) | | Rewrite a section | [Producer Replace API](/api/en/producer/producer_replace) | | Split the result into stems | [Producer Stems API](/api/en/producer/producer_stems) | | Upload source material | [Producer Upload API](/api/en/producer/producer_upload) | | Poll job status and retrieve outputs | [Producer Fetch API](/api/en/producer/producer_fetch) | | Generate downstream video outputs | [Producer Generate Video API](/api/en/producer/producer_generate-video) | ## FAQ ### Is Google Lyria 3 the same as Producer on TTAPI? Google Lyria 3 capabilities are exposed through the **Producer API** on TTAPI. The product name users search for is Google Lyria 3, but the endpoint family you integrate against is Producer. ### Should I start with Lyrics or Music? Start with [Producer Lyrics](/api/en/producer/producer_lyrics) when the writing step needs to happen first. Start with [Producer Music](/api/en/producer/producer_music) when you already know the song direction and want to generate audio immediately. ### Which endpoint handles async status and final outputs? Use [Producer Fetch](/api/en/producer/producer_fetch). It is the endpoint that ties the workflow together after submission. ### Which model values map to Google Lyria 3? If you specifically want Google Lyria 3 routing, use supported `mv` values such as `Lyria 3 preview` or `Lyria 3 Pro` where the endpoint supports them. ### Some people search for "Google Lyrics 3 API." Is that the same thing? The correct product name is **Google Lyria 3**. On TTAPI, those requests still belong to the **Producer API** documentation family. # Producer Cover API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_cover openapi/en/producer.json POST /producer/v1/cover Use the Google Lyria 3 / Producer Cover API to restyle or reinterpret existing tracks with new musical direction. # Producer Download API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_download openapi/en/producer.json POST /producer/v1/download Use the Google Lyria 3 / Producer Download API to retrieve generated media and deliverables after processing. # Producer Extend API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_extend openapi/en/producer.json POST /producer/v1/extend Use the Google Lyria 3 / Producer Extend API to continue and lengthen existing music while preserving track continuity. # Producer Fetch API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_fetch openapi/en/producer.json get /producer/v1/fetch Use the Google Lyria 3 / Producer Fetch API to retrieve async job status, result payloads, and output URLs. # Producer Video API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_generate-video openapi/en/producer.json POST /producer/v1/generate-video Use the Google Lyria 3 / Producer Video API to create video outputs for generated music and promotional workflows. # Producer Instrumentals Swap API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_instrumentals-swap openapi/en/producer.json POST /producer/v1/instrumentals-swap Use the Google Lyria 3 / Producer Instrumentals Swap API to replace backing tracks while preserving the core song idea. # Producer Lyrics API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_lyrics openapi/en/producer.json POST /producer/v1/lyrics Use the Google Lyria 3 / Producer Lyrics API to generate or refine song lyrics before music generation workflows. # Google Lyria 3 Music Generation API | Producer Music API Source: https://docs.ttapi.io/api/en/producer/producer_music openapi/en/producer.json POST /producer/v1/music Use the Google Lyria 3 / Producer Music API to generate AI music, songs, and commercial audio outputs on TTAPI. Start here if you need the main endpoint for **Google Lyria 3 / Producer** music generation. For the complete endpoint directory, workflow guidance, and related links, see the [Google Lyria 3 / Producer API overview](/api/en/producer). ## When To Use Producer Music API Use this endpoint when your app needs: * Prompt-based **Google Lyria 3** music generation * A main **Producer API** entry point for song creation * The first step in a larger lyrics -> music -> fetch workflow ## Recommended Workflow 1. Optionally prepare lyrics with the [Producer Lyrics API](/api/en/producer/producer_lyrics). 2. Submit the generation request through **Producer Music API**. 3. Track the async job with the [Producer Fetch API](/api/en/producer/producer_fetch). 4. Continue with [Producer Extend](/api/en/producer/producer_extend), [Producer Cover](/api/en/producer/producer_cover), or [Producer Stems](/api/en/producer/producer_stems) if your workflow needs post-processing. ## Before You Integrate * Review [Gateway & Auth](/grids/en/development/authentication) for the required `TT-API-KEY` header. * Review [Audio Pricing](/grids/en/start/pricing/audio) before enabling production workloads. * Use the [Google Lyria 3 API guide](/grids/en/start/google-lyria-3-api) if you want a keyword-focused landing page before endpoint-level docs. ## Related Pages * [Google Lyria 3 / Producer API overview](/api/en/producer) * [Google Lyria 3 API guide](/grids/en/start/google-lyria-3-api) * [Producer Lyrics API](/api/en/producer/producer_lyrics) * [Producer Fetch API](/api/en/producer/producer_fetch) # Producer Replace API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_replace openapi/en/producer.json POST /producer/v1/replace Use the Google Lyria 3 / Producer Replace API to rewrite or swap sections within an existing track workflow. # Producer Stems API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_stems openapi/en/producer.json POST /producer/v1/stems Use the Google Lyria 3 / Producer Stems API to split tracks into stems for remixing, editing, and post-production. # Producer Upload API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_upload openapi/en/producer.json POST /producer/v1/upload Use the Google Lyria 3 / Producer Upload API to submit source audio for downstream generation and transformation workflows. # Producer Variation API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_variation openapi/en/producer.json POST /producer/v1/variation Use the Google Lyria 3 / Producer Variation API to generate alternate versions of an existing song or musical idea. # Producer Vocals Swap API | Google Lyria 3 Documentation Source: https://docs.ttapi.io/api/en/producer/producer_vocals-swap openapi/en/producer.json POST /producer/v1/vocals-swap Use the Google Lyria 3 / Producer Vocals Swap API to replace or transform vocal layers while keeping the backing arrangement. # Suno Add Instrumental API Reference Source: https://docs.ttapi.io/api/en/suno/suno_add_instrumental openapi/en/suno.json POST /suno/v1/add-instrumental Use the Suno Add Instrumental API to build backing tracks and instrumental layers around existing vocals or song ideas for faster music production. # Suno Add Stem API Reference Source: https://docs.ttapi.io/api/en/suno/suno_add_stem openapi/en/suno.json POST /suno/v1/add-stem Use the Suno Add Stem API to layer an additional stem onto an existing Suno track, blending lyrics, style tags, and audio weight to enrich arrangements and multi-track production. # Suno Add Vocals API Reference Source: https://docs.ttapi.io/api/en/suno/suno_add_vocals openapi/en/suno.json POST /suno/v1/add-vocals Reference for the Suno Add Vocals endpoint on TTAPI, including when to add vocal layers to existing arrangements, melodies, or song drafts. Use this endpoint when you already have an arrangement and need a generated vocal layer. For the main docs hub and workflow map, start with the [Suno API docs overview](/api/en/suno). # Suno Adjust Speed API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_adjust_speed openapi/en/suno.json POST /suno/v1/adjust-speed Use the Suno adjust-speed API to change a song playback speed from 0.25x to 4x, optionally preserving pitch. This endpoint costs **3 quota (approx. \$0.03)** per request. Submit the source `music_id`, a `speed_multiplier` from `0.25` to `4`, the `keep_pitch` option, and the output `title`. Save the returned `jobId`, then retrieve the result through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or the `hookUrl` callback. # Suno Aligned Lyrics API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_aligned_lyrics openapi/en/suno.json POST /suno/v1/alignedLyrics Use the Suno Aligned Lyrics API to generate time-synced lyrics for songs, subtitles, karaoke views, and music playback interfaces. # Suno BPM Analysis API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_bpm openapi/en/suno.json POST /suno/v1/gen-bpm Use the Suno BPM analysis API to detect tempo and beat speed for generated or uploaded songs in editing, mixing, and music intelligence workflows. # Suno Track Concatenation API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_concat openapi/en/suno.json POST /suno/v1/concat Use the Suno track concatenation API to merge extended sections or replaced segments into a final full-length song output. # Suno Create Model API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_create_model openapi/en/suno.json POST /suno/v1/create-model Train a reusable custom music model from 6–24 publicly accessible reference tracks. After creation, set mv to chirp-custom:{model_id} to generate songs in that model’s style. **Create Model is an asynchronous task API.** The request does not return `model_id` immediately. You can get the result in either of these ways: * Set **hookUrl** to receive a **callback** when the task finishes * Or call **[Fetch V2](/api/en/suno/suno_fetch_v2)** to poll the task status and result If you use **hookUrl**, make sure the URL is publicly reachable; otherwise the callback may fail. Custom models are **private resources** bound to the underlying account used during training: * If that account runs out of quota or goes offline, the model becomes unavailable immediately * Use the model as soon as it is created. Availability is typically no more than **2 days**, and it may expire earlier — a full 2-day window is not guaranteed * `persona_id` and `chirp-custom` cannot be used together * `mv` must include a full UUID, for example `chirp-custom:a1b2c3d4-e5f6-7890-abcd-ef1234567890`. Passing `chirp-custom` alone is invalid Provide complete songs or clips that share a consistent style, vocal, and arrangement: * Recommended formats: **MP3 / WAV / M4A** * Each URL must be a **publicly downloadable file**, not a login wall, hotlink-protected page, or HTML/JSON error page * If any audio file cannot be downloaded or is not valid audio, the entire job fails Typical training takes several minutes and can last up to about **20 minutes**. Timed-out jobs fail with `message` = `job timeout`. After creation, set `mv` to `chirp-custom:{model_id}` on generation endpoints to produce songs in that model’s style. * **Supported:** [Music](/api/en/suno/suno_music), Extend, Cover, Add Vocals / Instrumental / Stem, Replace Section, Mashup, Inspo, Sample * **Not supported:** Remaster, Stems, Lyrics, MIDI export # Suno Create Voice API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_create_voice openapi/en/suno.json POST /suno/v1/create-voice Suno Create Voice is used to create a custom voice model from an uploaded audio sample. **Create Voice is an asynchronous task API.** After submitting the request, the result will not be returned immediately. You can obtain the result using one of the following methods: * Set **hookUrl** to receive a **callback notification** when the task is completed * Or call the **[fetch API](/api/en/suno/suno_fetch_v2)** to manually query the task status and result If you use **hookUrl**, please ensure that the URL is publicly accessible; otherwise, the callback notification may fail. 1. The uploaded audio must contain **clear human speech**, otherwise the voice creation may fail. Please follow these requirements: * The audio must contain **clear human speech** * Avoid **background noise**, music, or echo * Do not include **multiple speakers** * Low-volume, unclear, or noisy audio **may cause generation failure or poor results** 2. The created voice is a **private resource**, and the following limitations apply: * **Cross-account usage is not supported** * After the voice is successfully created, please use it promptly, otherwise it may expire or become unavailable. It is recommended to use the voice as soon as possible after creation to avoid expiration. Recommended audio requirements: * Audio duration: **at least 10 seconds** * Speaker: **single speaker only** * Recording environment: **quiet and noise-free** * Audio format: **WAV or MP3** # Suno Crop API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_crop openapi/en/suno.json POST /suno/v1/crop Use the Suno crop API to trim an existing Suno track by start and end time, then retrieve the edited song through Fetch V2 or a webhook. Use this endpoint to create a trimmed version of an existing Suno track. Submit the source `music_id`, `crop_start_s`, and `crop_end_s`; store the returned `jobId` and retrieve the edited result through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or your `hookUrl` callback. # Suno File Download API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_download openapi/en/suno.json POST /suno/v1/download Use the Suno file download API to retrieve music files in mp3, m4a, or wav for delivery, sharing, and downstream processing. Download one or more audio formats for an existing Suno track. Supported formats: `mp3`, `m4a`, `wav`. The response returns download URLs for each requested format. Costs **0.2 quota**. See [Audio Pricing](/grids/en/start/pricing/audio#suno). **Billing caution:** Every successful call is billed at **0.2 quota**. Calling this endpoint again for the same `music_id` or file still incurs a new charge. Cache the returned download URLs and avoid duplicate requests. # Suno Fade In API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_fade_in openapi/en/suno.json POST /suno/v1/fade-in Use the Suno fade-in API to add a gradual audio fade-in effect to an existing Suno track. Use this endpoint to apply a fade-in effect to an existing Suno track. Submit `music_id`, `fade_time_s`, and `title`; store the returned `jobId` and retrieve the edited result through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or your `hookUrl` callback. # Suno Fade Out API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_fade_out openapi/en/suno.json POST /suno/v1/fade-out Use the Suno fade-out API to add a gradual audio fade-out effect to an existing Suno track. Use this endpoint to apply a fade-out effect to an existing Suno track. Submit `music_id`, `fade_time_s`, and `title`; store the returned `jobId` and retrieve the edited result through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or your `hookUrl` callback. # Suno Task Result API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_fetch openapi/en/suno.json GET /suno/v1/fetch Use the Suno task result API to fetch music generation status, output URLs, and job data for asynchronous production workflows. ⚠️ This endpoint is deprecated. Please use [/suno/v2/fetch](/api/en/suno/suno_fetch_v2) instead。 # Suno Task Result V2 API Reference Source: https://docs.ttapi.io/api/en/suno/suno_fetch_v2 openapi/en/suno.json GET /suno/v2/fetch Use the Suno V2 task result API to fetch more up-to-date music generation status and final output data for production-ready integrations. Use the **Suno Fetch API** to retrieve the latest status and final output for asynchronous Suno jobs on TTAPI. # Suno Music Video Generation API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_generate_video openapi/en/suno.json POST /suno/v1/generateVideo Use the Suno music video generation API to create video output that matches generated songs for short-form content, promos, and automated media workflows. # Suno Inspo API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_inspo openapi/en/suno.json POST /suno/v1/inspo Use the Suno inspo API to generate new songs from 1-4 audio inspiration references, combining uploaded musical ideas with custom lyrics, title, style tags, and callback handling. # Suno Mashup API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_mashup openapi/en/suno.json POST /suno/v1/mashup Use the Suno mashup API to combine songs or musical ideas into a blended output for remix experiments, genre fusion, and creative reinterpretation. # Suno MIDI Export API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_midi openapi/en/suno.json POST /suno/v1/gen-midi Use the Suno MIDI export API to turn generated music into MIDI for DAW editing, arrangement refinement, and production workflows. # Suno Persona API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_persona openapi/en/suno.json POST /suno/v1/persona Use the Suno Persona API to create reusable music personas based on prior outputs for consistent style, voice identity, and branded music generation. The Vox functionality has been integrated into the Persona API. When creating a new style, please call this API directly; no separate Vox API call or `vox_audio_id` generation is required. # Suno Remaster API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_remaster openapi/en/suno.json POST /suno/v1/remaster Use the Suno remaster API to improve clarity, polish, and overall sonic quality for tracks before release, review, or downstream production work. This endpoint no longer accepts the `mv` parameter. You do not need to specify a model. # Suno Remove Section API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_remove_section openapi/en/suno.json POST /suno/v1/remove-section Use the Suno remove-section API to delete a selected time range from an existing song while preserving the remaining audio. This endpoint costs **1 quota (approx. \$0.01)** per request. Submit the source `music_id` and the interval to delete using `crop_start_s` and `crop_end_s`. Save the returned `jobId`, then retrieve the edited song through [Suno Fetch V2](/api/en/suno/suno_fetch_v2) or the `hookUrl` callback. # Suno Section Replacement API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_replace_section openapi/en/suno.json POST /suno/v1/replace-section Use the Suno section replacement API to rewrite or regenerate specific parts of a song without rebuilding the entire track from scratch. **Tip**: The replacement lyrics should have some overlap with the original lyrics, and ideally the timing should align. **infill\_lyrics**: The new lyric segment you want to fill in or replace. **prompt**: The context—concatenate the original lyrics before and after the new lyrics. **Example**: Original lyrics are \[Verse 1]AA \[Chorus]BB \[Verse 2]CC \[Chorus]DD \[Outro]EE. If you want to replace CC with OO: * Set **infill\_lyrics** to OO (the new lyrics to insert). * Set **prompt** to BB \[Verse 2]OO\[Chorus]DD (include part of the original lyrics before and after OO to form the context). This allows the model to generate the best result based on the surrounding context in **prompt** and the new lyrics in **infill\_lyrics**. # Suno Sample-to-Song API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_sample openapi/en/suno.json POST /suno/v1/sample Use the Suno sample API to expand short audio snippets into fuller songs for creative development, sampling workflows, and music prototyping. # Suno Sound Effects API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_sounds openapi/en/suno.json POST /suno/v1/sounds Use the Suno sound effects API to create short-form audio, scene sounds, and sonic assets for apps, games, video, and interactive media. # Suno Speech API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_speech openapi/en/suno.json POST /suno/v1/speech Use the Suno speech API to generate spoken audio. Supports inspiration mode and custom mode. # Suno Full Stem Separation API Reference Source: https://docs.ttapi.io/api/en/suno/suno_stems_all openapi/en/suno.json POST /suno/v1/stems-all Use the Suno full stem separation API to break a song into more detailed stems for advanced editing, mixing, education, and production workflows. Use the **Suno Full Stem Separation API** when you need a more detailed breakdown than a simple vocal-versus-instrument split. # Suno Audio Upload API Reference Source: https://docs.ttapi.io/api/en/suno/suno_upload openapi/en/suno.json POST /suno/v1/upload Use the Suno audio upload API to submit source audio or reference tracks for downstream music generation, cover, stem, and transformation workflows. Upload audio to Suno to obtain a **jobId** or **music\_id** for subsequent operations. * When `is_async = false` (synchronous mode): The API will block until processing is complete and will directly return the `music_id`. ⚠️ Since the full processing workflow must complete, this may take a long time. Only `upload_mode=default` is supported. * When `is_async = true` (asynchronous mode): The API will return a `jobId` immediately. You need to use this `jobId` to call the [Fetch Task API](/api/en/suno/suno_fetch_v2) to retrieve the final upload result asynchronously. * `upload_mode`: Upload mode. Defaults to `default` when omitted. * `default`: Standard upload, priced at **0.5 quota**. Supports sync or async. * `enhanced`: Enhanced upload that can reduce failure rates, priced at **1 quota**. **Must** use async (`is_async=true`). See [Audio pricing](/grids/en/start/pricing/audio#suno) for details. # Suno Tag Enhancement API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_upsample_tags openapi/en/suno.json POST /suno/v1/upsample-tags Use the Suno tag enhancement API to improve music tags and style descriptors before generation for better prompt quality and more targeted outputs. # Suno Vox Extraction API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_vox openapi/en/suno.json POST /suno/v1/vox Use the Suno Vox extraction API to capture vocal segments and generate a vox_audio_id for singer-style reuse and persona-based workflows. Deprecated: This API has been deprecated. Its functionality has been integrated into the [Persona API](/api/en/suno/suno_persona), and no additional call is required. Please use the [Persona API](/api/en/suno/suno_persona) instead. # Suno WAV Export API Documentation Source: https://docs.ttapi.io/api/en/suno/suno_wav openapi/en/suno.json POST /suno/v1/wav Use the Suno WAV export API to retrieve high-quality WAV files for mastering, archive delivery, post-production, and professional release workflows. **This endpoint is deprecated and will no longer be maintained.** Please migrate related workflows to [File Download](/api/en/suno/suno_download) (`formats` supports `mp3`, `m4a`, `wav`). The endpoint remains temporarily available at **0.2 quota** per successful call. See [Audio Pricing](/grids/en/start/pricing/audio#suno). # Get User Info Source: https://docs.ttapi.io/api/en/user/user-info openapi/en/user.json get /user-info Retrieve the current account information.