# Vimmerse Create Workflow

> Vimmerse Create Workflow is a paid API for AI agents from agents.vimmerse.net, paid per call via MPP, $3/call (dynamic — varies by input), status unknown (last checked 2026-10-31).

Creates a new template-driven workflow (e.g. branded video or image generation) and starts asynchronous processing, returning a workflow ID for polling.

## Facts

- Endpoint: POST https://agents.vimmerse.net/v2/workflow?utm_source=zero.xyz
- Price: $3/call (dynamic — varies by input)
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-31
- Activations on Zero: 0
- Provider: agents.vimmerse.net
- Website: https://agents.vimmerse.net
- Canonical page: https://www.zero.xyz/c/agents-vimmerse-net-vimmerse-create-workflow-6f335f0b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap__eEKiXOC5iKXa12hIZ30H

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-vimmerse-net-vimmerse-create-workflow-6f335f0b -d '<json body>'
```

Example prompt: Use Vimmerse to create a World Cup activation workflow using template 'vim_wc26_team', with a photo of my athlete at https://distribution.vimmerse.net/presets/image/blonde.jpg, team set to Brazil, aspect ratio 3:4, pipeline mode video, titled 'Worldcup Activation', and tag it under event 'campaign_2026_q3'.

## When to prefer this

Choose this endpoint when you need to run a template-driven, multi-step media generation pipeline on Vimmerse — particularly for branded campaign activations, event-specific video or image generation, or any workflow that requires template configuration via an options object. Prefer this over the raw media or image endpoints when a named Vimmerse template (e.g. vim_wc26_team) encapsulates the desired pipeline logic. Use the estimate endpoint first if you want to preview credit cost before committing.

## Known failure modes

- Invalid or unknown template_id returns a 400 or 422 validation error
- Missing or inaccessible image_urls cause processing failure or empty results
- Invalid API key returns 401 Unauthorized
- Insufficient credits or unpaid event without a valid payment_session_id returns 402 Payment Required
- Malformed options object for the given template may cause silent misconfiguration or processing errors
- Network timeout on the POST itself (use a 60s+ timeout and rely on polling rather than waiting for completion)
- Workflow stuck in processing — poll by ID and implement a max-retry backoff strategy

## How this service works

Creates a new workflow and starts asynchronous processing.

This endpoint accepts an `application/json` body. Template-specific configuration is passed via the `options` object.

## JSON Request Example (Python)

```python
import requests

BASE_URL = "https://api.vimmerse.net"
API_KEY = "YOUR_API_KEY"

url = f"{BASE_URL}/v2/workflow"
headers = {
    "X-Api-Key": API_KEY,
    "Content-Type": "application/json",
}

payload = {
    "title": "Worldcup Activation",
    "description": "Celebrating team win of the worldcup.",
    "visibility_status": "1",
    "image_urls": ["https://distribution.vimmerse.net/presets/image/blonde.jpg"],
    "template_id": "vim_wc26_team",
    "options": {
        "team": "Brazil",
        "aspect_ratio": "3:4",
        "pipeline_mode": "video"
    },
    "event_id": "campaign_2026_q3"
}

response = requests.post(url, headers=headers, json=payload, timeout=60)
response.raise_for_status()
print(response.json())
```

## Full Example: Create Workflow and Poll Until Complete

Copy and run this script, then replace only `YOUR_API_KEY`.

```python
import requests
import time

BASE_URL = "https://api.vimmerse.net"
API_KEY = "YOUR_API_KEY"
HEADERS = {
    "X-Api-Key": API_KEY,
    "Content-Type": "application/json",
}

# 1) Create workflow
create_url = f"{BASE_URL}/v2/workflow"
create_payload = {
    "title": "Worldcup Activation",
    "description": "Celebrating team win of the worldcup.",
    "visibility_status": "1",
    "image_urls": ["https://distribution.vimmerse.net/presets/image/blonde.jpg"],
    "template_id": "vim_wc26_team",
    "options": {
        "team": "Brazil",
        "aspect_ratio": "3:4",
        "pipeline_mode": "video"
    },
    "event_id": "campaign_2026_q3"
}

create_res = requests.post(create_url, headers=HEADERS, json=create_payload, timeout=60)
create_res.raise_for_status()
workflow_data = create_res.json()
workflow_id = workflow_data["id"]
print(f"Workflow created: {workflow_id}")
print(f"Initial status: {workflow_data.get('processing_status')}")

