Picsart API Platform
← All models

Picsart Effects

New

Picsart · Image · Image → Image

Apply curated Picsart effect presets to a photo — multi-step Magic Flow pipelines, one tap.

Model ID: picsart-flowWorkflow: picsart-flow/v1/effects
Effect PresetsImage Required
Try on Playground ↗

Authentication

Send your Picsart API key as a bearer token on every request.

Header
Authorization: Bearer <PICSART_API_KEY>

Make a request

One endpoint serves every model: POST to /workflows/v1/models/execute with the model id and its input in the body. The nesting is deliberate — the outer paramsis the envelope every workflow takes, and the inner one is this model's own input. Those inner names are the same unified ones the SDK takes, so a call translates one-to-one between the two — no per-vendor naming to learn.

cURL
curl -X POST 'https://api.picsart.com/workflows/v1/models/execute' \
  -H 'Authorization: Bearer $PICSART_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "params": {
    "model": "picsart-flow",
    "params": {
      "templateId": "",
      "imageUrls": [
        "https://cdn.example.com/input.jpg"
      ]
    }
  }
}'

Parameters

2 parameters, sent inside the inner paramsobject. Identical to the SDK's — one parameter set, whichever transport you use.

ParameterTypeRequiredDefaultDetails
templateId
Effect Preset
catalogyesoptions from picsart-flow/v1/catalog/templates (picsart-flow)
imageUrls
Your Photo
file (image[])yes

Response

The body arrives in the gateway's status envelope, so the output is at response.result — alongside the task id, its status and the credits charged. Asset models return url plus an items array; text models return text instead.

Response body
{
  "status": "success",
  "response": {
    "id": "task_abc123",
    "status": "COMPLETED",
    "result": {
      "url": "https://cdn.picsart.com/…/result",
      "items": [
        {
          "url": "https://cdn.picsart.com/…/result"
        }
      ],
      "model": "picsart-flow"
    }
  }
}