> ## Documentation Index
> Fetch the complete documentation index at: https://support.myapps.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Pixio ComfyUI

> Run your own ComfyUI workflows in the cloud over an API

**Pixio ComfyUI** is a separate product from the Pixio app. You build a ComfyUI workflow, deploy it, and queue runs over HTTP — your graph, your custom nodes, your models, on managed GPUs.

<Info>
  This is not [Pixio Integrations](/integrations/overview). That API gives you 500+ curated models with fixed inputs. **This** runs *your* ComfyUI graph. Different product, different API, different key.
</Info>

## Which one do I want?

|              | Pixio app & API               | Pixio ComfyUI                     |
| ------------ | ----------------------------- | --------------------------------- |
| What runs    | Curated catalog models        | Your own ComfyUI workflow         |
| Control      | The inputs each model exposes | Every node in your graph          |
| Custom nodes | No                            | Yes                               |
| GPU choice   | Managed                       | **You can override per run**      |
| Setup        | None                          | Build and deploy a workflow first |

If a catalog model does the job, use [the app](/generate) — it's faster and there's nothing to maintain. Reach for ComfyUI when you need control the catalog can't give you.

## Base URL and auth

```
https://pixio-api-workers-production.up.railway.app/api
```

Every request sends an API key as a Bearer token:

```
Authorization: Bearer YOUR_API_KEY
```

See [API keys](/comfyui/api-keys).

## Endpoints

|        | Endpoint                | Purpose                               |
| ------ | ----------------------- | ------------------------------------- |
| `POST` | `/run/deployment/queue` | Queue a run                           |
| `GET`  | `/run/{run_id}`         | Get a run's status and outputs        |
| `POST` | `/run/{run_id}/cancel`  | Cancel a run                          |
| `POST` | *your endpoint*         | Receive run status updates by webhook |

## How it works

<Steps>
  <Step title="Build a workflow">
    Author your graph in ComfyUI, exposing inputs with Pixio's external input nodes — see [workflow inputs](/comfyui/files-and-uploads).
  </Step>

  <Step title="Deploy it">
    A deployment makes a specific workflow version callable. It gets a `deployment_id`, which is what your code references.
  </Step>

  <Step title="Queue a run">
    `POST /run/deployment/queue` with the `deployment_id` and your inputs. You get a `run_id` back immediately — execution is asynchronous.
  </Step>

  <Step title="Get the outputs">
    Pass a `webhook` when queueing and receive status pushes including the terminal one, or poll `GET /run/{run_id}`. Webhooks are preferred.
  </Step>
</Steps>

## Core concepts

| Term                 | What it is                                              |
| -------------------- | ------------------------------------------------------- |
| **Workflow**         | Your ComfyUI graph                                      |
| **Workflow version** | A specific saved revision                               |
| **Deployment**       | A version made callable — identified by `deployment_id` |
| **Run**              | One execution, identified by `run_id`                   |
| **Machine**          | The environment the run executes on                     |

The distinction that matters: you deploy a **version** and you call a **deployment**. Editing your graph changes nothing about your API calls until you deploy — which is what makes production safe.

## Billing and concurrency

* **Billing posts at the terminal state**, for the time actually used
* **Queue time is unbilled**
* Your plan's **Concurrent GPUs** limit decides how many run at once; runs beyond it wait in `queued` rather than failing

<Info>
  That last point is why a burst of queued runs isn't an error. They're waiting for a GPU, not broken.
</Info>

## Where to next

<CardGroup cols={2}>
  <Card title="Getting started" icon="rocket" href="/comfyui/getting-started">
    Queue your first run and fetch its outputs.
  </Card>

  <Card title="Run lifecycle" icon="arrows-rotate" href="/comfyui/running-a-workflow">
    All nine statuses, webhooks vs polling, cancelling.
  </Card>

  <Card title="Workflow inputs" icon="sliders" href="/comfyui/files-and-uploads">
    Exposing inputs with external nodes, including images.
  </Card>

  <Card title="API keys" icon="key" href="/comfyui/api-keys">
    Creating, scoping, and revoking keys.
  </Card>
</CardGroup>
