curl --request POST \
--url https://flows.super.ai/api/auth/resend-invite \
--header 'Content-Type: application/json' \
--data '
{
"invite_token": "<string>"
}
'import requests
url = "https://flows.super.ai/api/auth/resend-invite"
payload = { "invite_token": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({invite_token: '<string>'})
};
fetch('https://flows.super.ai/api/auth/resend-invite', 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://flows.super.ai/api/auth/resend-invite",
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([
'invite_token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://flows.super.ai/api/auth/resend-invite"
payload := strings.NewReader("{\n \"invite_token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://flows.super.ai/api/auth/resend-invite")
.header("Content-Type", "application/json")
.body("{\n \"invite_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flows.super.ai/api/auth/resend-invite")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"invite_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "sent"
}Resend user invitation email
Re-send an invitation using the token from the original invite.
Unauthenticated by construction: it backs the expired- and invalid-invitation screens, where the caller holds the invitation link but cannot hold a session.
The response is constant. Whether the token resolved, and whether mail was sent, are both invisible to the caller — that is what stops this endpoint being used to test whether an address has an account. No log line here may carry the token or the resolved address.
curl --request POST \
--url https://flows.super.ai/api/auth/resend-invite \
--header 'Content-Type: application/json' \
--data '
{
"invite_token": "<string>"
}
'import requests
url = "https://flows.super.ai/api/auth/resend-invite"
payload = { "invite_token": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({invite_token: '<string>'})
};
fetch('https://flows.super.ai/api/auth/resend-invite', 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://flows.super.ai/api/auth/resend-invite",
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([
'invite_token' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://flows.super.ai/api/auth/resend-invite"
payload := strings.NewReader("{\n \"invite_token\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://flows.super.ai/api/auth/resend-invite")
.header("Content-Type", "application/json")
.body("{\n \"invite_token\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://flows.super.ai/api/auth/resend-invite")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"invite_token\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "sent"
}Body
Request model for re-sending a user invitation.
Carries proof of possession of the original invitation rather than an address, so the caller cannot name an account it was not already invited to.
The opaque token from the invitation link. An expired token is accepted, since expiry does not change the stored token; an absent one is rejected. A token that matches no live invitation is also accepted and silently does nothing, so the response cannot be probed.
20 - 256Response
Resend acknowledged
Constant acknowledgement that a resend was requested.
Deliberately identical whether the token matched a live invitation, matched nothing, or belonged to an account that is no longer pending, so this unauthenticated endpoint cannot be probed to learn which invitations exist. The caller is told what was requested, never what was found.
Always 'sent'.