---
title: "Bluejay Webhook"
method: POST
path: "/api/v1/bluejay/webhooks"
tags: ["bluejay-webhooks"]
---

# Bluejay Webhook

`POST /api/v1/bluejay/webhooks`

Receive a Bluejay webhook; flip ``FlywheelRun.sim_passed`` when
the event is ``simulation_result_evaluated``.

Returns a JSON ``{"status": "<outcome>"}`` body so the webhook
sender has a structured acknowledgment. Status values:

- ``ok`` — simulation_result_evaluated processed; sim_passed +
  sim_completed_at updated on the run row.
- ``already_processed`` — idempotent duplicate delivery; run
  already has sim_completed_at set, state unchanged.
- ``unknown_sim`` — no FlywheelRun matches the simulation_id; log
  + drop (capture_message at warning level).
- ``dropped`` — event_type is not one V0.7 handles; 200 OK so
  Bluejay doesn't retry.

Raises 401 on signature / configuration failure.

## Headers

- `x-bluejay-signature` string, required

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/getanana/cleon-api/revisions/c0f54348e251/schema)
