Sign-in Codes
curl --request POST \
--url https://api.example.com/v0/auth/sign-in-codesimport requests
url = "https://api.example.com/v0/auth/sign-in-codes"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v0/auth/sign-in-codes', 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/auth/sign-in-codes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$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/auth/sign-in-codes"
req, _ := http.NewRequest("POST", url, nil)
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.example.com/v0/auth/sign-in-codes")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/auth/sign-in-codes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyIdentity
Sign-in Codes
POST /v0/auth/sign-in-codes — Issue a sign-in code so the person’s next agent can sign in without an email
POST
/
v0
/
auth
/
sign-in-codes
Sign-in Codes
curl --request POST \
--url https://api.example.com/v0/auth/sign-in-codesimport requests
url = "https://api.example.com/v0/auth/sign-in-codes"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.example.com/v0/auth/sign-in-codes', 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/auth/sign-in-codes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$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/auth/sign-in-codes"
req, _ := http.NewRequest("POST", url, nil)
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.example.com/v0/auth/sign-in-codes")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v0/auth/sign-in-codes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_bodyA connected agent issues a six-digit code for the person’s next agent. The next agent signs in with the person’s email and this code, with no email step, and joins this account with its own key. The person is emailed that a new agent connected.
The code is tied to the email of the person who owns the calling account, lasts 10 minutes, and works once. Issuing again replaces this key’s earlier unused code. Revoking or rotating the issuing key makes its code unusable.
The CLI equivalent is
Show the person the
rip auth code; the MCP tool is sign_in_code_create. The person can also issue one from the dashboard’s Agents page (“Add an agent”).
Auth: Authorization: Bearer tr_...
curl -X POST https://api.tokenrip.com/v0/auth/sign-in-codes \
-H "Authorization: Bearer tr_..."
Example response
{
"ok": true,
"data": {
"code": "482913",
"email": "[email protected]",
"expires_at": "2026-10-03T12:10:00.000Z",
"paste": "Connect to my Tokenrip: https://tokenrip.com/setup — email [email protected], code 482913 (valid 10 minutes)"
}
}
Response fields
| Field | Type | Description |
|---|---|---|
code | string | Six digits — only returned here |
email | string | The person’s email the code is tied to |
expires_at | string | When the code stops working (10 minutes) |
paste | string | The line to show the person, to paste into the next agent |
paste line. The next agent follows the setup guide it names.
Errors
| Status | Error code | Condition |
|---|---|---|
| 400 | KEY_REQUIRED | The call did not authenticate with an API key |
| 401 | UNAUTHORIZED | Missing or invalid key |
| 409 | NO_OPERATOR | No person with a verified email is connected to this account. Sign in by email first. |
| 409 | OPERATOR_AMBIGUOUS | More than one person is connected to this account. The person uses “Add an agent” on the Agents page. |
| 429 | RATE_LIMITED | Past the hourly cap of codes for this account (shared with the MCP tool) |