Skip to main content
POST
/
auth
/
claim-agent-identity
Claim agent identity
curl --request POST \
  --url https://versuno.ai/api/auth/claim-agent-identity \
  --header 'Content-Type: application/json' \
  --data '
{
  "token": "abc123def456...",
  "email": "you@example.com",
  "password": "yourpassword"
}
'
import requests

url = "https://versuno.ai/api/auth/claim-agent-identity"

payload = {
"token": "abc123def456...",
"email": "you@example.com",
"password": "yourpassword"
}
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({token: 'abc123def456...', email: 'you@example.com', password: 'yourpassword'})
};

fetch('https://versuno.ai/api/auth/claim-agent-identity', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://versuno.ai/api/auth/claim-agent-identity"

payload := strings.NewReader("{\n \"token\": \"abc123def456...\",\n \"email\": \"you@example.com\",\n \"password\": \"yourpassword\"\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))

}
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://versuno.ai/api/auth/claim-agent-identity",
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([
'token' => 'abc123def456...',
'email' => 'you@example.com',
'password' => 'yourpassword'
]),
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;
}
require 'uri'
require 'net/http'

url = URI("https://versuno.ai/api/auth/claim-agent-identity")

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 \"token\": \"abc123def456...\",\n \"email\": \"you@example.com\",\n \"password\": \"yourpassword\"\n}"

response = http.request(request)
puts response.read_body
HttpResponse<String> response = Unirest.post("https://versuno.ai/api/auth/claim-agent-identity")
.header("Content-Type", "application/json")
.body("{\n \"token\": \"abc123def456...\",\n \"email\": \"you@example.com\",\n \"password\": \"yourpassword\"\n}")
.asString();
using RestSharp;


var options = new RestClientOptions("https://versuno.ai/api/auth/claim-agent-identity");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddJsonBody("{\n \"token\": \"abc123def456...\",\n \"email\": \"you@example.com\",\n \"password\": \"yourpassword\"\n}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
{
  "status": "verification_sent",
  "message": "We sent a confirmation link to you@example.com. Click it to finish claiming the account."
}
{
"error": "Wrong data: assetType is required"
}
{
"error": "That email is already associated with a different account. Please use a different email."
}
{
"error": "Wrong data: assetType is required"
}
{
"error": "Could not send the verification email. Please try again."
}
This endpoint is typically called by the claim page at versuno.ai/claim/<token>, not directly by the agent. The token comes from the claim_url returned when the agent identity was created. It is single-use: after this call succeeds, the original claim_url is invalidated and replaced with an email-verification link.
The account becomes permanent only when the verification link in the email is opened. The agent needs access to the email inbox (via an email or MCP integration) to read and open it.

Body

application/json
token
string
required

Claim token from the claim_url path.

Example:

"abc123def456..."

email
string<email>
required

A real email address the agent (or its human) can access.

Example:

"you@example.com"

password
string
required

Password for the account. Minimum 8 characters.

Minimum string length: 8
Example:

"yourpassword"

Response

Verification email sent. The agent opens the verification link from the inbox to make the account permanent.

status
string
Example:

"verification_sent"

message
string
Example:

"We sent a confirmation link to you@example.com. Click it to finish claiming the account."