---
title: "Start an API-triggered workflow"
method: POST
path: "/v1/workflows/{workflowId}/trigger"
tags: ["Workflows"]
---

# Start an API-triggered workflow

`POST /v1/workflows/{workflowId}/trigger`

Starts a run of an active workflow whose trigger type is `api_call`. Pass exactly one target: `conversationId` (a conversation on the workflow's account), `contactId` (resolved to that contact's conversation on the workflow's account), or `to` (WhatsApp workflows only: a phone number, whose conversation is found or created). `variables` are merged over the standard run variables, so each key is available as `{{key}}`.

## Path parameters

- `workflowId` string, required

## Request body

- object — Exactly one of `conversationId`, `contactId` or `to`.
  - `conversationId` string — A conversation on the workflow's account
  - `contactId` string — A contact with a conversation on the workflow's account
  - `to` string — Recipient phone in E.164 (WhatsApp workflows only)
  - `variables` object — Seed variables, merged over the standard run variables

## Response `201`

Run started

- object
  - `executionId` string, required

## Other responses

- `400` — Invalid request
- `401` — Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `404` — Resource not found

## Changes

- **2026-10-06** `698fd1d46648` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/workflows/:workflowId/trigger/post.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/664b218652be?raw)