# 2) Poll workflow status
status_url = f"{BASE_URL}/v2/workflow/{workflow_id}"
max_attempts = 120
for attempt in range(max_attempts):
    status_res = requests.get(status_url, headers=HEADERS, timeout=30)
    status_res.raise_for_status()
    data = status_res.json()

    status = data.get("processing_status", "")
    progress = data.get("progress_percentage", 0)
    print(f"Attempt {attempt + 1}: status={status}, progress={progress}%")

    if status == "success":
        print("Workflow completed successfully.")
        break
    if status == "fail":
        raise RuntimeError("Workflow processing failed.")

    time.sleep(10)
else:
    raise TimeoutError("Workflow processing is taking longer than expected.")

# 3) Print final outputs
result_items = data.get("result", [])
completion_items = data.get("completions", [])

print(f"Final results: {len(result_items)} item(s)")
for item in result_items:
    print(f"- {item.get('content_type')}: {item.get('url')}")

print(f"Step completions: {len(completion_items)} step(s)")
for step in completion_items:
    step_id = step.get("id") or step.get("flow")
    step_results = step.get("result", [])
    print(f"- {step_id}: {len(step_results)} output(s)")
```

## Output

Returns a WorkflowResponse JSON object containing the new workflow's ID, template model used, title, input images array, array of result output items (each with URL and content_type), step-by-step completions with durations and credits used, event ID, media ID, history ID, posted URL, visibility status, customer ID, and created/updated timestamps. Processing is asynchronous — poll the workflow by ID until the result array is populated.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "title": "CreateWorkflowRequest",
 "properties": {
  "id": {
   "type": "string",
   "title": "Workflow ID",
   "default": "",
   "description": "Optional client-provided UUID. If empty, a new id is generated."
  },
  "title": {
   "type": "string",
   "title": "Title",
   "default": ""
  },
  "options": {
   "type": "object",
   "title": "Options",
   "description": "Workflow options object.",
   "additionalProperties": true
  },
  "event_id": {
   "type": "string",
   "title": "Event ID",
   "default": "no_event",
   "description": "Event ID of the workflow."
  },
  "image_urls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "Image URLs",
   "description": "Input image URLs for workflow generation."
  },
  "description": {
   "type": "string",
   "title": "Description",
   "default": ""
  },
  "template_id": {
   "type": "string",
   "title": "Template ID",
   "default": "vim_wc26_team",
   "description": "Template ID of the workflow."
  },
  "visibility_status": {
   "type": "string",
   "title": "Visibility Status",
   "default": "1",
   "description": "Workflow visibility status."
  },
  "payment_session_id": {
   "type": "string",
   "title": "Payment Session ID",
   "default": "",
   "description": "Stripe Checkout session id when the event requires guest payment."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "WorkflowResponse",
 "properties": {
  "id": {
   "type": "string",
   "title": "ID",
   "default": ""
  },
  "model": {
   "type": "string",
   "title": "Template ID",
   "default": ""
  },
  "title": {
   "type": "string",
   "title": "Title",
   "default": ""
  },
  "images": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "title": "Images"
  },
  "rating": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Rating"
  },
  "result": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "WorkflowOutputItem",
    "properties": {
     "url": {
      "type": "string",
      "title": "URL",
      "default": ""
     },
     "content_type": {
      "type": "string",
      "title": "Content Type",
      "default": ""
     }
    },
    "additionalProperties": true
   },
   "title": "Result"
  },
  "options": {
   "type": "object",
   "title": "Options",
   "additionalProperties": true
  },
  "event_id": {
   "type": "string",
   "title": "Event ID",
   "default": ""
  },
  "media_id": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Media ID"
  },
  "created_at": {
   "type": "string",
   "title": "Created At",
   "default": ""
  },
  "history_id": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "History ID"
  },
  "posted_url": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Posted URL"
  },
  "updated_at": {
   "type": "string",
   "title": "Updated At",
   "default": ""
  },
  "completions": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "WorkflowCompletionResponse",
    "properties": {
     "id": {
      "type": "string",
      "title": "Step ID",
      "default": ""
     },
     "flow": {
      "type": "string",
      "title": "Flow",
      "default": ""
     },
     "result": {
      "type": "array",
      "items": {
       "type": "object",
       "title": "WorkflowOutputItem",
       "properties": {
        "url": {
         "type": "string",
         "title": "URL",
         "default": ""
        },
        "content_type": {
         "type": "string",
         "title": "Content Type",
         "default": ""
        }
       },
       "additionalProperties": true
      },
      "title": "Result"
     },
     "outputs": {
      "type": "object",
      "title": 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-vimmerse-net-vimmerse-create-workflow-6f335f0b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.vimmerse.net](https://www.zero.xyz/host/agents.vimmerse.net/llms.txt)
