Redeem Install Token
curl --request POST \
--url https://api.hyperspell.com/daemon/redeem-install-token \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-As-User: <api-key>' \
--data '
{
"install_token": "<string>"
}
'import requests
url = "https://api.hyperspell.com/daemon/redeem-install-token"
payload = { "install_token": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"X-As-User": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-As-User': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({install_token: '<string>'})
};
fetch('https://api.hyperspell.com/daemon/redeem-install-token', 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.hyperspell.com/daemon/redeem-install-token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'install_token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-As-User: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hyperspell.com/daemon/redeem-install-token"
payload := strings.NewReader("{\n \"install_token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-As-User", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hyperspell.com/daemon/redeem-install-token")
.header("Authorization", "Bearer <token>")
.header("X-As-User", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"install_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperspell.com/daemon/redeem-install-token")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-As-User"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"install_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"token": "<string>",
"app_slug": "<string>",
"api_url": "<string>",
"user_key": "<string>",
"email": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Daemon
Redeem Install Token
Exchange a one-time install token for daemon credentials.
Called by the install script. Token is in the body (not the URL) to avoid exposure in access logs, CDN logs, and browser history.
POST
/
daemon
/
redeem-install-token
Redeem Install Token
curl --request POST \
--url https://api.hyperspell.com/daemon/redeem-install-token \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-As-User: <api-key>' \
--data '
{
"install_token": "<string>"
}
'import requests
url = "https://api.hyperspell.com/daemon/redeem-install-token"
payload = { "install_token": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"X-As-User": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'X-As-User': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({install_token: '<string>'})
};
fetch('https://api.hyperspell.com/daemon/redeem-install-token', 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.hyperspell.com/daemon/redeem-install-token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'install_token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"X-As-User: <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"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hyperspell.com/daemon/redeem-install-token"
payload := strings.NewReader("{\n \"install_token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("X-As-User", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hyperspell.com/daemon/redeem-install-token")
.header("Authorization", "Bearer <token>")
.header("X-As-User", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"install_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hyperspell.com/daemon/redeem-install-token")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-As-User"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"install_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"token": "<string>",
"app_slug": "<string>",
"api_url": "<string>",
"user_key": "<string>",
"email": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API Key or JWT User Token. If using an API Key, set the X-As-User header to act as a specific user. A JWT User Token is always scoped to a specific user.
Optionally set this header to act as a specific user when using an API Key, equivalent to first exchanging the API Key for a User Token
Body
application/json
Was this page helpful?
⌘I