---
title: Check status of OATH token creation job
description: "This example uses the oathJobs endpoint to check the status of an OATH token creation job by including the job ID in the URL: {{apiPathTest}}/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}. The same URL structure is used when checking the status of an OATH token revoking job."
component: pingone-api
page_id: pingone-api:mfa:oath-tokens/check_status_of_oath_token_creation_job
canonical_url: https://developer.pingidentity.com/pingone-api/mfa/oath-tokens/check_status_of_oath_token_creation_job.html
section_ids:
  headers: Headers
  example-request: Example Request
  example-response: Example Response
---

# Check status of OATH token creation job

##

```none
GET {{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}
```

This example uses the `oathJobs` endpoint to check the status of an OATH token creation job by including the job ID in the URL: `{{apiPathTest}}/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}`. The same URL structure is used when checking the status of an OATH token revoking job.

The ID to include in the URL is the value that was returned in the `id` field of the response when the job was submitted.

A status of `DONE` in the response indicates that the job has been completed.

If the job status is `FAILED`, the `reason` field in the response provides the reason for the failure.

The `result.created` field indicates how many tokens were created.

If the list of tokens submitted included tokens with serial numbers that already exist in the environment, the `result.duplicates` object contains information about the duplicates token.

### Headers

Authorization      Bearer {{accessToken}}

##

### Example Request

* cURL

* C#

* Go

* HTTP

* Java

* jQuery

* NodeJS

* Python

* PHP

* Ruby

* Swift

```shell
curl --location --globoff '{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}' \
--header 'Authorization: Bearer {{accessToken}}'
```

```csharp
var options = new RestClientOptions("{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Get);
request.AddHeader("Authorization", "Bearer {{accessToken}}");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
```

```golang
package main

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

func main() {

  url := "{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Authorization", "Bearer {{accessToken}}")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
```

```http
GET /v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}} HTTP/1.1
Host: {{apiPath}}
Authorization: Bearer {{accessToken}}
```

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}")
  .method("GET", body)
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
```

```javascript
var settings = {
  "url": "{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}",
  "method": "GET",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {{accessToken}}"
  },
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
```

```javascript
var request = require('request');
var options = {
  'method': 'GET',
  'url': '{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}',
  'headers': {
    'Authorization': 'Bearer {{accessToken}}'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});
```

```python
import requests

url = "{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}"

payload = {}
headers = {
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
```

```php
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Authorization' => 'Bearer {{accessToken}}'
));
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}
```

```ruby
require "uri"
require "net/http"

url = URI("{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Get.new(url)
request["Authorization"] = "Bearer {{accessToken}}"

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

```swift
var request = URLRequest(url: URL(string: "{{apiPath}}/v1/environments/{{envID}}/oathJobs/{{oathTokenCreationJobID}}")!,timeoutInterval: Double.infinity)
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
  guard let data = data else {
    print(String(describing: error))
    return
  }
  print(String(data: data, encoding: .utf8)!)
}

task.resume()
```

### Example Response

200 OK

```json
{
    "_links": {
        "self": {
            "href": "https://api.test-one-pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/jobs/61c96614-ff99-47cd-aae9-ee7959eea0cf"
        },
        "environment": {
            "href": "https://api.test-one-pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
        }
    },
    "id": "61c96614-ff99-47cd-aae9-ee7959eea0cf",
    "environment": {
        "id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
    },
    "type": "CREATE_OATH_TOKENS",
    "async": true,
    "status": "DONE",
    "result": {
        "created": 6,
        "duplicates": [
            {
                "serialNumber": "2308734700412",
                "maskedSecret": "6E******"
            },
            {
                "serialNumber": "2300004700388",
                "maskedSecret": "6E******"
            }
        ]
    }
}
```
