---
title: "Export a transparent VFX pack (2 credits, idempotent request ID)"
method: POST
path: "/v1/vfx"
tags: ["VFX Studio"]
---

# Export a transparent VFX pack (2 credits, idempotent request ID)

`POST /v1/vfx`

## Request

- Base URL: `https://api.sprixen.com`
- URL: `https://api.sprixen.com/v1/vfx`
- Auth: `bearer` (a scheme the document does not define)

## Request body

- CreateVfxDto
  - `requestId` string, uuid, required: Keep this UUID for identical retries to avoid duplicate charges.
  - `name` string, required
  - `preset` 'portal' | 'aura' | 'shield' | 'burst' | 'beam' | 'hazard' | 'flame' | 'fireball' | 'firewall' | 'frost' | 'icestorm' | 'snow' | 'lightning' | 'chainlightning' | 'thunder' | 'waterwave' | 'whirlpool' | 'rain' | 'smoke' | 'fog' | 'poison' | 'acid' | 'healing' | 'blessing' | 'leaves' | 'vines' | 'runes' | 'summoning' | 'blackhole' | 'stars' | 'meteor' | 'slash' | 'claw' | 'shockwave' | 'shatter' | 'confetti': v1 legacy preset. Omit and use `family` for v2.
  - `color` string
  - `accent` string
  - `family` 'fireball' | 'fire-bolt' | 'burning-hands' | 'flame-wall' | 'meteor' | 'ray-of-frost' | 'ice-storm' | 'frost-nova' | 'lightning-bolt' | 'chain-lightning' | 'shock' | 'magic-missile' | 'shield-ward' | 'arcane-portal' | 'eldritch-blast' | 'dispel-magic' | 'cure-wounds' | 'bless-aura' | 'spirit-guardians' | 'inflict-wounds' | 'hunger-of-hadar' | 'necrotic-burst' | 'entangle' | 'thorn-whip' | 'poison-spray' | 'slash' | 'thrust' | 'hit-spark' | 'block' | 'critical-hit' | 'rain' | 'snow' | 'fog' | 'embers' | 'dust' | 'level-up' | 'coin-burst' | 'checkpoint' | 'heal-pop' | 'shield-break': v2 effect family slug. Presence of this field selects the v2 recipe.
  - `palette` VfxPaletteDto
    - `main` string, required
    - `accent` string, required
    - `glow` string, required
  - `fps` 12 | 24
  - `loop` boolean: Overrides the family's default loop/one-shot behavior.
  - `variant` VfxVariantDto
    - `colorName` string: One of the family's 4 named palettes.
    - `sizeName` string
  - `projectId` string: Project that owns the reference sprite. Enables style lock.
  - `spriteId` string: Reference sprite in that project to match the effect's look to.
  - `aiStyleLock` boolean: +2 credits. Requires projectId/spriteId. Generates AI particle textures matched to the sprite; falls back to no-AI style lock and refunds on failure.
  - `sfx` boolean: +1 credit. Pairs a short procedural sound effect with the export.
  - `intensity` number, required
  - `seed` number, required
  - `duration` 1 | 2 | 4, required: v1 only accepts 2 or 4.
  - `size` 256 | 512 | 1024, required: v1 only accepts 256 or 512.

## Response `201`

---

[API](https://skmtc.dev/sprixen/apis/sprixen-api.md) · [All operations](https://skmtc.dev/sprixen/apis/sprixen-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sprixen/apis/sprixen-api/revisions/6c0c57f6da58?raw)
