curl --request GET \
--url https://api.nylon.dev/v1/networks \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.nylon.dev/v1/networks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.nylon.dev/v1/networks"
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/networks",
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/networks")
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": [
{
"network": "x",
"label": "X",
"text": {
"max": 5000,
"per_post": 280,
"max_hashtags": null
},
"threads": true,
"post_types": [
"post"
],
"requires_media": false,
"supports_link_only": true,
"allows_mixed_media": false,
"media": {
"image": {
"max": 4,
"max_bytes": 5242880
},
"video": {
"max": 1,
"max_bytes": 536870912,
"duration_ms": {
"max": 140000
}
},
"gif": {
"max": 1,
"max_bytes": 15728640
}
},
"title": null,
"options": [
"reply_settings"
]
}
]
}{
"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"
}
]
}
}{
"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 network capabilities
Character limits, media specs, post types and options for every network.
curl --request GET \
--url https://api.nylon.dev/v1/networks \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.nylon.dev/v1/networks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.nylon.dev/v1/networks"
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/networks",
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/networks")
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": [
{
"network": "x",
"label": "X",
"text": {
"max": 5000,
"per_post": 280,
"max_hashtags": null
},
"threads": true,
"post_types": [
"post"
],
"requires_media": false,
"supports_link_only": true,
"allows_mixed_media": false,
"media": {
"image": {
"max": 4,
"max_bytes": 5242880
},
"video": {
"max": 1,
"max_bytes": 536870912,
"duration_ms": {
"max": 140000
}
},
"gif": {
"max": 1,
"max_bytes": 15728640
}
},
"title": null,
"options": [
"reply_settings"
]
}
]
}{
"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"
}
]
}
}{
"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
Return one network instead of all twelve. Common aliases such as twitter resolve to x.
"x"
Response
Capabilities per network.
Hide child attributes
Hide child attributes
A network Nylon publishes to.
facebook, instagram, x, linkedin, pinterest, bluesky, threads, tiktok, youtube, google_business, mastodon, discord "instagram"
"X"
Whether a long caption is published as a chain of replies.
true
post, reel, story Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
How many of this kind one post may carry. Zero means the network does not accept it.
4
Per-file ceiling in bytes. Bytes, not megabytes, to avoid the MB/MiB ambiguity.
5242880
Hide child attributes
Hide child attributes
How many of this kind one post may carry. Zero means the network does not accept it.
4
Per-file ceiling in bytes. Bytes, not megabytes, to avoid the MB/MiB ambiguity.
5242880
Hide child attributes
Hide child attributes
How many of this kind one post may carry. Zero means the network does not accept it.
4
Per-file ceiling in bytes. Bytes, not megabytes, to avoid the MB/MiB ambiguity.
5242880
True where a text-only post is impossible — Instagram, Pinterest, TikTok, YouTube.
Whether a bare link with no media is a usable post.
Whether images and videos may be mixed in one post.
The keys this network reads from networks.<network> on a publish request.
["reply_settings"]
Whether this account could connect one right now. Present when listing all networks; availability is app credentials, not a static list.