> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# Get workflows

GET http://localhost:3000/service_catalog/GetWorkflows

Returns a list of all existing Workflows.

Reference: https://docs.itential.com/itential-platform/2023-2/api-reference/service-catalog/get-workflows

## Authentication

- `Authorization` header (basic auth, required) — Basic authentication of the form `Basic <base64(username:password)>`.

## Response

### 200

Return all existing Workflows.

- `list of object`
  - `_id` (string, optional)
  - `name` (string, optional)
  - `type` (list of string, optional)
  - `tasks` (object, optional)
    - `workflow_start` (object, optional)
      - `name` (string, optional)
      - `groups` (list of object, optional)
        - `_id` (string, optional)
        - `provenance` (string, optional)
        - `name` (string, optional)
        - `description` (string, optional)
        - `memberOf` (list of string, optional)
        - `assignedRoles` (list of string, optional)
        - `inactive` (boolean, optional)
        - `_meta` (object, optional)
          - `created` (string, optional)
          - `updated` (string, optional)
      - `x` (integer, optional)
      - `y` (integer, optional)
    - `workflow_end` (object, optional)
      - `name` (string, optional)
      - `groups` (list of object, optional)
        - `_id` (string, optional)
        - `provenance` (string, optional)
        - `name` (string, optional)
        - `description` (string, optional)
        - `memberOf` (list of string, optional)
        - `assignedRoles` (list of string, optional)
        - `inactive` (boolean, optional)
        - `_meta` (object, optional)
          - `created` (string, optional)
          - `updated` (string, optional)
      - `x` (integer, optional)
      - `y` (integer, optional)
    - `taskInfo(seeWFEngineexamples)` (object, optional)
    - `transitions(seeWFEngineexamples)` (object, optional)
    - `font_size` (integer, optional)
    - `last_updated` (string, optional)
    - `last_updated_by` (string, optional)
    - `groups` (list of object, optional)
      - `_id` (string, optional)
      - `provenance` (string, optional)
      - `name` (string, optional)
      - `description` (string, optional)
      - `memberOf` (list of string, optional)
      - `assignedRoles` (list of string, optional)
      - `inactive` (boolean, optional)
      - `_meta` (object, optional)
        - `created` (string, optional)
        - `updated` (string, optional)
    - `created` (string, optional)
    - `created_by` (string, optional)

## Errors

### 500 Internal Server Error

Error response from API

- `any`

## Examples

**Response**

```json
[
  {
    "_id": "e905670d-9db2-4e31-a374-53b5f25126ad",
    "name": "testingWF",
    "type": [
      "automation"
    ],
    "tasks": {
      "workflow_start": {
        "name": "workflow_start",
        "groups": [
          {
            "_id": "fe1bfeee-61b8-404d-aefc-dc57be92ff02",
            "provenance": "Local AAA",
            "name": "pronghorn_admin",
            "description": "pronghorn_admin",
            "memberOf": [
              "group1"
            ],
            "assignedRoles": [
              "engineer"
            ],
            "inactive": true,
            "_meta": {
              "created": "2019-03-15T19:37:39.112Z",
              "updated": "2019-03-15T19:37:39.112Z"
            }
          }
        ],
        "x": 0,
        "y": 1
      },
      "workflow_end": {
        "name": "workflow_end",
        "groups": [
          {
            "_id": "fe1bfeee-61b8-404d-aefc-dc57be92ff02",
            "provenance": "Local AAA",
            "name": "pronghorn_admin",
            "description": "pronghorn_admin",
            "memberOf": [
              "group1"
            ],
            "assignedRoles": [
              "engineer"
            ],
            "inactive": true,
            "_meta": {
              "created": "2019-03-15T19:37:39.112Z",
              "updated": "2019-03-15T19:37:39.112Z"
            }
          }
        ],
        "x": 0,
        "y": 1
      },
      "taskInfo(seeWFEngineexamples)": {},
      "transitions(seeWFEngineexamples)": {},
      "font_size": 12,
      "last_updated": "2019-03-22T14:55:13.074Z",
      "last_updated_by": "5c8bff0370102c001502d1f7",
      "groups": [
        {
          "_id": "fe1bfeee-61b8-404d-aefc-dc57be92ff02",
          "provenance": "Local AAA",
          "name": "pronghorn_admin",
          "description": "pronghorn_admin",
          "memberOf": [
            "group1"
          ],
          "assignedRoles": [
            "engineer"
          ],
          "inactive": true,
          "_meta": {
            "created": "2019-03-15T19:37:39.112Z",
            "updated": "2019-03-15T19:37:39.112Z"
          }
        }
      ],
      "created": "2019-03-22T14:55:13.074Z",
      "created_by": "5c8bff0370102c001502d1f7"
    }
  }
]
```

**SDK Code**

```python
import requests

url = "http://localhost:3000/service_catalog/GetWorkflows"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'http://localhost:3000/service_catalog/GetWorkflows';
const options = {method: 'GET'};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "http://localhost:3000/service_catalog/GetWorkflows"

	req, _ := http.NewRequest("GET", url, nil)

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("http://localhost:3000/service_catalog/GetWorkflows")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("http://localhost:3000/service_catalog/GetWorkflows")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'http://localhost:3000/service_catalog/GetWorkflows');

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("http://localhost:3000/service_catalog/GetWorkflows");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "http://localhost:3000/service_catalog/GetWorkflows")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```