> 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 a task by ID

GET https://example.itential.io/operations-manager/tasks/{id}

Returns a Task.

Reference: https://docs.itential.com/itential-cloud/api-reference/operations-manager/get-task

## Authentication

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

## Request

### Path parameters

- `id` (string, required) — The id of the Task to get.

### Query parameters

- `include` (string, optional) — Inclusive projection operator formatted as a comma-delineated list. '_id' will be included implicitly unless excluded with 'exclude=_id'. May only be used in conjunction with 'exclude' when 'exclude=_id'.
- `exclude` (string, optional) — Exclusive projection operator formatted as a comma-delineated list. May only be used in conjunction with 'include' when 'exclude=_id'.
- `dereference` (string, optional) — Designates foreign key fields to dereference in the API output. The main function of this parameter is to retrieve extra information on a task that would not ordinarily be included. If information is needed on the task's parent job, the dereference parameter may be given a value of 'job'. This will look up the full job document and place it under the 'job' property in the task document. If the output of a child job task is needed, the dereference parameter may be given a value of 'child-job-output'. This will look up the output of the job initiated by the child job task. If the child job has loop settings each individual output will be provided in an array under the property 'variables.outgoing.job_details.loop'. If the child job does not have loop settings, the output of the single job document will be provided under the property 'variables.outgoing.job_details.output'.

## Response

### 200

The requested Task.

- `message` (string, required) — A human-readable message summarizing the result of the operation
- `data` (object, required) — Any successfully retrieved information related to the request.
  - `_id` (string, optional) — A UUIDv4 identifier.
  - `location` (enum, optional)
    - Allowed values: `Adapter`, `Application`, `Broker`
  - `view` (string, optional, nullable)
  - `status` (enum, optional)
    - Allowed values: `incomplete`, `scheduled`, `running`, `complete`, `canceled`, `error`, `failure`, `paused`
  - `app` (string, optional)
  - `name` (string, optional)
  - `variables` (object, optional)
    - `incoming` (object, optional)
    - `outgoing` (object, optional)
    - `decorators` (list of object, optional)
      - `type` (any, optional)
      - `pointer` (string, optional)
  - `last_updated` (string, optional) — An ISO 8601 date string
  - `encodingVersion` (enum, optional)
    - Allowed values: `1`
  - `job` (object, optional)
    - `_id` (string, optional) — A string which is formatted like an ObjectId, Distinct from an actual ObjectId.
    - `task` (string, optional)
    - `name` (string, optional) — The name of the document
    - `description` (string, optional, nullable)
    - `ancestors` (list of string, optional, nullable)
  - `incomingRefs` (list of any, optional)
  - `workItemId` (string, optional) — A UUIDv7 identifier.
  - `mockId` (string, optional) — A UUIDv4 identifier.
  - `groups` (list of object or string, optional)
    - object
      - `_id` (string, optional) — A string which is formatted like an ObjectId, Distinct from an actual ObjectId.
      - `provenance` (string, optional)
      - `name` (string, optional)
      - `description` (string, optional)
      - `memberOf` (list of object, optional)
        - `groupId` (string, optional) — A string which is formatted like an ObjectId, Distinct from an actual ObjectId.
        - `aaaManaged` (boolean, optional)
      - `assignedRoles` (list of object, optional)
        - `roleId` (string, optional)
      - `inactive` (boolean, optional)
      - `_meta` (object, optional)
        - `created` (string, optional) — An ISO 8601 date string
        - `updated` (string, optional) — An ISO 8601 date string
        - `migrationVersion` (integer, optional) — The current document version of this document.
  - `type` (any, optional)
  - `metrics` (object, optional)
    - `start_time` (string, optional)
    - `claim_time` (string, optional) — An ISO 8601 date string
    - `end_time` (double, optional)
    - `server_id` (string, optional)
    - `finish_state` (any or enum, optional)
    - `run_time` (double, optional)
    - `user` (object or string or enum, optional)
      - object
        - `_id` (string, optional) — A string which is formatted like an ObjectId, Distinct from an actual ObjectId.
        - `provenance` (string, optional)
        - `username` (string, optional)
        - `firstname` (string, optional)
        - `memberOf` (list of object, optional)
          - `groupId` (string, optional) — A string which is formatted like an ObjectId, Distinct from an actual ObjectId.
          - `aaaManaged` (boolean, optional)
        - `assignedRoles` (list of object, optional)
          - `roleId` (string, optional)
        - `inactive` (boolean, optional)
        - `lastLogin` (string, optional) — An ISO 8601 date string
        - `_meta` (object, optional)
          - `created` (string, optional) — An ISO 8601 date string
          - `updated` (string, optional) — An ISO 8601 date string
          - `migrationVersion` (integer, optional) — The current document version of this document.
        - `email` (string, optional)
    - `owner` (object or string or enum, optional)
      - object
        - `_id` (string, optional) — A string which is formatted like an ObjectId, Distinct from an actual ObjectId.
        - `provenance` (string, optional)
        - `username` (string, optional)
        - `firstname` (string, optional)
        - `memberOf` (list of object, optional)
          - `groupId` (string, optional) — A string which is formatted like an ObjectId, Distinct from an actual ObjectId.
          - `aaaManaged` (boolean, optional)
        - `assignedRoles` (list of object, optional)
          - `roleId` (string, optional)
        - `inactive` (boolean, optional)
        - `lastLogin` (string, optional) — An ISO 8601 date string
        - `_meta` (object, optional)
          - `created` (string, optional) — An ISO 8601 date string
          - `updated` (string, optional) — An ISO 8601 date string
          - `migrationVersion` (integer, optional) — The current document version of this document.
        - `email` (string, optional)
