Назад към всички

freepik

// Generate images, videos, icons, audio, and more using Freepik's AI API. Supports Mystic, Flux, Kling, Hailuo, Seedream, RunWay, Magnific upscaling, stock content, and 50+ models. Use when user wants to generate or edit images, create videos, generate icons, produce audio, or search stock content.

$ git log --oneline --stat
stars:1,933
forks:367
updated:March 4, 2026
SKILL.mdreadonly
SKILL.md Frontmatter
namefreepik
version1.0.5
descriptionGenerate images, videos, icons, audio, and more using Freepik's AI API. Supports Mystic, Flux, Kling, Hailuo, Seedream, RunWay, Magnific upscaling, stock content, and 50+ models. Use when user wants to generate or edit images, create videos, generate icons, produce audio, or search stock content.
allowed-toolsBash(curl *api.freepik.com*), Bash(curl **.freepik.com*), Bash(jq *), Bash(mkdir -p ~/.freepik/*)
argument-hint<command> [model] [--param value]
metadata[object Object]

Freepik API Skill

Generate images, videos, icons, audio, edit images, and search stock content using the Freepik API.

Built by the ShellBot team.

Arguments

  • Command: $0 (generate | video | edit | icon | audio | stock | status | utility)
  • Arg 1: $1 (model name, operation type, or task-id)
  • Arg 2+: $2, $3, etc. (additional parameters)
  • All args: $ARGUMENTS

Session Output

Save generated files to session folder:

mkdir -p ~/.freepik/sessions/${CLAUDE_SESSION_ID}

Downloaded images/videos/audio go to: ~/.freepik/sessions/${CLAUDE_SESSION_ID}/


Authentication

All requests require the FREEPIK_API_KEY environment variable.

Header: x-freepik-api-key: $FREEPIK_API_KEY

Base URL: https://api.freepik.com

If requests fail with 401/403, tell the user:

Get an API key from https://www.freepik.com/developers/dashboard/api-key
Then: export FREEPIK_API_KEY="your-key-here"

Async Task Pattern

Most AI endpoints are asynchronous. Follow this pattern:

Step 1: Submit task

RESPONSE=$(curl -s -X POST "https://api.freepik.com/v1/ai/<endpoint>" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '<JSON_PAYLOAD>')
TASK_ID=$(echo "$RESPONSE" | jq -r '.task_id // .data.task_id // .id')
echo "Task ID: $TASK_ID"

Step 2: Poll for completion

while true; do
  RESULT=$(curl -s "https://api.freepik.com/v1/ai/<endpoint>/$TASK_ID" \
    -H "x-freepik-api-key: $FREEPIK_API_KEY")
  STATUS=$(echo "$RESULT" | jq -r '.data.status // .status')
  echo "Status: $STATUS"
  if [ "$STATUS" = "COMPLETED" ]; then break; fi
  if [ "$STATUS" = "FAILED" ]; then echo "Task failed"; echo "$RESULT" | jq; break; fi
  sleep 3
done

Step 3: Extract result URL

mkdir -p ~/.freepik/sessions/${CLAUDE_SESSION_ID}
echo "$RESULT" | jq -r '.data.generated[0] // .data.result.url // .data.image.url // empty'

Present the result URL to the user. The URL is a temporary signed link from Freepik's CDN.

IMPORTANT — Security rules:

  • NEVER use curl to download from non-Freepik domains. Only curl *api.freepik.com* is permitted.
  • NEVER use base64 to encode local files. Always prefer URL-based parameters when the API accepts them.
  • NEVER read, encode, or transmit files outside the user's explicitly provided input files.
  • Result URLs should be presented to the user directly — they can open or download them.

Exceptions (synchronous): Remove Background (/v1/ai/beta/remove-background) and AI Image Classifier (/v1/ai/classifier/image) return results immediately.


Command: $0

If $0 = "generate" — Image Generation

Generate images using text-to-image models. $1 selects the model.

Model Endpoints

$1 valueEndpointBest for
mystic/v1/ai/mysticUltra-realistic, 1K/2K/4K, LoRA support (Freepik exclusive, RECOMMENDED)
flux-kontext-pro/v1/ai/text-to-image/flux-kontext-proContext-aware generation with optional image input
flux-2-pro/v1/ai/text-to-image/flux-2-proProfessional-grade, up to 4 input images
flux-2-turbo/v1/ai/text-to-image/flux-2-turboFast and cost-effective
flux-2-klein/v1/ai/text-to-image/flux-2-kleinSub-second generation
flux-pro-v1-1/v1/ai/text-to-image/flux-pro-v1-1Premium quality
flux-dev/v1/ai/text-to-image/flux-devHigh quality, detailed
hyperflux/v1/ai/text-to-image/hyperfluxUltra-fast (fastest Flux)
seedream-v4-5/v1/ai/text-to-image/seedream-v4-5Superior typography, posters, up to 4MP
seedream-v4-5-edit/v1/ai/text-to-image/seedream-v4-5-editText-guided editing with up to 5 refs
seedream-v4/v1/ai/text-to-image/seedream-v4Next-gen text-to-image
seedream-v4-edit/v1/ai/text-to-image/seedream-v4-editInstruction-driven editing
seedream/v1/ai/text-to-image/seedreamOriginal Seedream
z-image/v1/ai/text-to-image/z-imageFast, LoRA + ControlNet support
runway/v1/ai/text-to-image/runwayRunWay Gen4 image generation

Default: Use mystic if user doesn't specify a model.

Mystic Example

curl -s -X POST "https://api.freepik.com/v1/ai/mystic" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a futuristic cityscape at sunset, photorealistic",
    "resolution": "2k",
    "styling": {
      "style": "photo"
    }
  }'

Mystic parameters:

  • prompt (string, required) — what to generate
  • resolution ("1k" | "2k" | "4k", default "2k")
  • num_images (1-4, default 1)
  • styling.style ("photo" | "digital_art" | "none")
  • structure_reference (object) — use an image to guide composition: {image_url, strength: 0-100}
  • style_reference (object) — use an image to guide style: {image_url, strength: 0-100}
  • loras (array) — LoRA IDs from /v1/ai/loras
  • seed (int) — for reproducibility
  • webhook_url (string) — receive notification on completion

Get available LoRAs:

curl -s "https://api.freepik.com/v1/ai/loras" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" | jq '.data[] | {id, name, type}'

Train custom LoRA (character):

curl -s -X POST "https://api.freepik.com/v1/ai/loras/characters" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "my-character", "images": ["<base64_or_url>", ...]}'

Flux 2 Klein Example (sub-second)

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-image/flux-2-klein" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a cat wearing sunglasses",
    "aspect_ratio": "square_1_1",
    "resolution": "1k",
    "output_format": "png"
  }'

Flux 2 Klein parameters:

  • prompt (string, required)
  • aspect_ratio ("square_1_1" | "widescreen_16_9" | "social_story_9_16" | "portrait_2_3" | "traditional_3_4" | "vertical_1_2" | "horizontal_2_1" | "social_post_4_5" | "standard_3_2" | "classic_4_3")
  • resolution ("1k" | "2k")
  • seed (0-4294967295)
  • input_image (base64) — optional reference
  • input_image_2, input_image_3, input_image_4 (base64)
  • safety_tolerance (0-5, default 2)
  • output_format ("png" | "jpeg")

Flux Kontext Pro Example

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-image/flux-kontext-pro" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a modern logo design",
    "aspect_ratio": "square_1_1",
    "guidance": 3.0,
    "steps": 50
  }'

Flux Kontext Pro parameters:

  • prompt (string, required)
  • input_image (URL, optional) — for context-aware editing
  • prompt_upsampling (bool)
  • seed (int)
  • guidance (1-10, default 3.0)
  • steps (1-100, default 50)
  • aspect_ratio ("square_1_1" | "classic_4_3" | "traditional_3_4" | "widescreen_16_9" | "social_story_9_16" | "standard_3_2")

Seedream 4.5 Example (great for text-in-image and posters)

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-image/seedream-v4-5" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A poster for \"Summer Music Festival 2025\" with bold typography"
  }'

Classic Fast Image Generation

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-image" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a beautiful sunset"}'

If $0 = "video" — Video Generation

Generate videos from text and/or images. $1 selects the model.

Model Endpoints

$1 valueEndpointTypeBest for
kling-v3-omni-pro/v1/ai/video/kling-v3-omni-proT2V/I2VMulti-modal, multi-shot, audio, voice (RECOMMENDED)
kling-v3-omni-std/v1/ai/video/kling-v3-omni-stdT2V/I2VStandard tier of above
kling-v3-pro/v1/ai/video/kling-v3-proT2V/I2VMulti-shot, element consistency
kling-v3-std/v1/ai/video/kling-v3-stdT2V/I2VStandard tier
kling-v2-6-pro/v1/ai/image-to-video/kling-v2-6-proI2VMotion control
kling-v2-6-motion-pro/v1/ai/video/kling-v2-6-motion-control-proV2VTransfer motion from reference video
kling-v2-6-motion-std/v1/ai/video/kling-v2-6-motion-control-stdV2VStandard motion transfer
kling-v2-5-pro/v1/ai/image-to-video/kling-v2-5-proI2VSmooth motion, sharp detail
kling-v2-1-pro/v1/ai/image-to-video/kling-v2-1-proI2VHigh-fidelity
kling-v2-1-std/v1/ai/image-to-video/kling-v2-1-stdI2VStandard tier
kling-v2-1-master/v1/ai/image-to-video/kling-v2-1-masterI2VTop-tier quality
kling-o1-pro/v1/ai/image-to-video/kling-o1-proI2VFirst/last frame interpolation
kling-o1-std/v1/ai/image-to-video/kling-o1-stdI2VStandard frame interpolation
kling-elements-pro/v1/ai/image-to-video/kling-elements-proI2VElement-based
kling-elements-std/v1/ai/image-to-video/kling-elements-stdI2VStandard elements
hailuo-02-1080p/v1/ai/image-to-video/minimax-hailuo-02-1080pT2V/I2VHigh quality 1080p
hailuo-02-768p/v1/ai/image-to-video/minimax-hailuo-02-768pT2V/I2V768p
hailuo-2-3-1080p/v1/ai/image-to-video/minimax-hailuo-2-3-1080pT2V/I2VLatest MiniMax 1080p
hailuo-2-3-1080p-fast/v1/ai/image-to-video/minimax-hailuo-2-3-1080p-fastT2V/I2VFast 1080p
hailuo-2-3-768p/v1/ai/image-to-video/minimax-hailuo-2-3-768pT2V/I2V768p
hailuo-2-3-768p-fast/v1/ai/image-to-video/minimax-hailuo-2-3-768p-fastT2V/I2VFast 768p
hailuo-live/v1/ai/image-to-video/minimax-liveI2VLive illustrations, camera movements
wan-2-6-1080p/v1/ai/image-to-video/wan-v2-6-1080pI2V1080p I2V
wan-2-6-720p/v1/ai/image-to-video/wan-v2-6-720pI2V720p I2V
wan-2-6-t2v-1080p/v1/ai/text-to-video/wan-v2-6-1080pT2V1080p T2V
wan-2-6-t2v-720p/v1/ai/text-to-video/wan-v2-6-720pT2V720p T2V
wan-2-5-i2v-1080p/v1/ai/image-to-video/wan-2-5-i2v-1080pI2V1080p
wan-2-5-i2v-720p/v1/ai/image-to-video/wan-2-5-i2v-720pI2V720p
wan-2-5-i2v-480p/v1/ai/image-to-video/wan-2-5-i2v-480pI2V480p
wan-2-5-t2v-1080p/v1/ai/text-to-video/wan-2-5-t2v-1080pT2V1080p
wan-2-5-t2v-720p/v1/ai/text-to-video/wan-2-5-t2v-720pT2V720p
wan-2-5-t2v-480p/v1/ai/text-to-video/wan-2-5-t2v-480pT2V480p
runway-4-5-t2v/v1/ai/text-to-video/runway-4-5T2V5/8/10s, multiple ratios
runway-4-5-i2v/v1/ai/image-to-video/runway-4-5I2V5/8/10s, seed support
runway-gen4-turbo/v1/ai/image-to-video/runway-gen4-turboI2VFast I2V
runway-act-two/v1/ai/video/runway-act-twoV2VCharacter performance transfer
ltx-2-pro-t2v/v1/ai/text-to-video/ltx-2-proT2VUp to 4K, optional audio
ltx-2-pro-i2v/v1/ai/image-to-video/ltx-2-proI2VUp to 4K, optional audio
ltx-2-fast-t2v/v1/ai/text-to-video/ltx-2-fastT2VFast, up to 4K
ltx-2-fast-i2v/v1/ai/image-to-video/ltx-2-fastI2VFast, up to 4K
seedance-1-5-pro-1080p/v1/ai/video/seedance-1-5-pro-1080pT2V/I2VSynchronized audio (lip-sync, foley)
seedance-1-5-pro-720p/v1/ai/video/seedance-1-5-pro-720pT2V/I2V720p with audio
seedance-1-5-pro-480p/v1/ai/video/seedance-1-5-pro-480pT2V/I2V480p with audio
seedance-pro-1080p/v1/ai/image-to-video/seedance-pro-1080pI2V1080p
seedance-pro-720p/v1/ai/image-to-video/seedance-pro-720pI2V720p
seedance-pro-480p/v1/ai/image-to-video/seedance-pro-480pI2V480p
seedance-lite-1080p/v1/ai/image-to-video/seedance-lite-1080pI2VLite 1080p
seedance-lite-720p/v1/ai/image-to-video/seedance-lite-720pI2VLite 720p
seedance-lite-480p/v1/ai/image-to-video/seedance-lite-480pI2VLite 480p
pixverse-v5/v1/ai/image-to-video/pixverse-v5I2VStable style 360p-1080p
pixverse-v5-transition/v1/ai/image-to-video/pixverse-v5-transitionI2VTransition between two images
omnihuman-1-5/v1/ai/video/omni-human-1-5Audio-drivenHuman animation from audio
vfx/v1/ai/video/vfxEffectsApply VFX filters to video
ref-kling-v3-omni-pro/v1/ai/reference-to-video/kling-v3-omni-proV2VVideo-to-video with reference (use @Video1 in prompt)
ref-kling-v3-omni-std/v1/ai/reference-to-video/kling-v3-omni-stdV2VStandard V2V

Default: Use kling-v3-omni-pro for general video generation.

Kling 3 Omni Pro Example (text-to-video)

curl -s -X POST "https://api.freepik.com/v1/ai/video/kling-v3-omni-pro" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A golden retriever running through a field of flowers, cinematic",
    "aspect_ratio": "16:9",
    "duration": 5
  }'

Kling 3 Omni parameters:

  • prompt (string, max 2500 chars, required)
  • image_url (URL) — for I2V
  • start_image_url / end_image_url (URL) — start/end frames
  • image_urls (array of URLs) — reference images, use @Image1/@Image2 in prompt
  • elements (array) — element consistency: [{reference_image_urls: [...], frontal_image_url: "..."}], use @Element1/@Element2 in prompt
  • multi_prompt (array, max 6 shots) — multi-shot: [{prompt: "...", duration: 3}]
  • aspect_ratio ("16:9" | "9:16" | "1:1")
  • duration (3-15, seconds)
  • generate_audio (bool) — auto-generate audio
  • voice_ids (array) — use <<<voice_1>>> in prompt
  • webhook_url (string)

Poll status:

curl -s "https://api.freepik.com/v1/ai/video/kling-v3-omni/$TASK_ID" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY"

Kling 3 Example (with multi-shot)

curl -s -X POST "https://api.freepik.com/v1/ai/video/kling-v3-pro" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A cat walks across a room",
    "negative_prompt": "blurry, low quality",
    "aspect_ratio": "16:9",
    "duration": 5,
    "cfg_scale": 0.5,
    "multi_shot": true,
    "multi_prompt": [
      {"index": 1, "prompt": "Cat enters from left", "duration": 3},
      {"index": 2, "prompt": "Cat sits and looks at camera", "duration": 2}
    ]
  }'

RunWay Gen 4.5 Example (text-to-video)

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-video/runway-4-5" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A time-lapse of a flower blooming",
    "ratio": "1280:720",
    "duration": 10
  }'

RunWay 4.5 T2V parameters:

  • prompt (string, max 2000 chars, required)
  • ratio ("1280:720" | "720:1280" | "1104:832" | "960:960" | "832:1104", default "1280:720")
  • duration (5 | 8 | 10)
  • webhook_url

RunWay Gen 4.5 I2V Example

curl -s -X POST "https://api.freepik.com/v1/ai/image-to-video/runway-4-5" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/photo.jpg",
    "prompt": "The person waves and smiles",
    "ratio": "1280:720",
    "duration": 5
  }'

WAN 2.6 T2V Example

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-video/wan-v2-6-1080p" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Ocean waves at sunset, cinematic 4K",
    "duration": "5",
    "enable_prompt_expansion": true
  }'

Hailuo Live Example (animated illustrations)

curl -s -X POST "https://api.freepik.com/v1/ai/image-to-video/minimax-live" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/illustration.png",
    "prompt": "[Push in] The character turns and smiles"
  }'

Hailuo Live camera movements: [Truck left], [Pan right], [Push in], [Pull out], [Zoom in], [Tracking shot], [Static shot]

VFX Video Effects Example

curl -s -X POST "https://api.freepik.com/v1/ai/video/vfx" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "video": "https://example.com/video.mp4",
    "filter_type": 4,
    "fps": 24
  }'

VFX filter_type values: 1=Film Grain, 2=Motion Blur, 3=Fish Eye, 4=VHS, 5=Shake, 6=VGA, 7=Bloom, 8=Anamorphic Lens

VFX cost: $0.017 per second of video.


If $0 = "edit" — Image Editing

Edit, enhance, and transform images. $1 selects the operation.

Operations

$1 valueEndpointDescription
upscale-creative/v1/ai/image-upscalerPrompt-guided upscaling with detail enhancement (Magnific). 2x/4x/8x/16x.
upscale-precision-v2/v1/ai/image-upscaler-precision-v2Faithful upscaling with granular controls (Magnific)
upscale-precision/v1/ai/image-upscaler-precisionHigh-fidelity upscaling without hallucinations
relight/v1/ai/image-relightChange image lighting via prompt, reference, or lightmap
style-transfer/v1/ai/image-style-transferApply artistic styles from reference images
remove-bg/v1/ai/beta/remove-backgroundRemove background (SYNC, returns immediately)
expand-flux/v1/ai/image-expand/flux-proOutpainting with Flux Pro
expand-ideogram/v1/ai/image-expand/ideogramOutpainting with Ideogram
expand-seedream/v1/ai/image-expand/seedream-v4-5Outpainting with Seedream
inpaint/v1/ai/ideogram-image-editMask-based inpainting with Ideogram
change-camera/v1/ai/image-change-cameraTransform camera angle/perspective
skin-creative/v1/ai/skin-enhancer/creativeArtistic skin enhancement
skin-faithful/v1/ai/skin-enhancer/faithfulNatural skin preservation
skin-flexible/v1/ai/skin-enhancer/flexibleTargeted skin optimization

Upscale Creative Example (Magnific)

curl -s -X POST "https://api.freepik.com/v1/ai/image-upscaler" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/photo.jpg",
    "prompt": "high quality photograph, sharp details",
    "scale_factor": 4
  }'

Upscale Precision V2 Example

curl -s -X POST "https://api.freepik.com/v1/ai/image-upscaler-precision-v2" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/photo.jpg",
    "scale_factor": 4,
    "sharpen": 7,
    "smart_grain": 7,
    "ultra_detail": 30,
    "flavor": "photo"
  }'

Precision V2 parameters:

  • image (URL or base64, required)
  • scale_factor (2-16)
  • sharpen (0-100, default 7)
  • smart_grain (0-100, default 7)
  • ultra_detail (0-100, default 30)
  • flavor ("sublime" | "photo" | "photo_denoiser")
  • webhook_url

Remove Background Example (SYNCHRONOUS)

RESULT=$(curl -s -X POST "https://api.freepik.com/v1/ai/beta/remove-background" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image_url": "https://example.com/photo.jpg"}')
# Result contains: original, high_resolution, preview URLs (expire in 5 min!)
echo "$RESULT" | jq -r '{high_resolution: .data.high_resolution, preview: .data.preview}'
# Present the URLs to the user — they can open or download directly

Image Expand Example (Outpainting)

For Image Expand, the user must provide an image URL. Use the Seedream or Ideogram expand endpoints which accept URLs, or ask the user to host the image first.

curl -s -X POST "https://api.freepik.com/v1/ai/image-expand/seedream-v4-5" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/photo.jpg",
    "prompt": "extend the landscape naturally",
    "left": 512,
    "right": 512,
    "top": 0,
    "bottom": 0
  }'

Image Expand parameters:

  • image (URL or base64 — prefer URL, required)
  • prompt (optional, auto-generated for Ideogram/Seedream)
  • left, right, top, bottom (0-2048 pixels each)
  • seed (int, for Ideogram/Seedream)
  • webhook_url

Note: For Flux Pro expand, the image param requires base64. Prefer using Seedream V4.5 or Ideogram expand endpoints which accept URLs.

Inpainting Example (Ideogram)

curl -s -X POST "https://api.freepik.com/v1/ai/ideogram-image-edit" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/photo.jpg",
    "mask": "<base64_of_mask>",
    "prompt": "a red sports car",
    "rendering_speed": "DEFAULT",
    "magic_prompt": "AUTO",
    "style_type": "REALISTIC"
  }'

Inpainting parameters:

  • image (URL or base64, max 10MB, required)
  • mask (B&W image, same size, required — black = areas to edit)
  • prompt (required)
  • rendering_speed ("TURBO" | "DEFAULT" | "QUALITY")
  • magic_prompt ("AUTO" | "ON" | "OFF")
  • style_type ("AUTO" | "GENERAL" | "REALISTIC" | "DESIGN")
  • style_codes (array), style_reference_images (array), character_reference_images (array)
  • color_palette (object)
  • seed (0-2147483647)
  • webhook_url

Change Camera Example

curl -s -X POST "https://api.freepik.com/v1/ai/image-change-camera" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/photo.jpg",
    "horizontal_angle": 45,
    "vertical_angle": 15,
    "zoom": 5,
    "output_format": "png"
  }'

Change Camera parameters:

  • image (HTTPS URL, JPG/PNG/WebP, required)
  • horizontal_angle (0-360, default 0)
  • vertical_angle (-30 to 90, default 0)
  • zoom (0-10, default 5)
  • output_format ("png" | "jpeg")
  • seed (min 1)
  • webhook_url

Image Relight Example

curl -s -X POST "https://api.freepik.com/v1/ai/image-relight" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/portrait.jpg",
    "prompt": "warm golden hour lighting from the left side"
  }'

Skin Enhancer Example

# Flexible mode with targeted optimization
curl -s -X POST "https://api.freepik.com/v1/ai/skin-enhancer/flexible" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/portrait.jpg",
    "optimized_for": "enhance_skin",
    "sharpen": 20,
    "smart_grain": 5
  }'

Skin Enhancer optimized_for options: "enhance_skin" | "improve_lighting" | "enhance_everything" | "transform_to_real" | "no_make_up"


If $0 = "icon" — Icon Generation

Generate icons from text prompts in PNG or SVG format.

Endpoint: /v1/ai/text-to-icon

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-icon" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "shopping cart",
    "style": "outline",
    "format": "svg",
    "num_inference_steps": 25,
    "guidance_scale": 7,
    "webhook_url": ""
  }'

Parameters:

  • prompt (string, required) — icon description
  • style ("solid" | "outline" | "color" | "flat" | "sticker", default "solid")
  • format ("png" | "svg", default "png")
  • num_inference_steps (10-50, default 10)
  • guidance_scale (0-10, default 7)
  • webhook_url (string, required but can be empty "")

Preview (quick preview before full render):

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-icon/preview" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "shopping cart", "style": "outline"}'

Download rendered icon:

curl -s -X POST "https://api.freepik.com/v1/ai/text-to-icon/$TASK_ID/render/svg" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/icon_$(date +%s).svg

If $0 = "audio" — Audio Generation

Generate music, sound effects, voiceover, or isolate audio. $1 selects the type.

$1 valueEndpointDescription
music/v1/ai/music-generationText-to-music (10-240s, MP3)
sfx/v1/ai/sound-effectsSound effects (0.5-22s)
voiceover/v1/ai/voiceover/elevenlabs-turbo-v2-5Text-to-speech (ElevenLabs)
isolate/v1/ai/audio-isolationIsolate specific sounds from audio/video

Music Example

curl -s -X POST "https://api.freepik.com/v1/ai/music-generation" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "upbeat electronic music for a product video",
    "music_length_seconds": 30
  }'

Music parameters:

  • prompt (string, required)
  • music_length_seconds (10-240, required)
  • webhook_url (HTTPS URL)

Sound Effects Example

curl -s -X POST "https://api.freepik.com/v1/ai/sound-effects" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "thunderstorm with heavy rain",
    "duration_seconds": 10,
    "loop": true,
    "prompt_influence": 0.5
  }'

Sound Effects parameters:

  • text (string, max 2500 chars, required)
  • duration_seconds (0.5-22, required)
  • loop (bool, default false) — seamless looping
  • prompt_influence (0-1, default 0.3)
  • webhook_url (HTTPS URL)

Voiceover Example (ElevenLabs TTS)

curl -s -X POST "https://api.freepik.com/v1/ai/voiceover/elevenlabs-turbo-v2-5" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Welcome to our product demonstration.",
    "voice_id": "21m00Tcm4TlvDq8ikWAM",
    "stability": 0.5,
    "similarity_boost": 0.2,
    "speed": 1.0
  }'

Voiceover parameters:

  • text (1-40000 chars, UTF-8, required)
  • voice_id (ElevenLabs voice ID, required)
  • model (default "eleven_turbo_v2_5")
  • stability (0-1, default 0.5)
  • similarity_boost (0-1, default 0.2)
  • speed (0.7-1.2, default 1.0)
  • use_speaker_boost (bool, default true)
  • webhook_url

Audio Isolation Example

curl -s -X POST "https://api.freepik.com/v1/ai/audio-isolation" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "description": "piano melody",
    "audio": "https://example.com/song.mp3"
  }'

Audio Isolation parameters:

  • description (string, required) — what sound to isolate
  • audio (URL or base64 — WAV/MP3/FLAC/OGG/M4A) OR video (URL or base64 — MP4/MOV/WEBM/AVI)
  • x1, y1, x2, y2 (bounding box for video, default 0)
  • sample_fps (1-5, default 2)
  • reranking_candidates (1-8, default 1)
  • predict_spans (bool, default false)
  • webhook_url
  • Output: WAV audio file

If $0 = "stock" — Stock Content

Search and download stock photos, vectors, icons, and videos. $1 selects the content type.

$1 valueEndpointDescription
images/v1/resourcesSearch photos, vectors, PSDs
icons/v1/iconsSearch icons
videos/v1/videosSearch stock videos

Search Stock Images

curl -s "https://api.freepik.com/v1/resources?term=$QUERY&limit=10" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" | jq '.data[] | {id, title, url: .image.source.url}'

Get Resource Details

curl -s "https://api.freepik.com/v1/resources/$RESOURCE_ID" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" | jq '.'

Download Resource

curl -s "https://api.freepik.com/v1/resources/$RESOURCE_ID/download" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/stock_$(date +%s).jpg

Search Stock Icons

curl -s "https://api.freepik.com/v1/icons?term=$QUERY&limit=10" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" | jq '.data[] | {id, description}'

Download Stock Icon

curl -s "https://api.freepik.com/v1/icons/$ICON_ID/download" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/icon_$(date +%s).svg

Search Stock Videos

curl -s "https://api.freepik.com/v1/videos?term=$QUERY&limit=10" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" | jq '.data[] | {id, title}'

Download Stock Video

curl -s "https://api.freepik.com/v1/videos/$VIDEO_ID/download" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/video_$(date +%s).mp4

If $0 = "status" — Check Task Status

Check the status of any async task. $1 is the task ID. You need to know the endpoint path.

# Generic status check — replace <endpoint_path> with the original endpoint
curl -s "https://api.freepik.com/v1/ai/<endpoint_path>/$1" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" | jq '{status: .data.status, result: .data}'

Common status endpoint paths:

  • Mystic: mystic/<task-id>
  • Flux models: text-to-image/<model>/<task-id>
  • Kling 3 Omni: video/kling-v3-omni/<task-id>
  • Kling 3: video/kling-v3/<task-id>
  • I2V models: image-to-video/<model>/<task-id>
  • T2V models: text-to-video/<model>/<task-id>
  • Upscaler: image-upscaler/<task-id> or image-upscaler-precision-v2/<task-id>
  • Icon: text-to-icon/<task-id>
  • Music: music-generation/<task-id>
  • Sound Effects: sound-effects/<task-id>
  • Audio Isolation: audio-isolation/<task-id>

Task statuses: CREATEDIN_PROGRESSCOMPLETED or FAILED


If $0 = "utility" — AI Utilities

Various AI helper tools. $1 selects the utility.

$1 valueEndpointDescription
classify/v1/ai/classifier/imageDetect if image is AI-generated (SYNC)
image-to-prompt/v1/ai/image-to-promptReverse-engineer prompt from image
improve-prompt/v1/ai/improve-promptEnhance prompts for generation
lip-sync/v1/ai/lip-sync/latent-syncSynchronize lip movements with audio

AI Image Classifier (SYNCHRONOUS)

curl -s -X POST "https://api.freepik.com/v1/ai/classifier/image" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://example.com/photo.jpg"}'

Response: Array of {class_name: "ai"|"not_ai", probability: 0-1}

Image to Prompt

curl -s -X POST "https://api.freepik.com/v1/ai/image-to-prompt" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "https://example.com/photo.jpg"}'

Improve Prompt

curl -s -X POST "https://api.freepik.com/v1/ai/improve-prompt" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "a cat",
    "type": "image",
    "language": "en"
  }'

Parameters:

  • prompt (max 2500 chars, required — can be empty for creative generation)
  • type ("image" | "video", required)
  • language (ISO 639-1, default "en")
  • webhook_url

Lip Sync

curl -s -X POST "https://api.freepik.com/v1/ai/lip-sync/latent-sync" \
  -H "x-freepik-api-key: $FREEPIK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "audio": "https://example.com/speech.mp3",
    "video": "https://example.com/face.mp4"
  }'

Model Selection Guide

For image generation:

  • Want ultra-realistic? → mystic (Freepik exclusive, recommended)
  • Need text in image / poster? → seedream-v4-5
  • Want fastest? → flux-2-klein (sub-second) or hyperflux
  • Need high quality? → flux-2-pro or flux-kontext-pro
  • Budget-friendly? → flux-2-turbo

For video generation:

  • General purpose / best quality? → kling-v3-omni-pro
  • Need multi-shot? → kling-v3-pro or kling-v3-omni-pro
  • Character performance? → runway-act-two
  • Animated illustrations? → hailuo-live
  • With synchronized audio? → seedance-1-5-pro-1080p
  • Budget / fast? → kling-v3-omni-std or wan-2-6-720p
  • Up to 4K? → ltx-2-pro-t2v or ltx-2-pro-i2v
  • Human animation from audio? → omnihuman-1-5

For image editing:

  • Creative upscale? → upscale-creative
  • Faithful upscale? → upscale-precision-v2
  • Change lighting? → relight
  • Remove background? → remove-bg
  • Extend canvas? → expand-flux or expand-ideogram
  • Edit specific area? → inpaint
  • Change perspective? → change-camera

For icons:

  • Always use icon command — choose style (solid/outline/color/flat/sticker) and format (png/svg)

For audio:

  • Background music? → music (10-240s)
  • Sound effect? → sfx (0.5-22s)
  • Narration/speech? → voiceover
  • Extract specific sound? → isolate