Retrieve the list of effects
December 6, 2024 (May 12, 2026)
Table of contents
The returned effect_type field encodes the number of input images the template accepts (as a string):
"1"= exactly one image (e.g., face swap, dance effects)"2"= exactly two images (e.g., hug, kiss effects)"3","4","5"= multi-input effects (e.g., Family Reunion accepts up to 5 portraits) — pass viaframe_1_path..frame_5_pathon POST /videos/create. For these templates, the minimum is 2 input images and the maximum iseffect_type.
The template_type field distinguishes output kind:
1= video output2= image output (1-second still — the response carriesimage_idinstead ofvideo_id)
The template_model field identifies the underlying engine (v5, v5.5, v5.6, v6, image_v5, image_v6, image_v7, gemini-2.5-flash, gemini-3.0, qwen-image, ""). When you invoke a template, you do not need to (and should not) pass a model parameter — the template’s engine is authoritative.
The qualities field is the closed list of quality options the template accepts. Some templates only allow ["1080p"] or ["360p", "540p", "720p"] — calling with any other value is rejected.
The total credit cost for a template is video_base_cost + fixed_cost.
https://api.useapi.net/v2/pixverse/videos/effects?…
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
API tokenis required, see Setup useapi.net for details.
Query Parameters
emailis optional when only one account configured. However, if you have multiple accounts configured, this parameter becomes required.
Responses
-
{ "items": [ { "template_id": 384628677917440, "display_name": "Family Reunion", "workflow_tag": "meta_nanopro_muti_it2v_260115", "display_prompt": "This moment is what home means.", "effect_type": "5", "template_type": 1, "template_model": "v5", "template_paid": 1, "supported_features": [2], "duration": 5, "qualities": ["360p", "540p", "720p", "1080p"], "score": 8.42, "hot_count": 0, "created_at": "2026-04-15T07:12:08Z", "updated_at": "2026-05-12T00:01:54Z", "author_info": { "account_id": 1001075, "username": "", "nickname": "maxcasu", "avatar": "https://media.pixverse.ai/upload%2F…jpg" }, "category_ids": [157, 191], "video_base_cost": 20, "fixed_cost": 20, "example_text": "Upload 5 portrait photos", "thumbnail_path": "https://media.pixverse.ai/…jpg", "thumbnail_video_path": "https://media.pixverse.ai/…mp4", "thumbnail_gif_path": "https://media.pixverse.ai/…webp", "app_thumbnail_url": "https://media.pixverse.ai/…jpg", "app_thumbnail_video_url": "https://media.pixverse.ai/…mp4", "app_thumbnail_gif_url": "https://media.pixverse.ai/…webp", "audio_path": "https://media.pixverse.ai/…mp3", "marker": "" }, { "template_id": 377433499832192, "display_name": "Tattoo Removal", "workflow_tag": "i2i_image_v5_…", "display_prompt": "Remove tattoos cleanly from any photo.", "effect_type": "1", "template_type": 2, "template_model": "image_v5", "template_paid": 0, "supported_features": [2], "duration": 1, "qualities": ["1080p"], "score": 6.5, "hot_count": 0, "created_at": "2026-02-20T10:00:00Z", "updated_at": "2026-05-12T00:01:54Z", "author_info": { "account_id": 1001075, "username": "", "nickname": "pixverse", "avatar": "" }, "category_ids": [169], "video_base_cost": 20, "fixed_cost": 10, "example_text": "Upload a portrait with a visible tattoo", "thumbnail_path": "https://media.pixverse.ai/…jpg", "thumbnail_video_path": "", "thumbnail_gif_path": "", "app_thumbnail_url": "https://media.pixverse.ai/…jpg", "app_thumbnail_video_url": "", "app_thumbnail_gif_url": "", "audio_path": "", "marker": "" } ], "total": 917, "next_offset": 0 } -
{ "error": "<Error message>", "code": 400 } -
{ "error": "Unauthorized", "code": 401 }
Model
{ // TypeScript
items: {
template_id: number
display_name: string
workflow_tag: string
display_prompt: string
effect_type: string // "1" or "2" = exact count required; "3"/"4"/"5" = multi-input (min 2, max effect_type)
template_type: number // 1 = video output, 2 = image output (1-second still, returns image_id)
template_model: string // engine: v5, v5.5, v5.6, v6, image_v5, image_v6, image_v7, gemini-2.5-flash, gemini-3.0, qwen-image, ""
template_paid: number // 0 = free, 1 = paid tier required
supported_features: number[] | null // feature flags (pass-through)
duration: number // output duration in seconds (1 for image templates; 5–21 for video templates)
qualities: string[] // allowed quality values — passing any other rejects with 400
score: number // popularity score
hot_count: number // running engagement counter
created_at: string // ISO timestamp the template was published
updated_at: string // ISO timestamp of last metadata update
author_info: { // template author
account_id: number
username: string
nickname: string
avatar: string // full URL or ""
}
category_ids: number[] // sub-category IDs this template belongs to
video_base_cost: number // base credit cost
fixed_cost: number // template-specific extra cost (template_paid templates typically charge fixed_cost)
example_text: string // usage hint, e.g. "Upload 5 portrait photos"
thumbnail_path: string // thumbnail URL (alias for app_thumbnail_url)
thumbnail_video_path: string
thumbnail_gif_path: string
app_thumbnail_url: string // canonical thumbnail URL
app_thumbnail_video_url: string
app_thumbnail_gif_url: string
audio_path: string // template's built-in audio track (full URL); empty when none
marker: string // "new", "hot", "default", or ""
}[]
total: number
next_offset: number
}
Examples
-
curl "https://api.useapi.net/v2/pixverse/videos/effects?email=email" \ -H "Accept: application/json" \ -H "Authorization: Bearer …" -
const token = "API token"; const email= "Previously configured account email"; const apiUrl = `https://api.useapi.net/v2/pixverse/videos/effects?email=${email}`; const response = await fetch(apiUrl, { headers: { "Authorization": `Bearer ${token}`, }, }); const result = await response.json(); console.log("response", {response, result}); -
import requests token = "API token" email= "Previously configured account email" apiUrl = f"https://api.useapi.net/v2/pixverse/videos/effects?email={email}" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } response = requests.get(apiUrl, headers=headers) print(response, response.json())