curl --request GET \
--url https://api.nylon.dev/v1/profiles \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.nylon.dev/v1/profiles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.nylon.dev/v1/profiles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.nylon.dev/v1/profiles",
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: Bearer <token>"
],
]);
$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://api.nylon.dev/v1/profiles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "cly7p2q4k0001x8b3f2n9d0aa",
"network": "instagram",
"external_id": "17841400000000000",
"name": "Nylon Studio",
"handle": "nylonstudio",
"avatar_url": "https://cdn.example.com/avatar.jpg",
"profile_url": "https://www.instagram.com/nylonstudio",
"status": "active",
"suspended": false,
"connected_at": "2026-05-14T10:20:00.000Z"
}
],
"meta": {
"pagination": {
"limit": 25,
"offset": 0,
"total": 1,
"has_more": false
}
}
}{
"error": {
"code": "unauthorized",
"message": "A valid Nylon API key is required."
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after the window resets."
}
}{
"error": {
"code": "unauthorized",
"message": "A valid Nylon API key is required.",
"details": [
{
"message": "Instagram requires at least 1 media item — text-only posts are not supported.",
"field": "profile_ids",
"network": "instagram",
"code": "invalid_request"
}
]
}
}List connected profiles
Return every social profile connected to the authenticated Nylon account.
curl --request GET \
--url https://api.nylon.dev/v1/profiles \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.nylon.dev/v1/profiles', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.nylon.dev/v1/profiles"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.nylon.dev/v1/profiles",
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: Bearer <token>"
],
]);
$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://api.nylon.dev/v1/profiles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "cly7p2q4k0001x8b3f2n9d0aa",
"network": "instagram",
"external_id": "17841400000000000",
"name": "Nylon Studio",
"handle": "nylonstudio",
"avatar_url": "https://cdn.example.com/avatar.jpg",
"profile_url": "https://www.instagram.com/nylonstudio",
"status": "active",
"suspended": false,
"connected_at": "2026-05-14T10:20:00.000Z"
}
],
"meta": {
"pagination": {
"limit": 25,
"offset": 0,
"total": 1,
"has_more": false
}
}
}{
"error": {
"code": "unauthorized",
"message": "A valid Nylon API key is required."
}
}{
"error": {
"code": "rate_limited",
"message": "Too many requests. Retry after the window resets."
}
}{
"error": {
"code": "unauthorized",
"message": "A valid Nylon API key is required.",
"details": [
{
"message": "Instagram requires at least 1 media item — text-only posts are not supported.",
"field": "profile_ids",
"network": "instagram",
"code": "invalid_request"
}
]
}
}Authorizations
An API key beginning with nylon_live_.
Query Parameters
Page size, 1–100.
1 <= x <= 100Rows to skip.
x >= 0Comma-separated networks to include.
"instagram,linkedin"
Case-insensitive match against the profile name or handle.
"nylon"
Comma-separated ids on the network itself — a Page id, an Instagram account id. For finding a profile you know only by the network's own identifier, such as one you mirrored from another system.
"102938475610111"
Response
A page of connected profiles.
Hide child attributes
Hide child attributes
Stable Nylon identifier for the connected profile. This is what you address a post to.
"cly7p2q4k0001x8b3f2n9d0aa"
A network Nylon publishes to.
facebook, instagram, x, linkedin, pinterest, bluesky, threads, tiktok, youtube, google_business, mastodon, discord, dribbble, kick, twitch, whop, devto "instagram"
The network's own identifier for the account.
"17841400000000000"
Display name of the connected profile.
"Nylon Studio"
active is healthy. needs_attention means the stored credentials
stopped working and the customer has to reconnect in Nylon.
active, needs_attention "active"
True when the profile is beyond the free allowance and billing is
not active. It is still listed and still connected, but publishing
to it is refused with 402.
false
"2026-05-14T10:20:00.000Z"
Network username without a leading @, when the network has one.
"nylonstudio"
"https://cdn.example.com/avatar.jpg"
"https://www.instagram.com/nylonstudio"
Hide child attributes
Hide child attributes