List content types
curl --request GET \
--url https://app.trypost.it/api/content-types \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.trypost.it/api/content-types"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.trypost.it/api/content-types', 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.trypost.it/api/content-types",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.trypost.it/api/content-types"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.trypost.it/api/content-types")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trypost.it/api/content-types")
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{
"platforms": [
{
"platform": "x",
"label": "X",
"max_content_length": 280,
"max_hashtags": null,
"alt_text_max_length": 1000,
"required_meta": [],
"recommended_content_length": 220,
"allowed_media_types": [
"image",
"video"
],
"default_content_type": "x_post",
"content_types": [
{
"value": "x_post",
"label": "Post",
"description": "Tweet with text and media",
"max_media_count": 4,
"min_media_count": 0,
"requires_media": false,
"accept_images": true,
"accept_videos": true,
"accept_documents": false,
"accepts_gif": true,
"accepts_mov": true,
"forbids_mixed_media": false,
"max_video_duration_sec": 1200,
"max_image_bytes": 5242880,
"max_video_bytes": 1073741824,
"max_document_bytes": null,
"aspect_ratio_min": null,
"aspect_ratio_max": null,
"video_aspect_ratio_min": null,
"video_aspect_ratio_max": null,
"auto_fits_image": false,
"supports_alt_text": true,
"supports_user_tags": false,
"supports_video_cover": false,
"image_min_width": null,
"image_min_height": null,
"image_max_width": null,
"image_max_height": null,
"captionless": false,
"document_must_be_alone": false,
"supports_thread_replies": true,
"max_thread_replies": 24
}
]
}
]
}{
"message": "Unauthenticated."
}{
"message": "Active subscription required."
}{
"message": "<string>"
}{
"name": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please retry after 30 seconds."
}Platform
List content types
Lists every network with its text limit, hashtag limit, alt text limit, required settings (required_meta), default content type, and the media rules of each content type: media counts and sizes, formats, aspect ratios, whether text is sent (captionless) and whether thread replies are accepted. Use it to build platforms[].content_type and meta for posts. Not paginated.
GET
/
content-types
List content types
curl --request GET \
--url https://app.trypost.it/api/content-types \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.trypost.it/api/content-types"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.trypost.it/api/content-types', 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.trypost.it/api/content-types",
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;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.trypost.it/api/content-types"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.trypost.it/api/content-types")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.trypost.it/api/content-types")
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{
"platforms": [
{
"platform": "x",
"label": "X",
"max_content_length": 280,
"max_hashtags": null,
"alt_text_max_length": 1000,
"required_meta": [],
"recommended_content_length": 220,
"allowed_media_types": [
"image",
"video"
],
"default_content_type": "x_post",
"content_types": [
{
"value": "x_post",
"label": "Post",
"description": "Tweet with text and media",
"max_media_count": 4,
"min_media_count": 0,
"requires_media": false,
"accept_images": true,
"accept_videos": true,
"accept_documents": false,
"accepts_gif": true,
"accepts_mov": true,
"forbids_mixed_media": false,
"max_video_duration_sec": 1200,
"max_image_bytes": 5242880,
"max_video_bytes": 1073741824,
"max_document_bytes": null,
"aspect_ratio_min": null,
"aspect_ratio_max": null,
"video_aspect_ratio_min": null,
"video_aspect_ratio_max": null,
"auto_fits_image": false,
"supports_alt_text": true,
"supports_user_tags": false,
"supports_video_cover": false,
"image_min_width": null,
"image_min_height": null,
"image_max_width": null,
"image_max_height": null,
"captionless": false,
"document_must_be_alone": false,
"supports_thread_replies": true,
"max_thread_replies": 24
}
]
}
]
}{
"message": "Unauthenticated."
}{
"message": "Active subscription required."
}{
"message": "<string>"
}{
"name": "rate_limit_exceeded",
"message": "Rate limit exceeded. Please retry after 30 seconds."
}
