---
url: /orchestration/reference/operations/InvokeMultimodalEmbeddingStepTemplate.md
description: 'POST /v2/consumer/recipes/multimodalEmbedding — Multimodal Embedding'
---

> Documentation index: https://developer.civitai.com/llms.txt — every page on this site has a markdown version at its URL + `.md`.

# Multimodal Embedding

`POST https://orchestration.civitai.com/v2/consumer/recipes/multimodalEmbedding`

Operation `InvokeMultimodalEmbeddingStepTemplate` · Recipes · Civitai Orchestration API, generated from the published OpenAPI spec ([v2-consumers.json](https://developer.civitai.com/openapi/v2-consumers.json)); the interactive HTML page is this URL without `.md`.

Embeds a batch of images or text into the same vector space.

## Authentication

Send `Authorization: Bearer <token>` (the spec's `ApiKey` scheme); this operation documents `401 Unauthorized` for a missing or invalid token. See [Authentication](https://developer.civitai.com/orchestration/guide/authentication.md).

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `experimental` | query | boolean | no |  |
| `allowMatureContent` | query | boolean | no |  |
| `whatif` | query | boolean | no |  |
| `ephemeral` | query | boolean | no |  |
| `tier` | query | `WorkflowTier` (one of `paid`, `free`) | no | How a workflow is paid for. |
| `tags` | query | array of string | no |  |

## Request body

Optional. Content types: `application/json`, `text/json`, `application/*+json`.

Schema `MultimodalEmbeddingStepInput` — Exactly one of text, imageUrl or videoUrl.

| Field | Type | Required | Description |
|---|---|---|---|
| `model` | string, one of `wemm-2b` | no | (default `"wemm-2b"`) |
| `dimensions` | integer (int32), one of `64`, `128`, `256`, `512`, `1024`, `2048` | no | (default `256`) |
| `text` | string, nullable | no | (maxLength `20000`) |
| `imageUrl` | string (uri), nullable | no |  |
| `videoUrl` | string (uri), nullable | no | At most 60 seconds, 100 MiB and 4096 pixels per side; audio is ignored. |
| `precision` | `EmbeddingPrecision` (one of `float32`, `float16`) | no | Number format of the stored blob; Float16 halves its size. (default `"float32"`) |

## Responses

### 200 OK

Content type: `application/json`.

Schema `MultimodalEmbeddingStepOutput`.

| Field | Type | Required | Description |
|---|---|---|---|
| `model` | string | yes |  |
| `modelRevision` | string | yes |  |
| `profile` | string | yes |  |
| `dimensions` | integer (int32) | yes |  |
| `precision` | `EmbeddingPrecision` (one of `float32`, `float16`) | yes |  |
| `embedding` | array of number (float) | yes | L2-normalized values, exactly representable in the requested precision; empty until the blob is available. |
| `blob` | `Blob` | yes | The same values as raw little-endian bytes in the requested precision. |

### 400 Bad Request

Content type: `application/json`.

Schema `ProblemDetails`.

| Field | Type | Required | Description |
|---|---|---|---|
| `type` | string, nullable | no |  |
| `title` | string, nullable | no |  |
| `status` | integer (int32), nullable | no |  |
| `detail` | string, nullable | no |  |
| `instance` | string, nullable | no |  |

### 401 Unauthorized

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.

### 403 Forbidden

Content type: `application/json`.

Schema `ProblemDetails` — fields as listed above.
