---
title: "Trigger Sandbox Workflow [Sandbox only]"
method: POST
path: "/api/v1/patients/{particle_patient_id}/subscriptions/trigger-sandbox-workflow"
tags: ["Subscriptions"]
---

# Trigger Sandbox Workflow \[Sandbox only\]

`POST /api/v1/patients/{particle_patient_id}/subscriptions/trigger-sandbox-workflow`

## Request

- Base URL: `https://sandbox.particlehealth.com`
- URL: `https://sandbox.particlehealth.com/api/v1/patients/{particle_patient_id}/subscriptions/trigger-sandbox-workflow`
- Auth: API key in header `Authorization`

> 🚧 **Sandbox only.** This endpoint is available only in the Sandbox environment and is not available in Production.

## Path parameters

- `particle_patient_id` string, required

## Request body

- ApiWorkflowRequest
  - `callback_url` string: Optional. Only used when neither your project nor its parent organization has a callback endpoint registered for this alert type: the URL is registered on your project and the alert is sent there. Without a registered endpoint or a callback_url, the request returns 400. Otherwise alerts go to the registered endpoints.
  - `display_name` string: Optional. Names the endpoint registered from callback_url. Defaults to "Sandbox <workflow>".
  - `event_type` string: Valid Event Type values: A01, A02, A03, A04, A08 (required when workflow is ADT)
  - `workflow` string: Valid Workflow values: ADT, NETWORK_ALERT, TRANSITION_ALERT, MEDICATION_FILLS_ALERT. All other values return 400, including the removed NEW_ENCOUNTER_ALERT, REFERRAL_ALERT, DISCHARGE_SUMMARY_ALERT, ADMIT_TRANSITION_ALERT, DISCHARGE_TRANSITION_ALERT, TRANSFER_TRANSITION_ALERT, and AI_OUTPUTS.

## Response `200`

OK

- ApiWorkflowResponse
  - `callback_urls` string[]: The callback endpoints registered on your project that the alert was sent to. Endpoints registered on your parent organization also receive the alert but are not listed. Omitted when the only endpoint for the alert type is organization-level.
  - `message` string, required
  - `query_id` string: The ID of the query the workflow started. Omitted for workflows that don't run a query, such as ADT.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `404`: Not Found
- `406`: Not Acceptable
- `500`: Internal Server Error

## Changes

- **2026-11-03** `b59a5413a488`: 1 breaking, 8 info
  - the response's body type changed from `string` to `object` for status `200`
  - added the non-success response with the status `404`
  - added the optional property `callback_urls` to the response with the `200` status
  - added the optional property `error_code` to the response with the `400` status
  - …5 more

[Operation history](https://skmtc.dev/particlehealth/apis/particle-health-api/changes/api/v1/patients/:particle_patient_id/subscriptions/trigger-sandbox-workflow/post.md)

---

[API](https://skmtc.dev/particlehealth/apis/particle-health-api.md) - [All operations](https://skmtc.dev/particlehealth/apis/particle-health-api/llms.txt) - [OpenAPI document](https://skmtc.dev/particlehealth/apis/particle-health-api/revisions/b59a5413a488?raw)
