Create Session
POST {{apiPath}}/environments/{{envID}}/sessions
Use POST {{apiPath}}/environments/{{envID}}/sessions to create a new session. Unless you specify a token value, you’ll not be able to use Read Session By Session Token, Update Session By Session Token, or Delete 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 (POST) |
|
Object |
Required |
|
String[] |
Required |
|
String |
Required |
|
Map |
Required |
|
String |
Required |
|
Date |
Required |
|
Object |
Required |
|
String |
Required |
|
String |
Required |
|
String |
Optional |
|
String |
Optional |
|
String |
Required |
Body
raw ( application/json )
{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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 '{{apiPath}}/environments/{{envID}}/sessions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{accessToken}}' \
--data '{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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")
{
MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "Bearer {{accessToken}}");
var body = @"{" + "\n" +
@" ""activeAt"": ""{{$isoTimestamp}}""," + "\n" +
@" ""idleTimeoutInMinutes"": ""144000""," + "\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" +
@" ""token"": ""{{token}}""," + "\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"
method := "POST"
payload := strings.NewReader(`{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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))
}
POST /environments/{{envID}}/sessions HTTP/1.1
Host: {{apiPath}}
Content-Type: application/json
Authorization: Bearer {{accessToken}}
{
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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\": \"144000\",\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 \"token\": \"{{token}}\",\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")
.method("POST", body)
.addHeader("Content-Type", "application/json")
.addHeader("Authorization", "Bearer {{accessToken}}")
.build();
Response response = client.newCall(request).execute();
var settings = {
"url": "{{apiPath}}/environments/{{envID}}/sessions",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {{accessToken}}"
},
"data": JSON.stringify({
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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': 'POST',
'url': '{{apiPath}}/environments/{{envID}}/sessions',
'headers': {
'Content-Type': 'application/json',
'Authorization': 'Bearer {{accessToken}}'
},
body: JSON.stringify({
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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"
payload = json.dumps({
"activeAt": "{{$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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("POST", url, headers=headers, data=payload)
print(response.text)
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('{{apiPath}}/environments/{{envID}}/sessions');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer {{accessToken}}'
));
$request->setBody('{\n "activeAt": "{{$isoTimestamp}}",\n "idleTimeoutInMinutes": "144000",\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 "token": "{{token}}",\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")
http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer {{accessToken}}"
request.body = JSON.dump({
"activeAt": "{{\$isoTimestamp}}",
"idleTimeoutInMinutes": "144000",
"lastSignOn": {
"authenticators": [
"pwd"
],
"remoteIp": "174.1.62.19",
"withAuthenticator": {
"pwd": {
"at": "2022-08-17T01:21:30.116Z",
"policy": {
"id": "{{passwordPolicyID}}",
"type": "PINGONE"
}
}
}
},
"token": "{{token}}",
"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\": \"144000\",\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 \"token\": \"{{token}}\",\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")!,timeoutInterval: Double.infinity)
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("Bearer {{accessToken}}", forHTTPHeaderField: "Authorization")
request.httpMethod = "POST"
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
201 Created
{
"_links": {
"self": {
"href": "https://api.pingone.com/v1/environments/abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6/sessions/48650856-2bab-4436-856b-2e6e6e6ae3f9"
},
"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": "48650856-2bab-4436-856b-2e6e6e6ae3f9",
"environment": {
"id": "abfba8f6-49eb-49f5-a5d9-80ad5c98f9f6"
},
"user": {
"id": "07e1ee43-9f56-4254-8cfb-1709b5ea8e24"
},
"createdAt": "2022-10-03T17:06:43.071Z",
"activeAt": "2022-08-17T01:21:30.117Z",
"idleTimeoutInMinutes": 144000,
"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"
}
],
"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-25T01:21:30.117Z"
}