Connected Accounts
curl --request GET \
--url https://app.nouvel.ai/api/v1/accounts \
--header 'Authorization: <authorization>'import requests
url = "https://app.nouvel.ai/api/v1/accounts"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://app.nouvel.ai/api/v1/accounts', 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://app.nouvel.ai/api/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://app.nouvel.ai/api/v1/accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.nouvel.ai/api/v1/accounts")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.nouvel.ai/api/v1/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"accounts": [
{
"id": "<string>",
"platform": "<string>",
"username": "<string>",
"displayName": "<string>",
"avatarUrl": "<string>",
"followersCount": 123
}
]
}Publishing
Connected Accounts
List connected social media accounts for your organization
GET
/
api
/
v1
/
accounts
Connected Accounts
curl --request GET \
--url https://app.nouvel.ai/api/v1/accounts \
--header 'Authorization: <authorization>'import requests
url = "https://app.nouvel.ai/api/v1/accounts"
headers = {"Authorization": "<authorization>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<authorization>'}};
fetch('https://app.nouvel.ai/api/v1/accounts', 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://app.nouvel.ai/api/v1/accounts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>"
],
]);
$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://app.nouvel.ai/api/v1/accounts"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<authorization>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://app.nouvel.ai/api/v1/accounts")
.header("Authorization", "<authorization>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.nouvel.ai/api/v1/accounts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<authorization>'
response = http.request(request)
puts response.read_body{
"accounts": [
{
"id": "<string>",
"platform": "<string>",
"username": "<string>",
"displayName": "<string>",
"avatarUrl": "<string>",
"followersCount": 123
}
]
}List all social media accounts connected to your organization. Use this to discover available accounts for publishing or to display account information in your integration.
Authentication
string
required
Your Nouvel API key with
analytics:read permission. Format: Bearer nvl_xxxxQuery Parameters
string
Filter accounts by platform. Supported values:
instagram, tiktok, youtube, facebook, linkedin, pinterest, threads, twitter, redditResponse
array
required
List of connected social media accounts.
Show Account object
Show Account object
string
required
Unique account identifier. Use this as
accountId when publishing.string
required
Platform name (e.g.,
instagram, tiktok, youtube).string
required
Account username or handle.
string
required
Account display name.
string
URL of the account’s profile picture.
integer
Current number of followers.
Example Requests
curl https://app.nouvel.ai/api/v1/accounts \
-H "Authorization: Bearer nvl_xxxx"
curl "https://app.nouvel.ai/api/v1/accounts?platform=instagram" \
-H "Authorization: Bearer nvl_xxxx"
const response = await fetch('https://app.nouvel.ai/api/v1/accounts?platform=instagram', {
headers: {
'Authorization': `Bearer ${process.env.NOUVEL_API_KEY}`,
},
});
const { accounts } = await response.json();
accounts.forEach(acct => {
console.log(`${acct.platform}: @${acct.username} (${acct.followersCount} followers)`);
});
import requests
response = requests.get(
'https://app.nouvel.ai/api/v1/accounts',
headers={'Authorization': f'Bearer {api_key}'},
params={'platform': 'instagram'}
)
for acct in response.json()['accounts']:
print(f"{acct['platform']}: @{acct['username']}")
Response Examples
{
"accounts": [
{
"id": "6612f1a2b3c4d5e6f7890123",
"platform": "instagram",
"username": "mybrand",
"displayName": "My Brand",
"avatarUrl": "https://scontent.cdninstagram.com/...",
"followersCount": 15000
},
{
"id": "6612f1a2b3c4d5e6f7890456",
"platform": "tiktok",
"username": "mybrand_official",
"displayName": "My Brand Official",
"avatarUrl": "https://p16-sign.tiktokcdn.com/...",
"followersCount": 42000
}
]
}
{
"error": "Invalid API key"
}
{
"error": "This API key does not have the 'analytics:read' permission"
}
{
"error": "No organization found for this user"
}
Error Codes
| Code | Description |
|---|---|
| 401 | Invalid or missing API key |
| 402 | Plan doesn’t include API access |
| 403 | API key missing analytics:read permission |
| 404 | No organization found for the user |
Notes
- Accounts are connected via the Nouvel dashboard (Settings > Connected Accounts)
- Account data is synced from the social platform — follower counts may lag by up to 1 hour
- The
idfield is the identifier you’ll use asaccountIdwhen calling the Publish endpoint
⌘I

