Create account connection
curl --request POST \
--url https://api.range.org/v2/account-connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"cubist": {
"login_id": "<string>",
"refresh_token": "<string>",
"org_id": "<string>"
}
}
'import requests
url = "https://api.range.org/v2/account-connections"
payload = {
"name": "<string>",
"cubist": {
"login_id": "<string>",
"refresh_token": "<string>",
"org_id": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
cubist: {login_id: '<string>', refresh_token: '<string>', org_id: '<string>'}
})
};
fetch('https://api.range.org/v2/account-connections', 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.range.org/v2/account-connections",
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([
'name' => '<string>',
'cubist' => [
'login_id' => '<string>',
'refresh_token' => '<string>',
'org_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.range.org/v2/account-connections"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"cubist\": {\n \"login_id\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"org_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.range.org/v2/account-connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"cubist\": {\n \"login_id\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"org_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/account-connections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"cubist\": {\n \"login_id\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"org_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "conn_abc123",
"name": "My Utila Account",
"type": "utila",
"public_data": {
"public_key": "pk_abc123"
},
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Account Connections
Create account connection
Stores connection credentials for later use in preview and sync.
POST
/
v2
/
account-connections
Create account connection
curl --request POST \
--url https://api.range.org/v2/account-connections \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"cubist": {
"login_id": "<string>",
"refresh_token": "<string>",
"org_id": "<string>"
}
}
'import requests
url = "https://api.range.org/v2/account-connections"
payload = {
"name": "<string>",
"cubist": {
"login_id": "<string>",
"refresh_token": "<string>",
"org_id": "<string>"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
cubist: {login_id: '<string>', refresh_token: '<string>', org_id: '<string>'}
})
};
fetch('https://api.range.org/v2/account-connections', 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.range.org/v2/account-connections",
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([
'name' => '<string>',
'cubist' => [
'login_id' => '<string>',
'refresh_token' => '<string>',
'org_id' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.range.org/v2/account-connections"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"cubist\": {\n \"login_id\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"org_id\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.range.org/v2/account-connections")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"cubist\": {\n \"login_id\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"org_id\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.range.org/v2/account-connections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"cubist\": {\n \"login_id\": \"<string>\",\n \"refresh_token\": \"<string>\",\n \"org_id\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "conn_abc123",
"name": "My Utila Account",
"type": "utila",
"public_data": {
"public_key": "pk_abc123"
},
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}Authorizations
Use Authorization: Bearer
Body
application/json
Available options:
utila, kraken, plaid, squads, coinbase, realms, wise, safe, hyperliquid, cubist, anchorage, privy, dfns Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Response
200 - application/json
Example:
"conn_abc123"
Example:
"My Utila Account"
Available options:
utila, kraken, plaid, squads, coinbase, realms, wise, safe, hyperliquid, cubist, anchorage, privy, dfns Example:
"utila"
Non-sensitive public metadata
Example:
{ "public_key": "pk_abc123" }
Example:
"2026-01-01T00:00:00.000Z"
Example:
"2026-01-01T00:00:00.000Z"
Last modified on July 8, 2026
Was this page helpful?
⌘I