Get session ID
curl --request GET \
--url https://rest.forestreet.com/v2/auth/session \
--header 'x-api-key: <api-key>'import requests
url = "https://rest.forestreet.com/v2/auth/session"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://rest.forestreet.com/v2/auth/session', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://rest.forestreet.com/v2/auth/session",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://rest.forestreet.com/v2/auth/session"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://rest.forestreet.com/v2/auth/session")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/auth/session")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"accessToken": "<string>",
"refreshToken": "<string>",
"expiresIn": 123,
"expiresAt": 123
}{
"success": false,
"errorCode": "INVALID_INPUT",
"message": "Bad Request - Invalid input"
}{
"success": false,
"errorCode": "UNAUTHORISED",
"message": "Unauthorized - Invalid credentials, token or cookies"
}Authentication
Get session ID
Create new session using a valid API key, which will return a JWT token in the response.
This allows API users to create a timed session from the backend, before passing the resultant JWT token to an unauthenticated frontend application. This prevents any risks of the API key being exposed to the frontend application.
See also the
PUT /v2/auth/session endpoint.GET
/
v2
/
auth
/
session
Get session ID
curl --request GET \
--url https://rest.forestreet.com/v2/auth/session \
--header 'x-api-key: <api-key>'import requests
url = "https://rest.forestreet.com/v2/auth/session"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://rest.forestreet.com/v2/auth/session', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://rest.forestreet.com/v2/auth/session",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://rest.forestreet.com/v2/auth/session"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://rest.forestreet.com/v2/auth/session")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://rest.forestreet.com/v2/auth/session")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"message": "<string>",
"accessToken": "<string>",
"refreshToken": "<string>",
"expiresIn": 123,
"expiresAt": 123
}{
"success": false,
"errorCode": "INVALID_INPUT",
"message": "Bad Request - Invalid input"
}{
"success": false,
"errorCode": "UNAUTHORISED",
"message": "Unauthorized - Invalid credentials, token or cookies"
}Authorizations
apiKeyAuthbearerAuthsessionIdQuery
Pass a static API key for every request, provided by your customer support.
Headers
API key for authentication.
Minimum string length:
1Response
Session created successfully
Message from the server.
Access token for the user.
Pattern:
^[A-Za-z0-9-_]+(?:\.[A-Za-z0-9-_]+)+$Refresh token for the user.
Pattern:
^[A-Za-z0-9-_]+(?:\.[A-Za-z0-9-_]+)+$Expires duration for the access token.
Expires timestamp for the access token.