---
title: Reset Authentication Session by Session ID
description: Use POST {{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}} to reset an existing session based on the specified sessionID. This effectively signs the user out of the existing SSO session. The user is then required to be authenticated again for the SSO session indicated by sessionID.
component: pingone-api
page_id: pingone-api:platform:sessions/create-session-id
canonical_url: https://developer.pingidentity.com/pingone-api/platform/sessions/create-session-id.html
section_ids:
  prerequisites: Prerequisites
  headers: Headers
  example-request: Example Request
  example-response: Example Response
---

# Reset Authentication Session by Session ID

##

```none
POST {{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}
```

Use `POST {{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}` to reset an existing session based on the specified `sessionID`. This effectively signs the user out of the existing SSO session. The user is then required to be authenticated again for the SSO session indicated by `sessionID`.

You need to include in the header, the Content-Type `application/vnd.pingidentity.sso.session.logout`. The request body is empty.

A successful execution returns 204 No Content.

### Prerequisites

* Refer to [Sessions](../sessions.html) for important overview information.

### Headers

Authorization      Bearer {{accessToken}}

Content-Type      application/vnd.pingidentity.sso.session.logout

##

### Example Request

* cURL

* C#

* Go

* HTTP

* Java

* jQuery

* NodeJS

* Python

* PHP

* Ruby

* Swift

```shell
curl --location --globoff --request POST '{{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}' \
--header 'Content-Type: application/vnd.pingidentity.sso.session.logout' \
--header 'Authorization: Bearer {{accessToken}}'
```

```csharp
var options = new RestClientOptions("{{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/vnd.pingidentity.sso.session.logout");
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}}/sessions/{{sessionID}}"
  method := "POST"

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

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/vnd.pingidentity.sso.session.logout")
  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
POST /v1/environments/{{envID}}/sessions/{{sessionID}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/vnd.pingidentity.sso.session.logout
Authorization: Bearer {{accessToken}}
```

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/vnd.pingidentity.sso.session.logout");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("{{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}")
  .method("POST", body)
  .addHeader("Content-Type", "application/vnd.pingidentity.sso.session.logout")
  .addHeader("Authorization", "Bearer {{accessToken}}")
  .build();
Response response = client.newCall(request).execute();
```

```javascript
var settings = {
  "url": "{{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/vnd.pingidentity.sso.session.logout",
    "Authorization": "Bearer {{accessToken}}"
  },
};

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

```javascript
var request = require('request');
var options = {
  'method': 'POST',
  'url': '{{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}',
  'headers': {
    'Content-Type': 'application/vnd.pingidentity.sso.session.logout',
    '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}}/sessions/{{sessionID}}"

payload = {}
headers = {
  'Content-Type': 'application/vnd.pingidentity.sso.session.logout',
  'Authorization': 'Bearer {{accessToken}}'
}

response = requests.request("POST", 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}}/sessions/{{sessionID}}');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/vnd.pingidentity.sso.session.logout',
  '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}}/sessions/{{sessionID}}")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/vnd.pingidentity.sso.session.logout"
request["Authorization"] = "Bearer {{accessToken}}"

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

```swift
var request = URLRequest(url: URL(string: "{{apiPath}}/v1/environments/{{envID}}/sessions/{{sessionID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/vnd.pingidentity.sso.session.logout", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")

request.httpMethod = "POST"

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

204 No Content
