# Retrieve a Workflow

Retrieves the details of a Workflow by ID.

## Request

```curl
curl https://api.stripe.com/v2/extend/workflows/wf_test_61UNwDso5RkJhsXt116TT0rUFzSQLefl99yAJBArIFXc \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-04-22.preview"
```

### Response

```json
{
  "id": "wf_test_61UNwDso5RkJhsXt116TT0rUFzSQLefl99yAJBArIFXc",
  "object": "v2.extend.workflow",
  "created": "2026-03-24T16:57:16.660Z",
  "livemode": false,
  "status": "active",
  "title": "Send welcome email",
  "triggers": [
    {
      "type": "event_trigger",
      "event_trigger": {
        "type": "customer.created",
        "events_from": [
          "@self"
        ]
      }
    }
  ]
}
```

## Returns

## Response attributes

- `id` (string)
  The unique ID of the Workflow.

- `object` (string, value is "v2.extend.workflow")
  String representing the object’s type. Objects of the same type share the same value of the object field.

- `created` (timestamp)
  When the Workflow was created.

- `livemode` (boolean)
  Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.

- `status` (enum)
  Whether this Workflow is active, inactive, or in some other state. Only active Workflows may be invoked.
Possible enum values:
  - `active`
    This Workflow is active and ready to be invoked.

  - `archived`
    This Workflow has been archived, and cannot be invoked.

  - `draft`
    This Workflow has not been finalized, and cannot be invoked.

  - `inactive`
    This Workflow has been saved, but is temporarily paused, and cannot be invoked.

- `title` (string)
  Workflow title.

- [`triggers`](https://docs.stripe.com/api/v2/extend/workflows/retrieve.md?query=triggers&api-version=2026-04-22.preview) (array of objects)
  Under what conditions will this Workflow launch.

## Error Codes

| HTTP status code | Code | Description |
| --- | --- | --- |
| 404 | not_found | The resource wasn’t found. |
