View Credential
curl --request GET \
--url https://api.thehyperstack.com/v1/credential/{document_id}/view \
--header 'Authorization: <authorization>'import requests
url = "https://api.thehyperstack.com/v1/credential/{document_id}/view"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.thehyperstack.com/v1/credential/{document_id}/view', 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://api.thehyperstack.com/v1/credential/{document_id}/view",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://api.thehyperstack.com/v1/credential/{document_id}/view"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.thehyperstack.com/v1/credential/{document_id}/view")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.thehyperstack.com/v1/credential/{document_id}/view")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"success": true,
"document_id": "6f1c2a8e-3b4d-4e5f-9a7b-1c2d3e4f5a6b",
"document_url": "https://hyperstack.id/credential/6f1c2a8e-3b4d-4e5f-9a7b-1c2d3e4f5a6b",
"recipient": { "name": "Jane Doe", "email": "jane.doe@example.com" },
"group": { "title": "Cloud Security Fundamentals", "key": "Kq7Zp2LmX9aB", "code": "CSF-2026" },
"issued_on": "2026-03-15T10:30:04.903512Z",
"valid_until": "2028-03-15T10:30:04Z",
"metadata": { "custom_grade": "A" },
"status": "active",
"privacy": "public"
}
{
"success": false,
"error": "Document does not exists in your account"
}
{
"detail": "Invalid token or organization not found"
}
Credentials
View Credential
GET
/
v1
/
credential
/
{document_id}
/
view
View Credential
curl --request GET \
--url https://api.thehyperstack.com/v1/credential/{document_id}/view \
--header 'Authorization: <authorization>'import requests
url = "https://api.thehyperstack.com/v1/credential/{document_id}/view"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://api.thehyperstack.com/v1/credential/{document_id}/view', 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://api.thehyperstack.com/v1/credential/{document_id}/view",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://api.thehyperstack.com/v1/credential/{document_id}/view"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.thehyperstack.com/v1/credential/{document_id}/view")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.thehyperstack.com/v1/credential/{document_id}/view")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"success": true,
"document_id": "6f1c2a8e-3b4d-4e5f-9a7b-1c2d3e4f5a6b",
"document_url": "https://hyperstack.id/credential/6f1c2a8e-3b4d-4e5f-9a7b-1c2d3e4f5a6b",
"recipient": { "name": "Jane Doe", "email": "jane.doe@example.com" },
"group": { "title": "Cloud Security Fundamentals", "key": "Kq7Zp2LmX9aB", "code": "CSF-2026" },
"issued_on": "2026-03-15T10:30:04.903512Z",
"valid_until": "2028-03-15T10:30:04Z",
"metadata": { "custom_grade": "A" },
"status": "active",
"privacy": "public"
}
{
"success": false,
"error": "Document does not exists in your account"
}
{
"detail": "Invalid token or organization not found"
}
Description
Returns one credential and its current status. Drafts work too.POST works too.
Headers
string
required
Your API key:
Bearer YOUR_API_KEY. Create a key in the Studio under Settings → Developers.Path Parameters
string
required
ID of the credential.
Success Response Fields
boolean
true when the credential was found.string
ID of the credential.
string
Public page of the credential.
object
The recipient’s
name and email.object
The group’s
title, key and code.string
The issue date of the credential (ISO 8601, UTC). If no issue date was set, the time it was published or created.
string | null
When the credential expires (ISO 8601, UTC).
null when it never expires.object
The credential’s custom attribute values, such as
{"custom_grade": "A"}.string
The current status. Hyperstack checks these in order and gives the first that is true:
suspended: the credential is suspended.expired: the expiry date has passed.active: the credential is published.revoked: the credential is revoked.unpublished: a draft, or still being published.
string
"public" or "private".Responses
{
"success": true,
"document_id": "6f1c2a8e-3b4d-4e5f-9a7b-1c2d3e4f5a6b",
"document_url": "https://hyperstack.id/credential/6f1c2a8e-3b4d-4e5f-9a7b-1c2d3e4f5a6b",
"recipient": { "name": "Jane Doe", "email": "jane.doe@example.com" },
"group": { "title": "Cloud Security Fundamentals", "key": "Kq7Zp2LmX9aB", "code": "CSF-2026" },
"issued_on": "2026-03-15T10:30:04.903512Z",
"valid_until": "2028-03-15T10:30:04Z",
"metadata": { "custom_grade": "A" },
"status": "active",
"privacy": "public"
}
{
"success": false,
"error": "Document does not exists in your account"
}
{
"detail": "Invalid token or organization not found"
}
curl "https://api.thehyperstack.com/v1/credential/6f1c2a8e-3b4d-4e5f-9a7b-1c2d3e4f5a6b/view" \
-H "Authorization: Bearer YOUR_API_KEY"
Last modified on October 20, 2026
Was this page helpful?

