Update Session By ID
PUT {{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}
Use PUT {{apiPath}}/environments/{{envID}}/sessions/{{sessionID}} to update an existing, unexpired session. A session token can’t be updated by this request, only by Update Session By Session Token.
Prerequisites
-
Refer to Sessions for important overview information.
Request Model
For complete property descriptions, refer to Sessions data model.
If user.id isn’t specified, the lastSignOn object is null, and any values assigned here are ignored.
| Property | Type | Required? |
|---|---|---|
|
Date |
Required |
|
String |
Required |
|
Integer |
Optional |
|
Object |
Required |
|
String |
Required |
|
String |
Required |
|
Map |
Required |
|
String |
Required |
|
Date |
Required |
|
Object |
Required |
|
String |
Required |
|
String |
Required |
|
String |
Optional |
|
String |
Required |
Body
raw ( application/json )
{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
}
Example Request
-
cURL
-
C#
-
Go
-
HTTP
-
Java
-
jQuery
-
NodeJS
-
Python
-
PHP
-
Ruby
-
Swift
curl --location --globoff --request PUT '{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
}'
var options = new RestClientOptions("{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Put);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@" ""activeAt"": ""{{$isoTimestamp}}""," + "\n" +
@" ""idleTimeoutInMinutes"": ""72000""," + "\n" +
@" ""lastSignOn"": {" + "\n" +
@" ""authenticators"": [" + "\n" +
@" ""pwd""" + "\n" +
@" ]," + "\n" +
@" ""remoteIp"": ""174.1.62.19""," + "\n" +
@" ""withAuthenticator"": {" + "\n" +
@" ""pwd"": {" + "\n" +
@" ""at"": ""2022-08-17T01:21:30.116Z""," + "\n" +
@" ""policy"": {" + "\n" +
@" ""id"": ""{{passwordPolicyID}}""," + "\n" +
@" ""type"": ""PINGONE""" + "\n" +
@" }" + "\n" +
@" }" + "\n" +
@" }" + "\n" +
@" }," + "\n" +
@" ""user"": {" + "\n" +
@" ""id"": ""{{userID}}""" + "\n" +
@" }," + "\n" +
@" ""userAgent"": ""Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0""" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);
package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}"
method := "PUT"
payload := strings.NewReader(`{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Content-Type", "application/json")
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))
}
PUT /environments/{{envID}}/sessions/{{sessionID}} HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}
{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"activeAt\": \"{{$isoTimestamp}}\",\n \"idleTimeoutInMinutes\": \"72000\",\n \"lastSignOn\": {\n \"authenticators\": [\n \"pwd\"\n ],\n \"remoteIp\": \"174.1.62.19\",\n \"withAuthenticator\": {\n \"pwd\": {\n \"at\": \"2022-08-17T01:21:30.116Z\",\n \"policy\": {\n \"id\": \"{{passwordPolicyID}}\",\n \"type\": \"PINGONE\"\n }\n }\n }\n },\n \"user\": {\n \"id\": \"{{userID}}\"\n },\n \"userAgent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0\"\n}");
Request request = new Request.Builder()
.url("{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}")
.method("PUT", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}",
"method": "PUT",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {{accessToken}}"
},
"data": JSON.stringify({
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
}),
};
$.ajax(settings).done(function (response) {
console.log(response);
});
var request = require('request');
var options = {
'method': 'PUT',
'url': '{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{accessToken}}'
},
body: JSON.stringify({
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
import requests
import json
url = "{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}"
payload = json.dumps({
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
})
headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{accessToken}}'
}
response = requests.request("PUT", url, headers=headers, data=payload)
print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}');
$request->setMethod(HTTP_Request2::METHOD_PUT);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n "activeAt": "{{$isoTimestamp}}",\n "idleTimeoutInMinutes": "72000",\n "lastSignOn": {\n "authenticators": [\n "pwd"\n ],\n "remoteIp": "174.1.62.19",\n "withAuthenticator": {\n "pwd": {\n "at": "2022-08-17T01:21:30.116Z",\n "policy": {\n "id": "{{passwordPolicyID}}",\n "type": "PINGONE"\n }\n }\n }\n },\n "user": {\n "id": "{{userID}}"\n },\n "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"\n}');
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();
}
require "uri"
require "json"
require "net/http"
url = URI("{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Put.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
"activeAt": "{{\$isoTimestamp}}",
"idleTimeoutInMinutes": "72000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"user": {
"id": "{{userID}}"
},
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0"
})
response = http.request(request)
puts response.read_body
let parameters = "{\n \"activeAt\": \"{{$isoTimestamp}}\",\n \"idleTimeoutInMinutes\": \"72000\",\n \"lastSignOn\": {\n \"authenticators\": [\n \"pwd\"\n ],\n \"remoteIp\": \"174.1.62.19\",\n \"withAuthenticator\": {\n \"pwd\": {\n \"at\": \"2022-08-17T01:21:30.116Z\",\n \"policy\": {\n \"id\": \"{{passwordPolicyID}}\",\n \"type\": \"PINGONE\"\n }\n }\n }\n },\n \"user\": {\n \"id\": \"{{userID}}\"\n },\n \"userAgent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0\"\n}"
let postData = parameters.data(using: .utf8)
var request = URLRequest(url: URL(string: "{{apiPath}}/environments/{{envID}}/sessions/{{sessionID}}")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")
request.httpMethod = "PUT"
request.httpBody = postData
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
{
"_links": {
"self": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/sessions/ee14fe02-6b74-46b3-81f2-2de2a384fa1b"
},
"environment": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"user": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/users/07e1ee43-9f56-4254-8cfb-1709b5ea8e24"
}
},
"id": "ee14fe02-6b74-46b3-81f2-2de2a384fa1b",
"environment": {
"id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"user": {
"id": "07e1ee43-9f56-4254-8cfb-1709b5ea8e24"
},
"createdAt": "2022-10-04T17:10:30.531Z",
"activeAt": "2022-10-04T17:12:19.890Z",
"idleTimeoutInMinutes": 72000,
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:103.0) Gecko/20100101 Firefox/103.0",
"browser": {
"name": "Firefox",
"version": "103.0"
},
"operatingSystem": {
"name": "Mac OS X",
"version": "10.15"
},
"device": {
"type": "Mac"
},
"locations": [
{
"at": "2022-08-17T01:21:30.116Z",
"remoteIp": "174.1.62.19",
"city": "port coquitlam",
"state": "british columbia",
"region": "west coast",
"country": "canada"
},
{
"at": "2022-08-17T01:21:30.116Z",
"remoteIp": "174.1.62.19"
}
],
"lastSignOn": {
"remoteIp": "174.1.62.19",
"authenticators": [
"pwd"
],
"withAuthenticator": {
"pwd": {
"policy": {
"id": "874d5c7d-5e1c-4e73-b2b5-dfe1453b02f5",
"type": "PINGONE"
},
"at": "2022-08-17T01:21:30.116Z"
}
},
"policy": {
"id": "874d5c7d-5e1c-4e73-b2b5-dfe1453b02f5",
"type": "PINGONE"
},
"at": "2022-08-17T01:21:30.116Z"
},
"expiresAt": "2022-11-23T17:12:19.890Z"
}