Authentication
JWKS URL
Public key endpoint for JWT token verification and signature validation
Listen to this pageabout 1 min
GET
/
api
/
auth
/
.well-known
/
jwks-pub.json
Get JWKS public keys
curl --request GET \
--url https://sdp.suki.ai/api/auth/.well-known/jwks-pub.jsonimport requests
url = "https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json', 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://sdp.suki.ai/api/auth/.well-known/jwks-pub.json",
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://sdp.suki.ai/api/auth/.well-known/jwks-pub.json"
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://sdp.suki.ai/api/auth/.well-known/jwks-pub.json")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json")
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": [
{
"alg": "RS256",
"e": "AQAB",
"kid": "partner-jwks-key-1",
"kty": "RSA",
"n": "yeNlzlub94YgerT030codqEztjfU_S6X4DbDA_iVKkjAWtYfPHDzz_sPCT1Axz6isZdf3lHpq_gYX4Sz-cbe4rjmigxUxr-FgKHQy3HeCdK6hNq9ASQvMK9LBOpXDNn7mei6RZWom4wo3CMvvsY1w8tjtfLb-yQwJPltHxShZq5-ihC9irpLI9xEBTgG12q5lGIFPhTl_7inA1PFK97LuSLnTJzW0bj096v_TMDg7pOWm_zHtF53qbVsI0e3v5nmdKXdFf9BjIARRfVrbxVxiZHjU6zL6jY5QJdh1QCmENoejj_ytspMmGW7yMRxzUqgxcAqOBpVm0b-_mW3HoBdjQ",
"use": "sig"
}
]
}Use this public endpoint to get the (JSON Web Key Set) containing Suki’s public keys. Use these keys to verify the signature of any issued by Suki, such as the
suki_token.
This endpoint follows the RFC 7517 standard.
AuthenticationThis is a public endpoint and does not require authentication.
Common integration patterns and use cases
-
Verify issued tokens: Fetch the JWKS and use the matching public key to verify the signature of a
suki_tokenbefore trusting its claims. - Handle key rotation: Resolve signing keys by key ID and refresh the JWKS when a token references a key that is not in your cache.
- Cache public keys: Cache the JWKS according to your token-verification library or service policy, and refresh it when key resolution fails.
Code examples
- Python
- TypeScript
import requests
url = "https://sdp.suki-stage.com/api/auth/.well-known/jwks-pub.json"
response = requests.get(url)
if response.status_code == 200:
jwks = response.json()
print("Public keys retrieved successfully")
print(f"Keys: {jwks}")
else:
print(f"Failed to retrieve JWKS: {response.status_code}")
const response = await fetch('https://sdp.suki-stage.com/api/auth/.well-known/jwks-pub.json');
if (response.ok) {
const jwks = await response.json();
console.log('Public keys retrieved successfully');
console.log('Keys:', jwks);
} else {
console.error(`Failed to retrieve JWKS: ${response.status}`);
}
Response
200 - */*
JWKS document with public keys for partner token verification.
JSON Web Key Set document for partner token verification.
Array of JSON Web Keys used to verify partner token signatures.
Show child attributes
Show child attributes
Last modified on August 13, 2026
Was this page helpful?
Get JWKS public keys
curl --request GET \
--url https://sdp.suki.ai/api/auth/.well-known/jwks-pub.jsonimport requests
url = "https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json', 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://sdp.suki.ai/api/auth/.well-known/jwks-pub.json",
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://sdp.suki.ai/api/auth/.well-known/jwks-pub.json"
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://sdp.suki.ai/api/auth/.well-known/jwks-pub.json")
.asString();require 'uri'
require 'net/http'
url = URI("https://sdp.suki.ai/api/auth/.well-known/jwks-pub.json")
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": [
{
"alg": "RS256",
"e": "AQAB",
"kid": "partner-jwks-key-1",
"kty": "RSA",
"n": "yeNlzlub94YgerT030codqEztjfU_S6X4DbDA_iVKkjAWtYfPHDzz_sPCT1Axz6isZdf3lHpq_gYX4Sz-cbe4rjmigxUxr-FgKHQy3HeCdK6hNq9ASQvMK9LBOpXDNn7mei6RZWom4wo3CMvvsY1w8tjtfLb-yQwJPltHxShZq5-ihC9irpLI9xEBTgG12q5lGIFPhTl_7inA1PFK97LuSLnTJzW0bj096v_TMDg7pOWm_zHtF53qbVsI0e3v5nmdKXdFf9BjIARRfVrbxVxiZHjU6zL6jY5QJdh1QCmENoejj_ytspMmGW7yMRxzUqgxcAqOBpVm0b-_mW3HoBdjQ",
"use": "sig"
}
]
}