Get JWKS (JSON Web Key Set) for JWT verification
curl --request GET \
--url https://{defaultHost}/v1/auth/{app_id}/jwksimport requests
url = "https://{defaultHost}/v1/auth/{app_id}/jwks"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://{defaultHost}/v1/auth/{app_id}/jwks', 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://{defaultHost}/v1/auth/{app_id}/jwks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://{defaultHost}/v1/auth/{app_id}/jwks"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{defaultHost}/v1/auth/{app_id}/jwks")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/auth/{app_id}/jwks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "ws_123_1640995200",
"alg": "RS256",
"n": "xUcRA7Inlw4YWJxZxBhozOHt0C3EPDrZWz9nWtNOvxtgYpS2",
"e": "AQAB"
}
]
}{
"error": "App not found",
"error_code": "app_not_found"
}{
"error": "RSA keys not available",
"error_code": "keys_not_available"
}RSA Keys
Get JWKS (JSON Web Key Set) for JWT verification
Returns the public key in JWKS format for JWT token verification. This endpoint is PUBLIC and requires no authentication.
JWKS Compliance:
- Compliant with RFC 7517 (JSON Web Key specification)
- Standard format expected by JWT libraries
- Includes RSA modulus (n) and exponent (e) for verification
Why this endpoint is public:
- Industry standard for JWT verification endpoints
- Required by OAuth2/OIDC specifications
- Enables automatic key discovery by client libraries
The endpoint delegates to the app’s workspace key infrastructure.
GET
/
v1
/
auth
/
{app_id}
/
jwks
Get JWKS (JSON Web Key Set) for JWT verification
curl --request GET \
--url https://{defaultHost}/v1/auth/{app_id}/jwksimport requests
url = "https://{defaultHost}/v1/auth/{app_id}/jwks"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://{defaultHost}/v1/auth/{app_id}/jwks', 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://{defaultHost}/v1/auth/{app_id}/jwks",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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://{defaultHost}/v1/auth/{app_id}/jwks"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{defaultHost}/v1/auth/{app_id}/jwks")
.asString();require 'uri'
require 'net/http'
url = URI("https://{defaultHost}/v1/auth/{app_id}/jwks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"keys": [
{
"kty": "RSA",
"use": "sig",
"kid": "ws_123_1640995200",
"alg": "RS256",
"n": "xUcRA7Inlw4YWJxZxBhozOHt0C3EPDrZWz9nWtNOvxtgYpS2",
"e": "AQAB"
}
]
}{
"error": "App not found",
"error_code": "app_not_found"
}{
"error": "RSA keys not available",
"error_code": "keys_not_available"
}Was this page helpful?