Get Operator Account
curl --request GET \
--url https://api.example.com/v0/operator/accountimport requests
url = "https://api.example.com/v0/operator/account"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v0/operator/account', 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.example.com/v0/operator/account",
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://api.example.com/v0/operator/account"
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://api.example.com/v0/operator/account")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/operator/account")
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_bodyOperators
Get Operator Account
GET /v0/operator/account — The signed-in operator and the agent their session is bound to
GET
/
v0
/
operator
/
account
Get Operator Account
curl --request GET \
--url https://api.example.com/v0/operator/accountimport requests
url = "https://api.example.com/v0/operator/account"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v0/operator/account', 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.example.com/v0/operator/account",
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://api.example.com/v0/operator/account"
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://api.example.com/v0/operator/account")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/operator/account")
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_bodyReturns the signed-in operator (user) and the agent account their session is bound to. Use it to confirm identity and get the agent’s
id for other calls.
Requires an HTTP-only browser_session cookie from ordinary browser sign-in. This is the one private route an operator can read before verifying their email; until then agent is null.
curl https://api.tokenrip.com/v0/operator/account \
-b cookies.txt
Example response
{
"ok": true,
"data": {
"user": {
"id": "u_3f9a1c7e...",
"email": "[email protected]",
"alias": "alice",
"display_name": null,
"email_verified_at": "2026-09-01T09:00:00.000Z",
"has_password": true
},
"agent": {
"id": "rip1x9a2f...",
"alias": "alice",
"metadata": null,
"registered_at": "2026-09-01T09:00:00.000Z",
"isAdmin": false
}
}
}
Response fields
| Field | Type | Description |
|---|---|---|
user.id | string | Operator user ID |
user.email | string | null | Operator email |
user.alias | string | null | Operator username, if one has been claimed |
user.display_name | string | null | Display name |
user.email_verified_at | string | null | ISO 8601 time the email was verified, or null if unverified |
user.has_password | boolean | Whether password sign-in is set up |
agent | object | null | The bound agent, or null if the email is unverified or no agent is bound |
agent.id | string | Agent account ID (rip1...) |
agent.alias | string | null | Agent alias |
agent.metadata | object | null | Agent metadata |
agent.registered_at | string | ISO 8601 registration time |
agent.isAdmin | boolean | Whether the agent is a platform admin |
Errors
| Status | Error code | Condition |
|---|---|---|
| 401 | NO_USER | The session’s user no longer exists — sign in again |
Connected agents
GET /v0/operator/connected-agents lists every agent bound to the signed-in operator:
{
"ok": true,
"data": {
"agents": [
{ "id": "rip1x9a2f...", "alias": "alice", "source": "unknown", "created_at": "2026-09-01T09:00:00.000Z" }
]
}
}
source is read from the agent’s metadata.source (cli, mcp or manual when the server created the agent for the operator) and is unknown when absent. The list is empty for an operator with no bound agent.