- `metadata` (map from string to any, required) — Any structured, wordy or machine-readable information related to the result of the operation. For success responses, this may contain information like pagination values from a search operation.

## Errors

### 500 Internal Server Error

Error response from API

- `any`

## Examples

**Response**

```json
{
  "message": "Successfully created the requested item",
  "data": {
    "_id": "string",
    "location": "Adapter",
    "view": "/workflow_engine/task/ViewData",
    "status": "incomplete",
    "app": "WorkFlowEngine",
    "name": "ViewData",
    "variables": {
      "incoming": {},
      "outgoing": {},
      "decorators": [
        {
          "type": null,
          "pointer": "string"
        }
      ]
    },
    "last_updated": "2024-01-15T09:30:00Z",
    "encodingVersion": 1,
    "job": {
      "_id": "string",
      "task": "e28f",
      "name": "Cisco IOS upgrade",
      "description": "View Task Data",
      "ancestors": [
        "string"
      ]
    },
    "incomingRefs": [
      "string"
    ],
    "workItemId": "string",
    "mockId": "string",
    "groups": [
      {
        "_id": "string",
        "_meta": {
          "created": "2024-01-15T09:30:00Z",
          "migrationVersion": 1,
          "updated": "2024-01-15T09:30:00Z"
        },
        "assignedRoles": [
          {
            "roleId": "66ec91e12b18975149d9e0d9"
          }
        ],
        "description": "string",
        "inactive": true,
        "memberOf": [
          {
            "aaaManaged": true,
            "groupId": "string"
          }
        ],
        "name": "admin",
        "provenance": "Local AAA"
      }
    ],
    "type": null,
    "metrics": {
      "start_time": [
        "2025-03-11T19:03:31.515Z"
      ],
      "claim_time": "2024-01-15T09:30:00Z",
      "end_time": 1740438512495,
      "server_id": "9349c650f70d50e4fe89c95327b7d4d9e6b5228ac83fe4fae120045b37b67860",
      "finish_state": null,
      "run_time": 5,
      "user": {
        "_id": "string",
        "_meta": {
          "created": "2024-01-15T09:30:00Z",
          "migrationVersion": 1,
          "updated": "2024-01-15T09:30:00Z"
        },
        "assignedRoles": [
          {
            "roleId": "66ec91e12b18975149d9e0d9"
          }
        ],
        "email": "admin@itential.com",
        "firstname": "admin",
        "inactive": true,
        "lastLogin": "2024-01-15T09:30:00Z",
        "memberOf": [
          {
            "aaaManaged": true,
            "groupId": "string"
          }
        ],
        "provenance": "Local AAA",
        "username": "admin@pronghorn"
      },
      "owner": {
        "_id": "string",
        "_meta": {
          "created": "2024-01-15T09:30:00Z",
          "migrationVersion": 1,
          "updated": "2024-01-15T09:30:00Z"
        },
        "assignedRoles": [
          {
            "roleId": "66ec91e12b18975149d9e0d9"
          }
        ],
        "email": "admin@itential.com",
        "firstname": "admin",
        "inactive": true,
        "lastLogin": "2024-01-15T09:30:00Z",
        "memberOf": [
          {
            "aaaManaged": true,
            "groupId": "string"
          }
        ],
        "provenance": "Local AAA",
        "username": "admin@pronghorn"
      }
    }
  },
  "metadata": {}
}
```

**SDK Code**

```python
import requests

url = "https://example.itential.io/operations-manager/tasks/id"

response = requests.get(url)

print(response.json())
```

```javascript
const url = 'https://example.itential.io/operations-manager/tasks/id';
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 := "https://example.itential.io/operations-manager/tasks/id"

	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("https://example.itential.io/operations-manager/tasks/id")

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

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("https://example.itential.io/operations-manager/tasks/id")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://example.itential.io/operations-manager/tasks/id');

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

```csharp
using RestSharp;

var client = new RestClient("https://example.itential.io/operations-manager/tasks/id");
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let request = NSMutableURLRequest(url: NSURL(string: "https://example.itential.io/operations-manager/tasks/id")! 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()
```