> ## Documentation Index
> Fetch the complete documentation index at: https://upstash-partnerstash.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Notify Workflows

> Resume workflows waiting for an event

Notify workflows waiting for an event to resume them. See [our documentation to learn more](/workflow/howto/events).

## Request

<ParamField path="eventId" type="string" required>
  Event id to notify
</ParamField>

<ParamField body="body" type="string">
  Event data passed to the notified workflows
</ParamField>

## Response

The response contains a list of

* notified waiter objects,
* id of the message sent,
* workflowRunId and workflowCreatedAt fields for the related workflow runs, as a result of the notify request.

```typescript theme={null}
type NotifyResponse = { waiter: Waiter, messageId: string, workflowRunId: string, workflowCreatedAt: number}[]
```

More information about the `Waiter` object:

<Snippet file="qstash/waiter.mdx" />

If there were no workflows waiting for the event, the result is an empty list.

<RequestExample>
  ```sh curl theme={null}
  curl -X POST https://qstash.upstash.io/v2/notify/myEvent \
    -H "Authorization: Bearer <token>" \
    -d "Hello World!"
  ```

  ```js Workflow SDK theme={null}
  import { Client } from "@upstash/workflow";

  const client = new Client({ token: "<QSTASH_TOKEN>" })
  await client.notify({
    eventId: "my-event-id",
    eventData: "Hello World!"
  });
  ```

  ```js Node theme={null}
  const response = await fetch('https://qstash.upstash.io/v2/notify/myEvent', {
    method: 'POST',
    body: "Hello world!",
    headers: {
      'Authorization': 'Bearer <token>'
    }
  });
  ```

  ```python Python theme={null}
  import requests

  headers = {
      'Authorization': 'Bearer <token>',
  }

  response = requests.post(
    'https://qstash.upstash.io/v2/notify/myEvent', 
    headers=headers
  )
  ```

  ```go Go theme={null}
  req, err := http.NewRequest("POST", "https://qstash.upstash.io/v2/notify/myEvent", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("Authorization", "Bearer <token>")
  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  defer resp.Body.Close()
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  [
    {
      "waiter": {
        "url": "https://my-workflow.com/path",
        "headers": {
          "Upstash-Workflow-Runid": [
            "wfr_melCHYvPkVhDqIhhk2"
          ],
          "Upstash-Workflow-Url": [
            "https://my-workflow.com/path"
          ]
        },
        "deadline": 1729869206
      },
      "messageId": "msg_26hZCxxbG2TT3AnHEr1w"
    }
  ]
  ```
</ResponseExample>
