MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

<aside>As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).</aside>

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

All authenticated endpoints are marked with a requires authentication badge in the documentation below.

You can retrieve your token by visiting your dashboard and clicking Generate API token.

Company

Actions related to Company model.

Company Resource

Attributes

Relations

GET api/companies

requires authentication

Return the list of companies

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/companies?include=image.thumbnail&filter%5Bid%5D=consequatur&filter%5Btype%5D=consequatur&filter%5Bname%5D=consequatur&filter%5Buser_id%5D=consequatur&filter%5Bcountry_iso_code%5D=17&filter%5Blanguage_iso_code%5D=consequatur&sort=id%2C+-id%2C+name%2C+-name%2C+created_at%2C+-created_at&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/companies"
);

const params = {
    "include": "image.thumbnail",
    "filter[id]": "consequatur",
    "filter[type]": "consequatur",
    "filter[name]": "consequatur",
    "filter[user_id]": "consequatur",
    "filter[country_iso_code]": "17",
    "filter[language_iso_code]": "consequatur",
    "sort": "id, -id, name, -name, created_at, -created_at",
    "page[number]": "1",
    "page[size]": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'image.thumbnail',
            'filter[id]' => 'consequatur',
            'filter[type]' => 'consequatur',
            'filter[name]' => 'consequatur',
            'filter[user_id]' => 'consequatur',
            'filter[country_iso_code]' => '17',
            'filter[language_iso_code]' => 'consequatur',
            'sort' => 'id, -id, name, -name, created_at, -created_at',
            'page[number]' => '1',
            'page[size]' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies'
params = {
  'include': 'image.thumbnail',
  'filter[id]': 'consequatur',
  'filter[type]': 'consequatur',
  'filter[name]': 'consequatur',
  'filter[user_id]': 'consequatur',
  'filter[country_iso_code]': '17',
  'filter[language_iso_code]': 'consequatur',
  'sort': 'id, -id, name, -name, created_at, -created_at',
  'page[number]': '1',
  'page[size]': '10',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": [
        {
            "id": 120,
            "user_id": 271,
            "type": "company",
            "name": "Mueller-Dibbert",
            "description": "Dolores minus voluptatem quisquam quibusdam sed vel a.",
            "country_iso_code": "MU",
            "language_iso_code": "es",
            "language": "sg",
            "language_types": null,
            "interests": null,
            "tones": null,
            "emotions": null,
            "syntaxes": null,
            "characters": null,
            "fonts": null,
            "audience_types": null,
            "audience_ages": null,
            "audience_genders": null,
            "website": null,
            "palettes": null,
            "social_network_prompts": null,
            "ai_image_styles": null,
            "ai_preferences": null,
            "ai_keys": null,
            "webhook_secret": null,
            "webhook_posts_url": null,
            "created_at": "2025-09-18T23:53:42.000000Z",
            "updated_at": "2025-09-18T23:53:42.000000Z",
            "disabled_at": null,
            "user": {
                "id": 271,
                "name": "Mrs. Audra Nolan",
                "email": "kunde.eloisa@example.com",
                "referral_code": "XHLUPT",
                "language": null,
                "timezone": null,
                "notification_settings": null,
                "credits": 0,
                "pm_type": null,
                "pm_last_four": null,
                "cancel_reason": null,
                "referrer_url": null,
                "land_url": null,
                "has_password": true,
                "created_at": "2025-09-18T23:53:42.000000Z",
                "updated_at": "2025-09-18T23:53:42.000000Z",
                "banned_at": null,
                "password_changed_at": "2025-09-18T23:53:42.000000Z"
            }
        },
        {
            "id": 121,
            "user_id": 272,
            "type": "company",
            "name": "Douglas Group",
            "description": "Perferendis voluptatibus incidunt nostrum quia possimus.",
            "country_iso_code": "MF",
            "language_iso_code": "ve",
            "language": "lb",
            "language_types": null,
            "interests": null,
            "tones": null,
            "emotions": null,
            "syntaxes": null,
            "characters": null,
            "fonts": null,
            "audience_types": null,
            "audience_ages": null,
            "audience_genders": null,
            "website": null,
            "palettes": null,
            "social_network_prompts": null,
            "ai_image_styles": null,
            "ai_preferences": null,
            "ai_keys": null,
            "webhook_secret": null,
            "webhook_posts_url": null,
            "created_at": "2025-09-18T23:53:42.000000Z",
            "updated_at": "2025-09-18T23:53:42.000000Z",
            "disabled_at": null,
            "user": {
                "id": 272,
                "name": "Mona Morissette",
                "email": "ablanda@example.org",
                "referral_code": "EKHH8J",
                "language": null,
                "timezone": null,
                "notification_settings": null,
                "credits": 0,
                "pm_type": null,
                "pm_last_four": null,
                "cancel_reason": null,
                "referrer_url": null,
                "land_url": null,
                "has_password": true,
                "created_at": "2025-09-18T23:53:42.000000Z",
                "updated_at": "2025-09-18T23:53:42.000000Z",
                "banned_at": null,
                "password_changed_at": "2025-09-18T23:53:42.000000Z"
            }
        }
    ]
}
 

Request      

GET api/companies

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: image.thumbnail

filter[id]   string  optional  

filter by id Example: consequatur

filter[type]   string  optional  

filter by type (company, individual) Example: consequatur

filter[name]   string  optional  

filter by name Example: consequatur

filter[user_id]   string  optional  

filter by user id Example: consequatur

filter[country_iso_code]   integer  optional  

filter by country iso code Example: 17

filter[language_iso_code]   string  optional  

filter by language iso code Example: consequatur

sort   string  optional  

sort by field. Example: id, -id, name, -name, created_at, -created_at

page[number]   integer  optional  

page number. Example: 1

page[size]   integer  optional  

items per page (default 30). Example: 10

GET api/companies/{id}

requires authentication

Return the company

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/companies/consequatur?include=image.thumbnail" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/companies/consequatur"
);

const params = {
    "include": "image.thumbnail",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'image.thumbnail',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies/consequatur'
params = {
  'include': 'image.thumbnail',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": {
        "id": 122,
        "user_id": 273,
        "type": "company",
        "name": "Lakin-Hahn",
        "description": "Natus earum quas dignissimos perferendis.",
        "country_iso_code": "FK",
        "language_iso_code": "en",
        "language": "nl",
        "language_types": null,
        "interests": null,
        "tones": null,
        "emotions": null,
        "syntaxes": null,
        "characters": null,
        "fonts": null,
        "audience_types": null,
        "audience_ages": null,
        "audience_genders": null,
        "website": null,
        "palettes": null,
        "social_network_prompts": null,
        "ai_image_styles": null,
        "ai_preferences": null,
        "ai_keys": null,
        "webhook_secret": null,
        "webhook_posts_url": null,
        "created_at": "2025-09-18T23:53:42.000000Z",
        "updated_at": "2025-09-18T23:53:42.000000Z",
        "disabled_at": null,
        "user": {
            "id": 273,
            "name": "Ms. Edyth Cartwright DDS",
            "email": "lola88@example.com",
            "referral_code": "SXIYGD",
            "language": null,
            "timezone": null,
            "notification_settings": null,
            "credits": 0,
            "pm_type": null,
            "pm_last_four": null,
            "cancel_reason": null,
            "referrer_url": null,
            "land_url": null,
            "has_password": true,
            "created_at": "2025-09-18T23:53:42.000000Z",
            "updated_at": "2025-09-18T23:53:42.000000Z",
            "banned_at": null,
            "password_changed_at": "2025-09-18T23:53:42.000000Z"
        }
    }
}
 

Request      

GET api/companies/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the user Example: consequatur

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: image.thumbnail

POST api/companies

requires authentication

Create a new company

Example request:
curl --request POST \
    "https://app.followr.ai/api/companies" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"consequatur\",
    \"name\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"country_iso_code\": \"consequatur\",
    \"language_iso_code\": \"consequatur\",
    \"language\": \"consequatur\",
    \"language_types\": \"consequatur\",
    \"interests\": \"consequatur\",
    \"audience_types\": \"consequatur\",
    \"audience_ages\": \"consequatur\",
    \"audience_genders\": \"consequatur\",
    \"website\": \"consequatur\",
    \"palettes\": \"consequatur\",
    \"tones\": \"consequatur\",
    \"emotions\": \"consequatur\",
    \"syntaxes\": \"consequatur\",
    \"characters\": \"consequatur\",
    \"fonts\": \"consequatur\",
    \"vista_template_ids\": \"consequatur\",
    \"ai_image_styles\": \"consequatur\",
    \"ai_preferences\": \"consequatur\",
    \"ai_keys\": \"consequatur\",
    \"webhook_posts_url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
    \"social_network_prompts\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/companies"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "type": "consequatur",
    "name": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "country_iso_code": "consequatur",
    "language_iso_code": "consequatur",
    "language": "consequatur",
    "language_types": "consequatur",
    "interests": "consequatur",
    "audience_types": "consequatur",
    "audience_ages": "consequatur",
    "audience_genders": "consequatur",
    "website": "consequatur",
    "palettes": "consequatur",
    "tones": "consequatur",
    "emotions": "consequatur",
    "syntaxes": "consequatur",
    "characters": "consequatur",
    "fonts": "consequatur",
    "vista_template_ids": "consequatur",
    "ai_image_styles": "consequatur",
    "ai_preferences": "consequatur",
    "ai_keys": "consequatur",
    "webhook_posts_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "social_network_prompts": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'type' => 'consequatur',
            'name' => 'consequatur',
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
            'country_iso_code' => 'consequatur',
            'language_iso_code' => 'consequatur',
            'language' => 'consequatur',
            'language_types' => 'consequatur',
            'interests' => 'consequatur',
            'audience_types' => 'consequatur',
            'audience_ages' => 'consequatur',
            'audience_genders' => 'consequatur',
            'website' => 'consequatur',
            'palettes' => 'consequatur',
            'tones' => 'consequatur',
            'emotions' => 'consequatur',
            'syntaxes' => 'consequatur',
            'characters' => 'consequatur',
            'fonts' => 'consequatur',
            'vista_template_ids' => 'consequatur',
            'ai_image_styles' => 'consequatur',
            'ai_preferences' => 'consequatur',
            'ai_keys' => 'consequatur',
            'webhook_posts_url' => 'http://kunze.biz/iste-laborum-eius-est-dolor.html',
            'social_network_prompts' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies'
payload = {
    "type": "consequatur",
    "name": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "country_iso_code": "consequatur",
    "language_iso_code": "consequatur",
    "language": "consequatur",
    "language_types": "consequatur",
    "interests": "consequatur",
    "audience_types": "consequatur",
    "audience_ages": "consequatur",
    "audience_genders": "consequatur",
    "website": "consequatur",
    "palettes": "consequatur",
    "tones": "consequatur",
    "emotions": "consequatur",
    "syntaxes": "consequatur",
    "characters": "consequatur",
    "fonts": "consequatur",
    "vista_template_ids": "consequatur",
    "ai_image_styles": "consequatur",
    "ai_preferences": "consequatur",
    "ai_keys": "consequatur",
    "webhook_posts_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "social_network_prompts": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 123,
        "user_id": 274,
        "type": "individual",
        "name": "Reynolds Inc",
        "description": "Quo sed fugit facilis perferendis dolores molestias ipsam sit.",
        "country_iso_code": "SI",
        "language_iso_code": "en",
        "language": "sr",
        "language_types": null,
        "interests": null,
        "tones": null,
        "emotions": null,
        "syntaxes": null,
        "characters": null,
        "fonts": null,
        "audience_types": null,
        "audience_ages": null,
        "audience_genders": null,
        "website": null,
        "palettes": null,
        "social_network_prompts": null,
        "ai_image_styles": null,
        "ai_preferences": null,
        "ai_keys": null,
        "webhook_secret": null,
        "webhook_posts_url": null,
        "created_at": "2025-09-18T23:53:42.000000Z",
        "updated_at": "2025-09-18T23:53:42.000000Z",
        "disabled_at": null,
        "user": {
            "id": 274,
            "name": "Damien Murazik",
            "email": "macejkovic.kacie@example.org",
            "referral_code": "CYMJR2",
            "language": null,
            "timezone": null,
            "notification_settings": null,
            "credits": 0,
            "pm_type": null,
            "pm_last_four": null,
            "cancel_reason": null,
            "referrer_url": null,
            "land_url": null,
            "has_password": true,
            "created_at": "2025-09-18T23:53:42.000000Z",
            "updated_at": "2025-09-18T23:53:42.000000Z",
            "banned_at": null,
            "password_changed_at": "2025-09-18T23:53:42.000000Z"
        }
    }
}
 

Request      

POST api/companies

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

type   The  optional  

type of the company (company, individual) Example: consequatur

name   The  optional  

name of the company Example: consequatur

description   The  optional  

description of the company Example: Dolores dolorum amet iste laborum eius est dolor.

country_iso_code   The  optional  

country iso code of the company Example: consequatur

language_iso_code   The  optional  

language iso code of the company Example: consequatur

language   The  optional  

language of the company Example: consequatur

language_types   The  optional  

language types of the company Example: consequatur

interests   The  optional  

interests of the company Example: consequatur

audience_types   The  optional  

audience types of the company Example: consequatur

audience_ages   The  optional  

audience ages of the company Example: consequatur

audience_genders   The  optional  

audience genders of the company Example: consequatur

website   The  optional  

website of the company Example: consequatur

palettes   The  optional  

palettes of the company Example: consequatur

tones   The  optional  

tones of the company Example: consequatur

emotions   The  optional  

emotions of the company Example: consequatur

syntaxes   The  optional  

syntaxes of the company Example: consequatur

characters   The  optional  

characters of the company Example: consequatur

fonts   The  optional  

fonts of the company Example: consequatur

vista_template_ids   The  optional  

vista template ids of the company Example: consequatur

ai_image_styles   The  optional  

ai image styles of the company Example: consequatur

ai_preferences   The  optional  

ai preferences of the company Example: consequatur

text_driver   string  optional  

Example: consequatur

text_model   string  optional  

Example: consequatur

image_driver   string  optional  

Example: consequatur

image_model   string  optional  

Example: consequatur

image_aspect_ratio   string  optional  

Example: consequatur

video_driver   string  optional  

Example: consequatur

video_model   string  optional  

Example: consequatur

video_aspect_ratio   string  optional  

Example: consequatur

ai_keys   The  optional  

ai keys of the company Example: consequatur

driver   string  optional  
active   boolean  optional  

Example: false

value   string  optional  

Example: consequatur

webhook_posts_url   The  optional  

webhook posts url of the company Example: http://kunze.biz/iste-laborum-eius-est-dolor.html

social_network_prompts   The  optional  

social network prompts of the company Example: consequatur

type   string  optional  
default   boolean  optional  

Example: true

prompt   string  optional  

Example: consequatur

PUT api/companies/{id}

requires authentication

Update the company

Example request:
curl --request PUT \
    "https://app.followr.ai/api/companies/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"type\": \"consequatur\",
    \"name\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"country_iso_code\": \"consequatur\",
    \"language_iso_code\": \"consequatur\",
    \"language\": \"consequatur\",
    \"language_types\": \"consequatur\",
    \"interests\": \"consequatur\",
    \"audience_types\": \"consequatur\",
    \"audience_ages\": \"consequatur\",
    \"audience_genders\": \"consequatur\",
    \"website\": \"consequatur\",
    \"palettes\": \"consequatur\",
    \"tones\": \"consequatur\",
    \"emotions\": \"consequatur\",
    \"syntaxes\": \"consequatur\",
    \"characters\": \"consequatur\",
    \"fonts\": \"consequatur\",
    \"vista_template_ids\": \"consequatur\",
    \"social_network_prompts\": \"consequatur\",
    \"ai_image_styles\": \"consequatur\",
    \"ai_preferences\": \"consequatur\",
    \"ai_keys\": \"consequatur\",
    \"webhook_posts_url\": \"http:\\/\\/kunze.biz\\/iste-laborum-eius-est-dolor.html\",
    \"disable\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/companies/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "type": "consequatur",
    "name": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "country_iso_code": "consequatur",
    "language_iso_code": "consequatur",
    "language": "consequatur",
    "language_types": "consequatur",
    "interests": "consequatur",
    "audience_types": "consequatur",
    "audience_ages": "consequatur",
    "audience_genders": "consequatur",
    "website": "consequatur",
    "palettes": "consequatur",
    "tones": "consequatur",
    "emotions": "consequatur",
    "syntaxes": "consequatur",
    "characters": "consequatur",
    "fonts": "consequatur",
    "vista_template_ids": "consequatur",
    "social_network_prompts": "consequatur",
    "ai_image_styles": "consequatur",
    "ai_preferences": "consequatur",
    "ai_keys": "consequatur",
    "webhook_posts_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "disable": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'type' => 'consequatur',
            'name' => 'consequatur',
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
            'country_iso_code' => 'consequatur',
            'language_iso_code' => 'consequatur',
            'language' => 'consequatur',
            'language_types' => 'consequatur',
            'interests' => 'consequatur',
            'audience_types' => 'consequatur',
            'audience_ages' => 'consequatur',
            'audience_genders' => 'consequatur',
            'website' => 'consequatur',
            'palettes' => 'consequatur',
            'tones' => 'consequatur',
            'emotions' => 'consequatur',
            'syntaxes' => 'consequatur',
            'characters' => 'consequatur',
            'fonts' => 'consequatur',
            'vista_template_ids' => 'consequatur',
            'social_network_prompts' => 'consequatur',
            'ai_image_styles' => 'consequatur',
            'ai_preferences' => 'consequatur',
            'ai_keys' => 'consequatur',
            'webhook_posts_url' => 'http://kunze.biz/iste-laborum-eius-est-dolor.html',
            'disable' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies/consequatur'
payload = {
    "type": "consequatur",
    "name": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "country_iso_code": "consequatur",
    "language_iso_code": "consequatur",
    "language": "consequatur",
    "language_types": "consequatur",
    "interests": "consequatur",
    "audience_types": "consequatur",
    "audience_ages": "consequatur",
    "audience_genders": "consequatur",
    "website": "consequatur",
    "palettes": "consequatur",
    "tones": "consequatur",
    "emotions": "consequatur",
    "syntaxes": "consequatur",
    "characters": "consequatur",
    "fonts": "consequatur",
    "vista_template_ids": "consequatur",
    "social_network_prompts": "consequatur",
    "ai_image_styles": "consequatur",
    "ai_preferences": "consequatur",
    "ai_keys": "consequatur",
    "webhook_posts_url": "http:\/\/kunze.biz\/iste-laborum-eius-est-dolor.html",
    "disable": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 124,
        "user_id": 275,
        "type": "company",
        "name": "Mueller-Dibbert",
        "description": "Dolores minus voluptatem quisquam quibusdam sed vel a.",
        "country_iso_code": "MU",
        "language_iso_code": "es",
        "language": "sg",
        "language_types": null,
        "interests": null,
        "tones": null,
        "emotions": null,
        "syntaxes": null,
        "characters": null,
        "fonts": null,
        "audience_types": null,
        "audience_ages": null,
        "audience_genders": null,
        "website": null,
        "palettes": null,
        "social_network_prompts": null,
        "ai_image_styles": null,
        "ai_preferences": null,
        "ai_keys": null,
        "webhook_secret": null,
        "webhook_posts_url": null,
        "created_at": "2025-09-18T23:53:42.000000Z",
        "updated_at": "2025-09-18T23:53:42.000000Z",
        "disabled_at": null,
        "user": {
            "id": 275,
            "name": "Mrs. Audra Nolan",
            "email": "lennie.boyle@example.org",
            "referral_code": "6BYPFV",
            "language": null,
            "timezone": null,
            "notification_settings": null,
            "credits": 0,
            "pm_type": null,
            "pm_last_four": null,
            "cancel_reason": null,
            "referrer_url": null,
            "land_url": null,
            "has_password": true,
            "created_at": "2025-09-18T23:53:42.000000Z",
            "updated_at": "2025-09-18T23:53:42.000000Z",
            "banned_at": null,
            "password_changed_at": "2025-09-18T23:53:42.000000Z"
        }
    }
}
 

Request      

PUT api/companies/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the company Example: consequatur

Body Parameters

type   The  optional  

type of the company (company, individual) Example: consequatur

name   The  optional  

name of the company Example: consequatur

description   The  optional  

description of the company Example: Dolores dolorum amet iste laborum eius est dolor.

country_iso_code   The  optional  

country iso code of the company Example: consequatur

language_iso_code   The  optional  

language iso code of the company Example: consequatur

language   The  optional  

language of the company Example: consequatur

language_types   The  optional  

language types of the company Example: consequatur

interests   The  optional  

interests of the company Example: consequatur

audience_types   The  optional  

audience types of the company Example: consequatur

audience_ages   The  optional  

audience ages of the company Example: consequatur

audience_genders   The  optional  

audience genders of the company Example: consequatur

website   The  optional  

website of the company Example: consequatur

palettes   The  optional  

palettes of the company Example: consequatur

tones   The  optional  

tones of the company Example: consequatur

emotions   The  optional  

emotions of the company Example: consequatur

syntaxes   The  optional  

syntaxes of the company Example: consequatur

characters   The  optional  

characters of the company Example: consequatur

fonts   The  optional  

fonts of the company Example: consequatur

vista_template_ids   The  optional  

vista template ids of the company Example: consequatur

social_network_prompts   The  optional  

social network prompts of the company Example: consequatur

type   string  optional  
default   boolean  optional  

Example: true

prompt   string  optional  

Example: consequatur

ai_image_styles   The  optional  

ai image styles of the company Example: consequatur

ai_preferences   The  optional  

ai preferences of the company Example: consequatur

text_driver   string  optional  

Example: consequatur

text_model   string  optional  

Example: consequatur

image_driver   string  optional  

Example: consequatur

image_model   string  optional  

Example: consequatur

image_aspect_ratio   string  optional  

Example: consequatur

video_driver   string  optional  

Example: consequatur

video_model   string  optional  

Example: consequatur

video_aspect_ratio   string  optional  

Example: consequatur

ai_keys   The  optional  

ai keys of the company Example: consequatur

driver   string  optional  
active   boolean  optional  

Example: false

value   string  optional  

Example: consequatur

webhook_posts_url   The  optional  

webhook posts url of the company Example: http://kunze.biz/iste-laborum-eius-est-dolor.html

disable   If  optional  

the company is disabled Example: consequatur

DELETE api/companies/{id}

requires authentication

Delete the company

Example request:
curl --request DELETE \
    "https://app.followr.ai/api/companies/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/companies/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies/consequatur'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

Empty response
 

Request      

DELETE api/companies/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the Company Example: consequatur

Post

Actions related to Post model.

Post Resource

Attributes

Relations

GET api/posts

requires authentication

Return the list of posts

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/posts?filter%5Btitle%5D=consequatur&filter%5Bdescription%5D=consequatur&filter%5Buser_id%5D=consequatur&filter%5Bsocial_network_type%5D=consequatur&filter%5Bexternal_id%5D=consequatur&filter%5Blink%5D=consequatur&filter%5Bstatus%5D=consequatur&include=user.image.thumbnail&sort=id%2C+-id%2C+title%2C+-title%2C+status%2C+-status%2C+created_at%2C+-created_at%2C+published_at%2C+-published_at&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/posts"
);

const params = {
    "filter[title]": "consequatur",
    "filter[description]": "consequatur",
    "filter[user_id]": "consequatur",
    "filter[social_network_type]": "consequatur",
    "filter[external_id]": "consequatur",
    "filter[link]": "consequatur",
    "filter[status]": "consequatur",
    "include": "user.image.thumbnail",
    "sort": "id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at",
    "page[number]": "1",
    "page[size]": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/posts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter[title]' => 'consequatur',
            'filter[description]' => 'consequatur',
            'filter[user_id]' => 'consequatur',
            'filter[social_network_type]' => 'consequatur',
            'filter[external_id]' => 'consequatur',
            'filter[link]' => 'consequatur',
            'filter[status]' => 'consequatur',
            'include' => 'user.image.thumbnail',
            'sort' => 'id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at',
            'page[number]' => '1',
            'page[size]' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/posts'
params = {
  'filter[title]': 'consequatur',
  'filter[description]': 'consequatur',
  'filter[user_id]': 'consequatur',
  'filter[social_network_type]': 'consequatur',
  'filter[external_id]': 'consequatur',
  'filter[link]': 'consequatur',
  'filter[status]': 'consequatur',
  'include': 'user.image.thumbnail',
  'sort': 'id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at',
  'page[number]': '1',
  'page[size]': '10',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": [
        {
            "id": 4,
            "social_network_type": "linkedin",
            "title": "Amet iste laborum eius est dolor dolores.",
            "description": "Voluptatem quisquam quibusdam sed vel a quo sed.",
            "status": "pending",
            "status_message": null,
            "external_id": "e1062c55-7a55-3291-9268-21343a4e4d6a",
            "link": "https://www.lakin.com/veniam-sed-fuga-aspernatur-natus-earum",
            "preferences": null,
            "comments_to_create": null,
            "created_at": "2025-09-18T23:53:44.000000Z",
            "updated_at": "2025-09-18T23:53:44.000000Z",
            "published_at": "1998-01-11T17:45:56.000000Z",
            "group": {
                "id": 44,
                "title": "Id totam temporibus quia ipsam ut.",
                "topic": null,
                "draft": true,
                "auto_publish": true,
                "created_at": "2025-09-18T23:53:44.000000Z",
                "updated_at": "2025-09-18T23:53:44.000000Z",
                "publish_at": "2018-06-04T17:43:31.000000Z"
            }
        },
        {
            "id": 5,
            "social_network_type": "instagram",
            "title": "Quos ea rerum repudiandae est.",
            "description": "Et voluptas consequatur delectus autem.",
            "status": "published",
            "status_message": null,
            "external_id": "873e5f5f-9cbf-3925-b8f6-bd692f274a17",
            "link": "http://www.bernhard.com/a-debitis-autem-eveniet-quis-labore-vel",
            "preferences": null,
            "comments_to_create": null,
            "created_at": "2025-09-18T23:53:44.000000Z",
            "updated_at": "2025-09-18T23:53:44.000000Z",
            "published_at": "1990-12-01T11:43:53.000000Z",
            "group": {
                "id": 45,
                "title": "Voluptatibus nihil aut nisi officiis rerum id tempore.",
                "topic": null,
                "draft": true,
                "auto_publish": true,
                "created_at": "2025-09-18T23:53:44.000000Z",
                "updated_at": "2025-09-18T23:53:44.000000Z",
                "publish_at": "1996-04-11T17:16:58.000000Z"
            }
        }
    ]
}
 

Request      

GET api/posts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

filter[title]   string  optional  

filter by title Example: consequatur

filter[description]   string  optional  

filter by description Example: consequatur

filter[group.company_id]   string  optional  

filter by company id Example: consequatur

filter[user_id]   string  optional  

filter by user id Example: consequatur

filter[social_network_type]   string  optional  

filter by social network type Example: consequatur

filter[external_id]   string  optional  

filter by external id Example: consequatur

filter[link]   string  optional  

filter by link Example: consequatur

filter[status]   string  optional  

filter by status Example: consequatur

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: user.image.thumbnail

sort   string  optional  

sort by field. Example: id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at

page[number]   integer  optional  

page number. Example: 1

page[size]   integer  optional  

items per page (default 30). Example: 10

GET api/postGroups/{postGroupId}/posts

requires authentication

Return the list of posts by post group

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/postGroups/1/posts?filter%5Btitle%5D=consequatur&filter%5Bdescription%5D=consequatur&filter%5Buser_id%5D=consequatur&filter%5Bsocial_network_type%5D=consequatur&filter%5Bexternal_id%5D=consequatur&filter%5Blink%5D=consequatur&filter%5Bstatus%5D=consequatur&include=user.image.thumbnail&sort=id%2C+-id%2C+title%2C+-title%2C+status%2C+-status%2C+created_at%2C+-created_at%2C+published_at%2C+-published_at&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/postGroups/1/posts"
);

const params = {
    "filter[title]": "consequatur",
    "filter[description]": "consequatur",
    "filter[user_id]": "consequatur",
    "filter[social_network_type]": "consequatur",
    "filter[external_id]": "consequatur",
    "filter[link]": "consequatur",
    "filter[status]": "consequatur",
    "include": "user.image.thumbnail",
    "sort": "id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at",
    "page[number]": "1",
    "page[size]": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/postGroups/1/posts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter[title]' => 'consequatur',
            'filter[description]' => 'consequatur',
            'filter[user_id]' => 'consequatur',
            'filter[social_network_type]' => 'consequatur',
            'filter[external_id]' => 'consequatur',
            'filter[link]' => 'consequatur',
            'filter[status]' => 'consequatur',
            'include' => 'user.image.thumbnail',
            'sort' => 'id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at',
            'page[number]' => '1',
            'page[size]' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/postGroups/1/posts'
params = {
  'filter[title]': 'consequatur',
  'filter[description]': 'consequatur',
  'filter[user_id]': 'consequatur',
  'filter[social_network_type]': 'consequatur',
  'filter[external_id]': 'consequatur',
  'filter[link]': 'consequatur',
  'filter[status]': 'consequatur',
  'include': 'user.image.thumbnail',
  'sort': 'id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at',
  'page[number]': '1',
  'page[size]': '10',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": [
        {
            "id": 6,
            "social_network_type": "linkedin",
            "title": "Amet iste laborum eius est dolor dolores.",
            "description": "Voluptatem quisquam quibusdam sed vel a quo sed.",
            "status": "pending",
            "status_message": null,
            "external_id": "e1062c55-7a55-3291-9268-21343a4e4d6a",
            "link": "https://www.lakin.com/veniam-sed-fuga-aspernatur-natus-earum",
            "preferences": null,
            "comments_to_create": null,
            "created_at": "2025-09-18T23:53:44.000000Z",
            "updated_at": "2025-09-18T23:53:44.000000Z",
            "published_at": "1998-01-11T17:45:56.000000Z",
            "group": {
                "id": 46,
                "title": "Ut iusto iusto accusamus iusto similique.",
                "topic": null,
                "draft": true,
                "auto_publish": false,
                "created_at": "2025-09-18T23:53:44.000000Z",
                "updated_at": "2025-09-18T23:53:44.000000Z",
                "publish_at": "2023-04-25T11:43:19.000000Z"
            }
        },
        {
            "id": 7,
            "social_network_type": "youtube",
            "title": "Est nostrum et voluptas consequatur delectus autem nam sunt.",
            "description": "Quia et perferendis fuga a debitis autem.",
            "status": "error",
            "status_message": null,
            "external_id": "3ae81d83-3bd0-388d-915d-80f03de156d5",
            "link": "http://www.hintz.com/quibusdam-et-eum-repellendus-illo-dolorum-omnis-repellendus-voluptatibus",
            "preferences": null,
            "comments_to_create": null,
            "created_at": "2025-09-18T23:53:44.000000Z",
            "updated_at": "2025-09-18T23:53:44.000000Z",
            "published_at": "2009-03-26T13:22:36.000000Z",
            "group": {
                "id": 47,
                "title": "Odit aut voluptas quasi ut.",
                "topic": null,
                "draft": false,
                "auto_publish": false,
                "created_at": "2025-09-18T23:53:44.000000Z",
                "updated_at": "2025-09-18T23:53:44.000000Z",
                "publish_at": "2024-08-04T17:33:24.000000Z"
            }
        }
    ]
}
 

Request      

GET api/postGroups/{post_group_id}/posts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

post_group_id   integer   

The ID of the post group. Example: 1

postGroupId   string  optional  

The ID of the post group Example: consequatur

Query Parameters

filter[title]   string  optional  

filter by title Example: consequatur

filter[description]   string  optional  

filter by description Example: consequatur

filter[group.company_id]   string  optional  

filter by company id Example: consequatur

filter[user_id]   string  optional  

filter by user id Example: consequatur

filter[social_network_type]   string  optional  

filter by social network type Example: consequatur

filter[external_id]   string  optional  

filter by external id Example: consequatur

filter[link]   string  optional  

filter by link Example: consequatur

filter[status]   string  optional  

filter by status Example: consequatur

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: user.image.thumbnail

sort   string  optional  

sort by field. Example: id, -id, title, -title, status, -status, created_at, -created_at, published_at, -published_at

page[number]   integer  optional  

page number. Example: 1

page[size]   integer  optional  

items per page (default 30). Example: 10

GET api/posts/{id}

requires authentication

Return the post

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/posts/consequatur?include=user.image.thumbnail" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/posts/consequatur"
);

const params = {
    "include": "user.image.thumbnail",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/posts/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'user.image.thumbnail',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/posts/consequatur'
params = {
  'include': 'user.image.thumbnail',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": {
        "id": 8,
        "social_network_type": "linkedin",
        "title": "Ipsam sit veniam sed fuga aspernatur natus.",
        "description": "Quas dignissimos perferendis voluptatibus incidunt nostrum quia possimus rerum.",
        "status": "published",
        "status_message": null,
        "external_id": "82bcef28-e633-3da0-8d78-f8d6e14eee9e",
        "link": "http://www.adams.com/",
        "preferences": null,
        "comments_to_create": null,
        "created_at": "2025-09-18T23:53:44.000000Z",
        "updated_at": "2025-09-18T23:53:44.000000Z",
        "published_at": "2018-11-13T05:22:36.000000Z",
        "group": {
            "id": 48,
            "title": "Ducimus nihil laudantium nihil autem.",
            "topic": null,
            "draft": false,
            "auto_publish": false,
            "created_at": "2025-09-18T23:53:44.000000Z",
            "updated_at": "2025-09-18T23:53:44.000000Z",
            "publish_at": "2021-07-13T01:15:03.000000Z"
        }
    }
}
 

Request      

GET api/posts/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the post Example: consequatur

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: user.image.thumbnail

POST api/postGroups/{postGroupId}/posts

requires authentication

Create a new post

Example request:
curl --request POST \
    "https://app.followr.ai/api/postGroups/1/posts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"social_network_type\": \"consequatur\",
    \"title\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"link\": \"consequatur\",
    \"assets_ids\": \"consequatur\",
    \"preferences\": {
        \"board_id\": \"consequatur\",
        \"notify_followers\": \"consequatur\",
        \"media_product_type\": \"consequatur\",
        \"disable_duet\": \"consequatur\",
        \"disable_comment\": \"consequatur\",
        \"disable_stitch\": \"consequatur\",
        \"brand_content_toggle\": \"consequatur\",
        \"brand_organic_toggle\": \"consequatur\",
        \"privacy_level\": \"consequatur\",
        \"video_cover_timestamp_ms\": \"consequatur\",
        \"category_id\": \"consequatur\",
        \"playlist_id\": \"consequatur\",
        \"tags\": \"consequatur\"
    },
    \"comments_to_create\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/postGroups/1/posts"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "social_network_type": "consequatur",
    "title": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "link": "consequatur",
    "assets_ids": "consequatur",
    "preferences": {
        "board_id": "consequatur",
        "notify_followers": "consequatur",
        "media_product_type": "consequatur",
        "disable_duet": "consequatur",
        "disable_comment": "consequatur",
        "disable_stitch": "consequatur",
        "brand_content_toggle": "consequatur",
        "brand_organic_toggle": "consequatur",
        "privacy_level": "consequatur",
        "video_cover_timestamp_ms": "consequatur",
        "category_id": "consequatur",
        "playlist_id": "consequatur",
        "tags": "consequatur"
    },
    "comments_to_create": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/postGroups/1/posts';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'social_network_type' => 'consequatur',
            'title' => 'consequatur',
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
            'link' => 'consequatur',
            'assets_ids' => 'consequatur',
            'preferences' => [
                'board_id' => 'consequatur',
                'notify_followers' => 'consequatur',
                'media_product_type' => 'consequatur',
                'disable_duet' => 'consequatur',
                'disable_comment' => 'consequatur',
                'disable_stitch' => 'consequatur',
                'brand_content_toggle' => 'consequatur',
                'brand_organic_toggle' => 'consequatur',
                'privacy_level' => 'consequatur',
                'video_cover_timestamp_ms' => 'consequatur',
                'category_id' => 'consequatur',
                'playlist_id' => 'consequatur',
                'tags' => 'consequatur',
            ],
            'comments_to_create' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/postGroups/1/posts'
payload = {
    "social_network_type": "consequatur",
    "title": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "link": "consequatur",
    "assets_ids": "consequatur",
    "preferences": {
        "board_id": "consequatur",
        "notify_followers": "consequatur",
        "media_product_type": "consequatur",
        "disable_duet": "consequatur",
        "disable_comment": "consequatur",
        "disable_stitch": "consequatur",
        "brand_content_toggle": "consequatur",
        "brand_organic_toggle": "consequatur",
        "privacy_level": "consequatur",
        "video_cover_timestamp_ms": "consequatur",
        "category_id": "consequatur",
        "playlist_id": "consequatur",
        "tags": "consequatur"
    },
    "comments_to_create": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 9,
        "social_network_type": "linkedin",
        "title": "Amet iste laborum eius est dolor dolores.",
        "description": "Voluptatem quisquam quibusdam sed vel a quo sed.",
        "status": "pending",
        "status_message": null,
        "external_id": "e1062c55-7a55-3291-9268-21343a4e4d6a",
        "link": "https://www.lakin.com/veniam-sed-fuga-aspernatur-natus-earum",
        "preferences": null,
        "comments_to_create": null,
        "created_at": "2025-09-18T23:53:44.000000Z",
        "updated_at": "2025-09-18T23:53:44.000000Z",
        "published_at": "1998-01-11T17:45:56.000000Z",
        "group": {
            "id": 49,
            "title": "Ex dicta hic inventore asperiores illum est.",
            "topic": null,
            "draft": true,
            "auto_publish": false,
            "created_at": "2025-09-18T23:53:44.000000Z",
            "updated_at": "2025-09-18T23:53:44.000000Z",
            "publish_at": "1987-12-02T03:46:14.000000Z"
        }
    }
}
 

Request      

POST api/postGroups/{post_group_id}/posts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

post_group_id   integer   

The ID of the post group. Example: 1

postGroupId   string  optional  

The ID of the post group Example: consequatur

Body Parameters

social_network_type   required  optional  

The social network type of the post (facebook twitter, instagram, threads, linkedin, tiktok, discord, medium, pinterest, youtube, canva) Example: consequatur

title   required  optional  

The title of the post Example: consequatur

description   The  optional  

description of the post Example: Dolores dolorum amet iste laborum eius est dolor.

link   The  optional  

link of the post Example: consequatur

assets_ids   The  optional  

assets ids of the post Example: consequatur

preferences   object  optional  
board_id   The  optional  

board id of the post Example: consequatur

notify_followers   The  optional  

notify followers of the post Example: consequatur

media_product_type   The  optional  

media product type of the post Example: consequatur

disable_duet   The  optional  

disable duet of the post Example: consequatur

disable_comment   The  optional  

disable comment of the post Example: consequatur

disable_stitch   The  optional  

disable stitch of the post Example: consequatur

brand_content_toggle   The  optional  

brand content toggle of the post Example: consequatur

brand_organic_toggle   The  optional  

brand organic toggle of the post Example: consequatur

privacy_level   The  optional  

privacy level of the post Example: consequatur

video_cover_timestamp_ms   The  optional  

video cover timestamp ms of the post Example: consequatur

category_id   The  optional  

category id of the post Example: consequatur

playlist_id   The  optional  

playlist id of the post Example: consequatur

tags   The  optional  

tags of the post Example: consequatur

comments_to_create   The  optional  

comments to create of the post Example: consequatur

POST api/posts/{id}

requires authentication

Update the post

Example request:
curl --request PUT \
    "https://app.followr.ai/api/posts/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"consequatur\",
    \"description\": \"Dolores dolorum amet iste laborum eius est dolor.\",
    \"link\": \"consequatur\",
    \"assets_ids\": \"consequatur\",
    \"preferences\": {
        \"board_id\": \"consequatur\",
        \"notify_followers\": \"consequatur\",
        \"media_product_type\": \"consequatur\",
        \"disable_duet\": \"consequatur\",
        \"disable_comment\": \"consequatur\",
        \"disable_stitch\": \"consequatur\",
        \"brand_content_toggle\": \"consequatur\",
        \"brand_organic_toggle\": \"consequatur\",
        \"privacy_level\": \"consequatur\",
        \"video_cover_timestamp_ms\": \"consequatur\",
        \"category_id\": \"consequatur\",
        \"playlist_id\": \"consequatur\",
        \"tags\": \"consequatur\"
    },
    \"comments_to_create\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/posts/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "link": "consequatur",
    "assets_ids": "consequatur",
    "preferences": {
        "board_id": "consequatur",
        "notify_followers": "consequatur",
        "media_product_type": "consequatur",
        "disable_duet": "consequatur",
        "disable_comment": "consequatur",
        "disable_stitch": "consequatur",
        "brand_content_toggle": "consequatur",
        "brand_organic_toggle": "consequatur",
        "privacy_level": "consequatur",
        "video_cover_timestamp_ms": "consequatur",
        "category_id": "consequatur",
        "playlist_id": "consequatur",
        "tags": "consequatur"
    },
    "comments_to_create": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/posts/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'consequatur',
            'description' => 'Dolores dolorum amet iste laborum eius est dolor.',
            'link' => 'consequatur',
            'assets_ids' => 'consequatur',
            'preferences' => [
                'board_id' => 'consequatur',
                'notify_followers' => 'consequatur',
                'media_product_type' => 'consequatur',
                'disable_duet' => 'consequatur',
                'disable_comment' => 'consequatur',
                'disable_stitch' => 'consequatur',
                'brand_content_toggle' => 'consequatur',
                'brand_organic_toggle' => 'consequatur',
                'privacy_level' => 'consequatur',
                'video_cover_timestamp_ms' => 'consequatur',
                'category_id' => 'consequatur',
                'playlist_id' => 'consequatur',
                'tags' => 'consequatur',
            ],
            'comments_to_create' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/posts/consequatur'
payload = {
    "title": "consequatur",
    "description": "Dolores dolorum amet iste laborum eius est dolor.",
    "link": "consequatur",
    "assets_ids": "consequatur",
    "preferences": {
        "board_id": "consequatur",
        "notify_followers": "consequatur",
        "media_product_type": "consequatur",
        "disable_duet": "consequatur",
        "disable_comment": "consequatur",
        "disable_stitch": "consequatur",
        "brand_content_toggle": "consequatur",
        "brand_organic_toggle": "consequatur",
        "privacy_level": "consequatur",
        "video_cover_timestamp_ms": "consequatur",
        "category_id": "consequatur",
        "playlist_id": "consequatur",
        "tags": "consequatur"
    },
    "comments_to_create": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 10,
        "social_network_type": "linkedin",
        "title": "Amet iste laborum eius est dolor dolores.",
        "description": "Voluptatem quisquam quibusdam sed vel a quo sed.",
        "status": "pending",
        "status_message": null,
        "external_id": "e1062c55-7a55-3291-9268-21343a4e4d6a",
        "link": "https://www.lakin.com/veniam-sed-fuga-aspernatur-natus-earum",
        "preferences": null,
        "comments_to_create": null,
        "created_at": "2025-09-18T23:53:45.000000Z",
        "updated_at": "2025-09-18T23:53:45.000000Z",
        "published_at": "1998-01-11T17:45:56.000000Z",
        "group": {
            "id": 50,
            "title": "Illum est quae non quia dicta in aut provident.",
            "topic": null,
            "draft": true,
            "auto_publish": false,
            "created_at": "2025-09-18T23:53:45.000000Z",
            "updated_at": "2025-09-18T23:53:45.000000Z",
            "publish_at": "1984-08-19T10:33:23.000000Z"
        }
    }
}
 

Request      

PUT api/posts/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the post Example: consequatur

Body Parameters

title   required  optional  

The title of the post Example: consequatur

status   string  optional  
description   The  optional  

description of the post Example: Dolores dolorum amet iste laborum eius est dolor.

link   The  optional  

link of the post Example: consequatur

assets_ids   The  optional  

assets ids of the post Example: consequatur

preferences   object  optional  
board_id   The  optional  

board id of the post Example: consequatur

notify_followers   The  optional  

notify followers of the post Example: consequatur

media_product_type   The  optional  

media product type of the post Example: consequatur

disable_duet   The  optional  

disable duet of the post Example: consequatur

disable_comment   The  optional  

disable comment of the post Example: consequatur

disable_stitch   The  optional  

disable stitch of the post Example: consequatur

brand_content_toggle   The  optional  

brand content toggle of the post Example: consequatur

brand_organic_toggle   The  optional  

brand organic toggle of the post Example: consequatur

privacy_level   The  optional  

privacy level of the post Example: consequatur

video_cover_timestamp_ms   The  optional  

video cover timestamp ms of the post Example: consequatur

category_id   The  optional  

category id of the post Example: consequatur

playlist_id   The  optional  

playlist id of the post Example: consequatur

tags   The  optional  

tags of the post Example: consequatur

comments_to_create   The  optional  

comments to create of the post Example: consequatur

DELETE api/posts/{id}

requires authentication

Delete the post

Example request:
curl --request DELETE \
    "https://app.followr.ai/api/posts/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/posts/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/posts/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/posts/consequatur'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

Empty response
 

Request      

DELETE api/posts/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the post Example: consequatur

PostGroup

Actions related to PostGroup model.

PostGroup Resource

Attributes

Relations

GET api/postGroups

requires authentication

Return the list of post groups

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/postGroups?filter%5Bdraft%5D=consequatur&filter%5Bauto_publish%5D=consequatur&filter%5Buser_id%5D=consequatur&filter%5Bcompany_id%5D=consequatur&filter%5Btitle%5D=consequatur&filter%5Bdescription%5D=consequatur&include=user.image.thumbnail&sort=id%2C+-id%2C+title%2C+-title%2C+created_at%2C+-created_at%2C+publish_at%2C+-publish_at&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/postGroups"
);

const params = {
    "filter[draft]": "consequatur",
    "filter[auto_publish]": "consequatur",
    "filter[user_id]": "consequatur",
    "filter[company_id]": "consequatur",
    "filter[title]": "consequatur",
    "filter[description]": "consequatur",
    "include": "user.image.thumbnail",
    "sort": "id, -id, title, -title, created_at, -created_at, publish_at, -publish_at",
    "page[number]": "1",
    "page[size]": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/postGroups';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter[draft]' => 'consequatur',
            'filter[auto_publish]' => 'consequatur',
            'filter[user_id]' => 'consequatur',
            'filter[company_id]' => 'consequatur',
            'filter[title]' => 'consequatur',
            'filter[description]' => 'consequatur',
            'include' => 'user.image.thumbnail',
            'sort' => 'id, -id, title, -title, created_at, -created_at, publish_at, -publish_at',
            'page[number]' => '1',
            'page[size]' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/postGroups'
params = {
  'filter[draft]': 'consequatur',
  'filter[auto_publish]': 'consequatur',
  'filter[user_id]': 'consequatur',
  'filter[company_id]': 'consequatur',
  'filter[title]': 'consequatur',
  'filter[description]': 'consequatur',
  'include': 'user.image.thumbnail',
  'sort': 'id, -id, title, -title, created_at, -created_at, publish_at, -publish_at',
  'page[number]': '1',
  'page[size]': '10',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": [
        {
            "id": 37,
            "title": "Dolorum amet iste laborum eius est dolor.",
            "topic": null,
            "draft": true,
            "auto_publish": false,
            "created_at": "2025-09-18T23:53:43.000000Z",
            "updated_at": "2025-09-18T23:53:43.000000Z",
            "publish_at": "1978-05-24T11:04:41.000000Z"
        },
        {
            "id": 38,
            "title": "Rerum id et necessitatibus architecto aut consequatur debitis.",
            "topic": null,
            "draft": true,
            "auto_publish": false,
            "created_at": "2025-09-18T23:53:43.000000Z",
            "updated_at": "2025-09-18T23:53:43.000000Z",
            "publish_at": "1989-03-24T10:32:03.000000Z"
        }
    ]
}
 

Request      

GET api/postGroups

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

filter[draft]   string  optional  

filter by draft Example: consequatur

filter[auto_publish]   string  optional  

filter by auto publish Example: consequatur

filter[user_id]   string  optional  

filter by user id Example: consequatur

filter[company_id]   string  optional  

filter by company id Example: consequatur

filter[title]   string  optional  

filter by title Example: consequatur

filter[posts.social_network_type]   string  optional  

filter by social network type Example: consequatur

filter[description]   string  optional  

filter by description Example: consequatur

filter[tags.id]   string  optional  

filter by tag id Example: consequatur

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: user.image.thumbnail

sort   string  optional  

sort by field. Example: id, -id, title, -title, created_at, -created_at, publish_at, -publish_at

page[number]   integer  optional  

page number. Example: 1

page[size]   integer  optional  

items per page (default 30). Example: 10

GET api/companies/{companyId}/postGroups

requires authentication

Return the list of post groups by company

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/companies/1/postGroups?filter%5Bdraft%5D=consequatur&filter%5Bauto_publish%5D=consequatur&filter%5Buser_id%5D=consequatur&filter%5Bcompany_id%5D=consequatur&filter%5Btitle%5D=consequatur&filter%5Bdescription%5D=consequatur&include=user.image.thumbnail&sort=id%2C+-id%2C+title%2C+-title%2C+created_at%2C+-created_at%2C+publish_at%2C+-publish_at&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/companies/1/postGroups"
);

const params = {
    "filter[draft]": "consequatur",
    "filter[auto_publish]": "consequatur",
    "filter[user_id]": "consequatur",
    "filter[company_id]": "consequatur",
    "filter[title]": "consequatur",
    "filter[description]": "consequatur",
    "include": "user.image.thumbnail",
    "sort": "id, -id, title, -title, created_at, -created_at, publish_at, -publish_at",
    "page[number]": "1",
    "page[size]": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies/1/postGroups';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'filter[draft]' => 'consequatur',
            'filter[auto_publish]' => 'consequatur',
            'filter[user_id]' => 'consequatur',
            'filter[company_id]' => 'consequatur',
            'filter[title]' => 'consequatur',
            'filter[description]' => 'consequatur',
            'include' => 'user.image.thumbnail',
            'sort' => 'id, -id, title, -title, created_at, -created_at, publish_at, -publish_at',
            'page[number]' => '1',
            'page[size]' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies/1/postGroups'
params = {
  'filter[draft]': 'consequatur',
  'filter[auto_publish]': 'consequatur',
  'filter[user_id]': 'consequatur',
  'filter[company_id]': 'consequatur',
  'filter[title]': 'consequatur',
  'filter[description]': 'consequatur',
  'include': 'user.image.thumbnail',
  'sort': 'id, -id, title, -title, created_at, -created_at, publish_at, -publish_at',
  'page[number]': '1',
  'page[size]': '10',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": [
        {
            "id": 39,
            "title": "Dolorum amet iste laborum eius est dolor.",
            "topic": null,
            "draft": true,
            "auto_publish": false,
            "created_at": "2025-09-18T23:53:43.000000Z",
            "updated_at": "2025-09-18T23:53:43.000000Z",
            "publish_at": "1978-05-24T11:04:41.000000Z"
        },
        {
            "id": 40,
            "title": "Nisi qui id totam temporibus quia ipsam.",
            "topic": null,
            "draft": false,
            "auto_publish": true,
            "created_at": "2025-09-18T23:53:43.000000Z",
            "updated_at": "2025-09-18T23:53:43.000000Z",
            "publish_at": "1994-04-04T00:13:36.000000Z"
        }
    ]
}
 

Request      

GET api/companies/{company_id}/postGroups

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   integer   

The ID of the company. Example: 1

companyId   string  optional  

The ID of the company Example: consequatur

Query Parameters

filter[draft]   string  optional  

filter by draft Example: consequatur

filter[auto_publish]   string  optional  

filter by auto publish Example: consequatur

filter[user_id]   string  optional  

filter by user id Example: consequatur

filter[company_id]   string  optional  

filter by company id Example: consequatur

filter[title]   string  optional  

filter by title Example: consequatur

filter[posts.social_network_type]   string  optional  

filter by social network type Example: consequatur

filter[description]   string  optional  

filter by description Example: consequatur

filter[tags.id]   string  optional  

filter by tag id Example: consequatur

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: user.image.thumbnail

sort   string  optional  

sort by field. Example: id, -id, title, -title, created_at, -created_at, publish_at, -publish_at

page[number]   integer  optional  

page number. Example: 1

page[size]   integer  optional  

items per page (default 30). Example: 10

GET api/postGroups/{id}

requires authentication

Return the post group

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/postGroups/consequatur?include=user.image.thumbnail" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/postGroups/consequatur"
);

const params = {
    "include": "user.image.thumbnail",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/postGroups/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'user.image.thumbnail',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/postGroups/consequatur'
params = {
  'include': 'user.image.thumbnail',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": {
        "id": 41,
        "title": "Molestias ipsam sit veniam sed fuga aspernatur.",
        "topic": null,
        "draft": false,
        "auto_publish": false,
        "created_at": "2025-09-18T23:53:43.000000Z",
        "updated_at": "2025-09-18T23:53:43.000000Z",
        "publish_at": "1998-01-11T17:45:56.000000Z"
    }
}
 

Request      

GET api/postGroups/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the post group Example: consequatur

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: user.image.thumbnail

POST api/postGroups

requires authentication

Create a new post group

Example request:
curl --request POST \
    "https://app.followr.ai/api/companies/1/postGroups" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"consequatur\",
    \"draft\": \"consequatur\",
    \"auto_publish\": \"consequatur\",
    \"publish_at\": \"consequatur\",
    \"tags_ids\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/companies/1/postGroups"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "consequatur",
    "draft": "consequatur",
    "auto_publish": "consequatur",
    "publish_at": "consequatur",
    "tags_ids": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies/1/postGroups';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'consequatur',
            'draft' => 'consequatur',
            'auto_publish' => 'consequatur',
            'publish_at' => 'consequatur',
            'tags_ids' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies/1/postGroups'
payload = {
    "title": "consequatur",
    "draft": "consequatur",
    "auto_publish": "consequatur",
    "publish_at": "consequatur",
    "tags_ids": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 42,
        "title": "Dolorum amet iste laborum eius est dolor.",
        "topic": null,
        "draft": true,
        "auto_publish": false,
        "created_at": "2025-09-18T23:53:43.000000Z",
        "updated_at": "2025-09-18T23:53:43.000000Z",
        "publish_at": "1978-05-24T11:04:41.000000Z"
    }
}
 

Request      

POST api/companies/{company_id}/postGroups

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   integer   

The ID of the company. Example: 1

Body Parameters

title   required  optional  

The title of the post group Example: consequatur

draft   The  optional  

draft of the post group Example: consequatur

auto_publish   The  optional  

auto publish of the post group Example: consequatur

publish_at   The  optional  

publish at of the post group Example: consequatur

tags_ids   The  optional  

tags ids of the post group Example: consequatur

PUT api/postGroups/{id}

requires authentication

Update the post group

Example request:
curl --request PUT \
    "https://app.followr.ai/api/postGroups/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"consequatur\",
    \"draft\": \"consequatur\",
    \"auto_publish\": \"consequatur\",
    \"publish_at\": \"consequatur\",
    \"tags_ids\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/postGroups/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "consequatur",
    "draft": "consequatur",
    "auto_publish": "consequatur",
    "publish_at": "consequatur",
    "tags_ids": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/postGroups/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'consequatur',
            'draft' => 'consequatur',
            'auto_publish' => 'consequatur',
            'publish_at' => 'consequatur',
            'tags_ids' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/postGroups/1'
payload = {
    "title": "consequatur",
    "draft": "consequatur",
    "auto_publish": "consequatur",
    "publish_at": "consequatur",
    "tags_ids": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 43,
        "title": "Dolorum amet iste laborum eius est dolor.",
        "topic": null,
        "draft": true,
        "auto_publish": false,
        "created_at": "2025-09-18T23:53:43.000000Z",
        "updated_at": "2025-09-18T23:53:43.000000Z",
        "publish_at": "1978-05-24T11:04:41.000000Z"
    }
}
 

Request      

PUT api/postGroups/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the postGroup. Example: 1

Body Parameters

title   required  optional  

The title of the post group Example: consequatur

draft   The  optional  

draft of the post group Example: consequatur

auto_publish   The  optional  

auto publish of the post group Example: consequatur

publish_at   The  optional  

publish at of the post group Example: consequatur

tags_ids   The  optional  

tags ids of the post group Example: consequatur

DELETE api/postGroups/{id}

requires authentication

Delete the post group

Example request:
curl --request DELETE \
    "https://app.followr.ai/api/postGroups/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/postGroups/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/postGroups/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/postGroups/consequatur'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

Empty response
 

Request      

DELETE api/postGroups/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the post group Example: consequatur

POST api/postGroups/{id}/publish

requires authentication

Publish the posts that are in pending or error status for the given social network type in the post group

Example request:
curl --request POST \
    "https://app.followr.ai/api/postGroups/consequatur/publish?social_network_type=consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"social_network_type\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/postGroups/consequatur/publish"
);

const params = {
    "social_network_type": "consequatur",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "social_network_type": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/postGroups/consequatur/publish';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'social_network_type' => 'consequatur',
        ],
        'json' => [
            'social_network_type' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/postGroups/consequatur/publish'
payload = {
    "social_network_type": "consequatur"
}
params = {
  'social_network_type': 'consequatur',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload, params=params)
response.json()

Example response (204):

Empty response
 

Request      

POST api/postGroups/{id}/publish

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the post group Example: consequatur

Query Parameters

social_network_type   string  optional  

The social network type (facebook twitter, instagram, threads, linkedin, tiktok, discord, medium, pinterest, youtube, canva) Example: consequatur

Body Parameters

social_network_type   string   

Example: consequatur

Subscription Limit

Actions related to Subscription Limit model.

Subscription Limit Resource

Attributes

Relations

GET api/subscriptionLimits

requires authentication

Return the list of subscription limits

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/subscriptionLimits?include=company&filter%5Bcompany_id%5D=consequatur&filter%5Buser_id%5D=consequatur&sort=id%2C+-id%2C+created_at%2C+-created_at&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/subscriptionLimits"
);

const params = {
    "include": "company",
    "filter[company_id]": "consequatur",
    "filter[user_id]": "consequatur",
    "sort": "id, -id, created_at, -created_at",
    "page[number]": "1",
    "page[size]": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/subscriptionLimits';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'company',
            'filter[company_id]' => 'consequatur',
            'filter[user_id]' => 'consequatur',
            'sort' => 'id, -id, created_at, -created_at',
            'page[number]' => '1',
            'page[size]' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/subscriptionLimits'
params = {
  'include': 'company',
  'filter[company_id]': 'consequatur',
  'filter[user_id]': 'consequatur',
  'sort': 'id, -id, created_at, -created_at',
  'page[number]': '1',
  'page[size]': '10',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": [
        {
            "id": 48,
            "company_id": 139,
            "user_id": 313,
            "users_amount": 498,
            "words_amount": 62211,
            "images_amount": 1867,
            "premium_images_amount": 5571,
            "bytes_amount": 612111894,
            "created_at": "2025-09-18T23:53:45.000000Z",
            "updated_at": "2025-09-18T23:53:45.000000Z"
        },
        {
            "id": 49,
            "company_id": 140,
            "user_id": 315,
            "users_amount": 369,
            "words_amount": 87707,
            "images_amount": 643,
            "premium_images_amount": 6030,
            "bytes_amount": 345083069,
            "created_at": "2025-09-18T23:53:45.000000Z",
            "updated_at": "2025-09-18T23:53:45.000000Z"
        }
    ]
}
 

Request      

GET api/subscriptionLimits

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: company

filter[company_id]   string  optional  

filter by company id Example: consequatur

filter[user_id]   string  optional  

filter by user id, null allowed Example: consequatur

sort   string  optional  

sort by field. Example: id, -id, created_at, -created_at

page[number]   integer  optional  

page number. Example: 1

page[size]   integer  optional  

items per page (default 30). Example: 10

GET api/subscriptionLimits/{id}

requires authentication

Return the subscription limit

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/subscriptionLimits/consequatur?include=company" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/subscriptionLimits/consequatur"
);

const params = {
    "include": "company",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/subscriptionLimits/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'company',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/subscriptionLimits/consequatur'
params = {
  'include': 'company',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": {
        "id": 50,
        "company_id": 141,
        "user_id": 317,
        "users_amount": 496,
        "words_amount": 50866,
        "images_amount": 3140,
        "premium_images_amount": 3311,
        "bytes_amount": 284733364,
        "created_at": "2025-09-18T23:53:45.000000Z",
        "updated_at": "2025-09-18T23:53:45.000000Z"
    }
}
 

Request      

GET api/subscriptionLimits/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the subscription limit Example: consequatur

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: company

POST api/subscriptionLimits

requires authentication

Create a new subscription limit

Example request:
curl --request POST \
    "https://app.followr.ai/api/subscriptionLimits" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"company_id\": \"consequatur\",
    \"user_id\": \"consequatur\",
    \"users_amount\": \"consequatur\",
    \"words_amount\": \"consequatur\",
    \"images_amount\": \"consequatur\",
    \"premium_images_amount\": \"consequatur\",
    \"bytes_amount\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/subscriptionLimits"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "company_id": "consequatur",
    "user_id": "consequatur",
    "users_amount": "consequatur",
    "words_amount": "consequatur",
    "images_amount": "consequatur",
    "premium_images_amount": "consequatur",
    "bytes_amount": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/subscriptionLimits';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'company_id' => 'consequatur',
            'user_id' => 'consequatur',
            'users_amount' => 'consequatur',
            'words_amount' => 'consequatur',
            'images_amount' => 'consequatur',
            'premium_images_amount' => 'consequatur',
            'bytes_amount' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/subscriptionLimits'
payload = {
    "company_id": "consequatur",
    "user_id": "consequatur",
    "users_amount": "consequatur",
    "words_amount": "consequatur",
    "images_amount": "consequatur",
    "premium_images_amount": "consequatur",
    "bytes_amount": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 51,
        "company_id": 142,
        "user_id": 319,
        "users_amount": 498,
        "words_amount": 62211,
        "images_amount": 1867,
        "premium_images_amount": 5571,
        "bytes_amount": 612111894,
        "created_at": "2025-09-18T23:53:45.000000Z",
        "updated_at": "2025-09-18T23:53:45.000000Z"
    }
}
 

Request      

POST api/subscriptionLimits

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

company_id   The  optional  

ID of the company Example: consequatur

user_id   The  optional  

ID of the user ~nullable, when set, the subscription limit is for a specific user if not set, the subscription limit is for all users of the company~ Example: consequatur

users_amount   The  optional  

amount of users Example: consequatur

words_amount   The  optional  

amount of words Example: consequatur

images_amount   The  optional  

amount of images Example: consequatur

premium_images_amount   The  optional  

amount of premium images Example: consequatur

bytes_amount   The  optional  

amount of bytes Example: consequatur

PUT api/subscriptionLimits/{id}

requires authentication

Update the subscription limit

Example request:
curl --request PUT \
    "https://app.followr.ai/api/subscriptionLimits/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"users_amount\": \"consequatur\",
    \"words_amount\": \"consequatur\",
    \"images_amount\": \"consequatur\",
    \"premium_images_amount\": \"consequatur\",
    \"bytes_amount\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/subscriptionLimits/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "users_amount": "consequatur",
    "words_amount": "consequatur",
    "images_amount": "consequatur",
    "premium_images_amount": "consequatur",
    "bytes_amount": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/subscriptionLimits/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'users_amount' => 'consequatur',
            'words_amount' => 'consequatur',
            'images_amount' => 'consequatur',
            'premium_images_amount' => 'consequatur',
            'bytes_amount' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/subscriptionLimits/consequatur'
payload = {
    "users_amount": "consequatur",
    "words_amount": "consequatur",
    "images_amount": "consequatur",
    "premium_images_amount": "consequatur",
    "bytes_amount": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 52,
        "company_id": 143,
        "user_id": 321,
        "users_amount": 498,
        "words_amount": 62211,
        "images_amount": 1867,
        "premium_images_amount": 5571,
        "bytes_amount": 612111894,
        "created_at": "2025-09-18T23:53:45.000000Z",
        "updated_at": "2025-09-18T23:53:45.000000Z"
    }
}
 

Request      

PUT api/subscriptionLimits/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the subscription limit Example: consequatur

Body Parameters

users_amount   The  optional  

amount of users Example: consequatur

words_amount   The  optional  

amount of words Example: consequatur

images_amount   The  optional  

amount of images Example: consequatur

premium_images_amount   The  optional  

amount of premium images Example: consequatur

bytes_amount   The  optional  

amount of bytes Example: consequatur

DELETE api/subscriptionLimits/{id}

requires authentication

Delete the subscription limit

Example request:
curl --request DELETE \
    "https://app.followr.ai/api/subscriptionLimits/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/subscriptionLimits/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/subscriptionLimits/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/subscriptionLimits/consequatur'
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers)
response.json()

Example response (204):

Empty response
 

Request      

DELETE api/subscriptionLimits/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the subscription limit Example: consequatur

User

Actions related to User model.

User Resource

Attributes

Relations

GET api/users

requires authentication

Return the list of users

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/users?include=image.thumbnail&filter%5Bname%5D=consequatur&filter%5Bemail%5D=consequatur&sort=id%2C+-id%2C+created_at%2C+-created_at&page%5Bnumber%5D=1&page%5Bsize%5D=10" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/users"
);

const params = {
    "include": "image.thumbnail",
    "filter[name]": "consequatur",
    "filter[email]": "consequatur",
    "sort": "id, -id, created_at, -created_at",
    "page[number]": "1",
    "page[size]": "10",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/users';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'image.thumbnail',
            'filter[name]' => 'consequatur',
            'filter[email]' => 'consequatur',
            'sort' => 'id, -id, created_at, -created_at',
            'page[number]' => '1',
            'page[size]' => '10',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/users'
params = {
  'include': 'image.thumbnail',
  'filter[name]': 'consequatur',
  'filter[email]': 'consequatur',
  'sort': 'id, -id, created_at, -created_at',
  'page[number]': '1',
  'page[size]': '10',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": [
        {
            "id": 266,
            "name": "Dr. Cornelius Luettgen V",
            "email": "russel.bert@example.net",
            "referral_code": "T0TIYI",
            "language": null,
            "timezone": null,
            "notification_settings": null,
            "credits": 0,
            "pm_type": null,
            "pm_last_four": null,
            "cancel_reason": null,
            "referrer_url": null,
            "land_url": null,
            "has_password": true,
            "created_at": "2025-09-18T23:53:42.000000Z",
            "updated_at": "2025-09-18T23:53:42.000000Z",
            "banned_at": null,
            "password_changed_at": "2025-09-18T23:53:42.000000Z"
        },
        {
            "id": 267,
            "name": "Monty Schmeler",
            "email": "schultz.robyn@example.com",
            "referral_code": "NGO0AM",
            "language": null,
            "timezone": null,
            "notification_settings": null,
            "credits": 0,
            "pm_type": null,
            "pm_last_four": null,
            "cancel_reason": null,
            "referrer_url": null,
            "land_url": null,
            "has_password": true,
            "created_at": "2025-09-18T23:53:42.000000Z",
            "updated_at": "2025-09-18T23:53:42.000000Z",
            "banned_at": null,
            "password_changed_at": "2025-09-18T23:53:42.000000Z"
        }
    ]
}
 

Request      

GET api/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: image.thumbnail

filter[name]   string  optional  

filter by name Example: consequatur

filter[email]   string  optional  

filter by email Example: consequatur

filter[companies.id]   string  optional  

filter by company id Example: consequatur

sort   string  optional  

sort by field. Example: id, -id, created_at, -created_at

page[number]   integer  optional  

page number. Example: 1

page[size]   integer  optional  

items per page (default 30). Example: 10

GET api/users/{id}

requires authentication

Return the user

Example request:
curl --request GET \
    --get "https://app.followr.ai/api/users/consequatur?include=image.thumbnail" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.followr.ai/api/users/consequatur"
);

const params = {
    "include": "image.thumbnail",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/users/consequatur';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'include' => 'image.thumbnail',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/users/consequatur'
params = {
  'include': 'image.thumbnail',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('GET', url, headers=headers, params=params)
response.json()

Example response (200):


{
    "data": {
        "id": 268,
        "name": "Dr. Enoch Harber II",
        "email": "murazik.kacey@example.net",
        "referral_code": "VSL6NK",
        "language": null,
        "timezone": null,
        "notification_settings": null,
        "credits": 0,
        "pm_type": null,
        "pm_last_four": null,
        "cancel_reason": null,
        "referrer_url": null,
        "land_url": null,
        "has_password": true,
        "created_at": "2025-09-18T23:53:42.000000Z",
        "updated_at": "2025-09-18T23:53:42.000000Z",
        "banned_at": null,
        "password_changed_at": "2025-09-18T23:53:42.000000Z"
    }
}
 

Request      

GET api/users/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the user Example: consequatur

Query Parameters

include   string  optional  

additional relations to include in response, separated by semi-colon. Example: image.thumbnail

POST api/users

requires authentication

Create a new user, if user already exists, it will be attached to the company provided with an invitation

Example request:
curl --request POST \
    "https://app.followr.ai/api/users" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"email\": \"qkunze@example.com\",
    \"company_id\": \"consequatur\",
    \"language\": \"consequatur\",
    \"timezone\": \"Europe\\/Malta\",
    \"referrer_url\": \"https:\\/\\/www.mueller.com\\/laborum-eius-est-dolor-dolores-minus-voluptatem\",
    \"land_url\": \"http:\\/\\/schmeler.com\\/a-quo-sed-fugit-facilis-perferendis-dolores-molestias\",
    \"role\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/users"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "email": "qkunze@example.com",
    "company_id": "consequatur",
    "language": "consequatur",
    "timezone": "Europe\/Malta",
    "referrer_url": "https:\/\/www.mueller.com\/laborum-eius-est-dolor-dolores-minus-voluptatem",
    "land_url": "http:\/\/schmeler.com\/a-quo-sed-fugit-facilis-perferendis-dolores-molestias",
    "role": "consequatur"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/users';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'email' => 'qkunze@example.com',
            'company_id' => 'consequatur',
            'language' => 'consequatur',
            'timezone' => 'Europe/Malta',
            'referrer_url' => 'https://www.mueller.com/laborum-eius-est-dolor-dolores-minus-voluptatem',
            'land_url' => 'http://schmeler.com/a-quo-sed-fugit-facilis-perferendis-dolores-molestias',
            'role' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/users'
payload = {
    "name": "consequatur",
    "email": "qkunze@example.com",
    "company_id": "consequatur",
    "language": "consequatur",
    "timezone": "Europe\/Malta",
    "referrer_url": "https:\/\/www.mueller.com\/laborum-eius-est-dolor-dolores-minus-voluptatem",
    "land_url": "http:\/\/schmeler.com\/a-quo-sed-fugit-facilis-perferendis-dolores-molestias",
    "role": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('POST', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 269,
        "name": "Dr. Cornelius Luettgen V",
        "email": "reichel.charity@example.net",
        "referral_code": "XHM46I",
        "language": null,
        "timezone": null,
        "notification_settings": null,
        "credits": 0,
        "pm_type": null,
        "pm_last_four": null,
        "cancel_reason": null,
        "referrer_url": null,
        "land_url": null,
        "has_password": true,
        "created_at": "2025-09-18T23:53:42.000000Z",
        "updated_at": "2025-09-18T23:53:42.000000Z",
        "banned_at": null,
        "password_changed_at": "2025-09-18T23:53:42.000000Z"
    }
}
 

Request      

POST api/users

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

name   required  optional  

The name of the user Example: consequatur

email   required  optional  

The email of the user Example: qkunze@example.com

company_id   required  optional  

The ID of the company Example: consequatur

language   The  optional  

language of the user Example: consequatur

timezone   The  optional  

timezone of the user Example: Europe/Malta

referrer_url   string  optional  

Must be a valid URL. Must not be greater than 255 characters. Example: https://www.mueller.com/laborum-eius-est-dolor-dolores-minus-voluptatem

land_url   string  optional  

Must be a valid URL. Must not be greater than 255 characters. Example: http://schmeler.com/a-quo-sed-fugit-facilis-perferendis-dolores-molestias

role   The  optional  

role of the user in the company ~owner, admin, user, client~, default: user Example: consequatur

PUT api/users/{id}

requires authentication

Update the user

Example request:
curl --request PUT \
    "https://app.followr.ai/api/users/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"consequatur\",
    \"email\": \"qkunze@example.com\",
    \"password\": \"O[2UZ5ij-e\\/dl4m{o,\",
    \"language\": \"consequatur\",
    \"timezone\": \"Europe\\/Malta\",
    \"referral_code\": \"consequatur\",
    \"notification_settings\": {
        \"post_error\": false,
        \"post_published\": true,
        \"social_network_expired\": false,
        \"internal_comment_received\": true
    },
    \"referrer_url\": \"http:\\/\\/emard.info\\/dolores-minus-voluptatem-quisquam-quibusdam-sed-vel-a\",
    \"land_url\": \"http:\\/\\/carter.com\\/perferendis-dolores-molestias-ipsam-sit-veniam-sed.html\",
    \"frontend_url\": \"http:\\/\\/boyle.com\\/quas-dignissimos-perferendis-voluptatibus-incidunt-nostrum-quia-possimus-rerum\",
    \"white_label_id\": 17
}"
const url = new URL(
    "https://app.followr.ai/api/users/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "consequatur",
    "email": "qkunze@example.com",
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "language": "consequatur",
    "timezone": "Europe\/Malta",
    "referral_code": "consequatur",
    "notification_settings": {
        "post_error": false,
        "post_published": true,
        "social_network_expired": false,
        "internal_comment_received": true
    },
    "referrer_url": "http:\/\/emard.info\/dolores-minus-voluptatem-quisquam-quibusdam-sed-vel-a",
    "land_url": "http:\/\/carter.com\/perferendis-dolores-molestias-ipsam-sit-veniam-sed.html",
    "frontend_url": "http:\/\/boyle.com\/quas-dignissimos-perferendis-voluptatibus-incidunt-nostrum-quia-possimus-rerum",
    "white_label_id": 17
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/users/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'consequatur',
            'email' => 'qkunze@example.com',
            'password' => 'O[2UZ5ij-e/dl4m{o,',
            'language' => 'consequatur',
            'timezone' => 'Europe/Malta',
            'referral_code' => 'consequatur',
            'notification_settings' => [
                'post_error' => false,
                'post_published' => true,
                'social_network_expired' => false,
                'internal_comment_received' => true,
            ],
            'referrer_url' => 'http://emard.info/dolores-minus-voluptatem-quisquam-quibusdam-sed-vel-a',
            'land_url' => 'http://carter.com/perferendis-dolores-molestias-ipsam-sit-veniam-sed.html',
            'frontend_url' => 'http://boyle.com/quas-dignissimos-perferendis-voluptatibus-incidunt-nostrum-quia-possimus-rerum',
            'white_label_id' => 17,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/users/consequatur'
payload = {
    "name": "consequatur",
    "email": "qkunze@example.com",
    "password": "O[2UZ5ij-e\/dl4m{o,",
    "language": "consequatur",
    "timezone": "Europe\/Malta",
    "referral_code": "consequatur",
    "notification_settings": {
        "post_error": false,
        "post_published": true,
        "social_network_expired": false,
        "internal_comment_received": true
    },
    "referrer_url": "http:\/\/emard.info\/dolores-minus-voluptatem-quisquam-quibusdam-sed-vel-a",
    "land_url": "http:\/\/carter.com\/perferendis-dolores-molestias-ipsam-sit-veniam-sed.html",
    "frontend_url": "http:\/\/boyle.com\/quas-dignissimos-perferendis-voluptatibus-incidunt-nostrum-quia-possimus-rerum",
    "white_label_id": 17
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 270,
        "name": "Dr. Cornelius Luettgen V",
        "email": "dsmith@example.com",
        "referral_code": "LOOLDE",
        "language": null,
        "timezone": null,
        "notification_settings": null,
        "credits": 0,
        "pm_type": null,
        "pm_last_four": null,
        "cancel_reason": null,
        "referrer_url": null,
        "land_url": null,
        "has_password": true,
        "created_at": "2025-09-18T23:53:42.000000Z",
        "updated_at": "2025-09-18T23:53:42.000000Z",
        "banned_at": null,
        "password_changed_at": "2025-09-18T23:53:42.000000Z"
    }
}
 

Request      

PUT api/users/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the user Example: consequatur

Body Parameters

name   The  optional  

name of the user Example: consequatur

email   The  optional  

email of the user Example: qkunze@example.com

password   string  optional  

Example: O[2UZ5ij-e/dl4m{o,

language   The  optional  

language of the user Example: consequatur

timezone   The  optional  

timezone of the user Example: Europe/Malta

referral_code   string  optional  

The referral_code of an existing record in the users table. Example: consequatur

notification_settings   object  optional  
post_error   boolean  optional  

Example: false

post_published   boolean  optional  

Example: true

social_network_expired   boolean  optional  

Example: false

internal_comment_received   boolean  optional  

Example: true

referrer_url   string  optional  

Must be a valid URL. Must not be greater than 255 characters. Example: http://emard.info/dolores-minus-voluptatem-quisquam-quibusdam-sed-vel-a

land_url   string  optional  

Must be a valid URL. Must not be greater than 255 characters. Example: http://carter.com/perferendis-dolores-molestias-ipsam-sit-veniam-sed.html

frontend_url   string  optional  

Must be a valid URL. Example: http://boyle.com/quas-dignissimos-perferendis-voluptatibus-incidunt-nostrum-quia-possimus-rerum

white_label_id   integer  optional  

The id of an existing record in the white_labels table. Example: 17

DELETE api/users/{id}

requires authentication

Delete the user or remove it from company if company_id is provided

Example request:
curl --request DELETE \
    "https://app.followr.ai/api/users/consequatur?company_id=consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "https://app.followr.ai/api/users/consequatur"
);

const params = {
    "company_id": "consequatur",
};
Object.keys(params)
    .forEach(key => url.searchParams.append(key, params[key]));

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/users/consequatur';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'query' => [
            'company_id' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/users/consequatur'
params = {
  'company_id': 'consequatur',
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('DELETE', url, headers=headers, params=params)
response.json()

Example response (204):

Empty response
 

Request      

DELETE api/users/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   string  optional  

The ID of the user Example: consequatur

Query Parameters

company_id   string  optional  

The ID of the company to remove the user from Example: consequatur

Body Parameters

company_id   string  optional  

PUT api/companies/{company_id}/users/{id}

requires authentication

Update the user's role in the company

Example request:
curl --request PUT \
    "https://app.followr.ai/api/companies/consequatur/users/consequatur" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"role\": \"consequatur\"
}"
const url = new URL(
    "https://app.followr.ai/api/companies/consequatur/users/consequatur"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "role": "consequatur"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.followr.ai/api/companies/consequatur/users/consequatur';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'role' => 'consequatur',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json

url = 'https://app.followr.ai/api/companies/consequatur/users/consequatur'
payload = {
    "role": "consequatur"
}
headers = {
  'Authorization': 'Bearer {YOUR_AUTH_KEY}',
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

response = requests.request('PUT', url, headers=headers, json=payload)
response.json()

Example response (200):


{
    "data": {
        "id": 276,
        "name": "Dr. Cornelius Luettgen V",
        "email": "jaylan50@example.com",
        "referral_code": "2DHUQX",
        "language": null,
        "timezone": null,
        "notification_settings": null,
        "credits": 0,
        "pm_type": null,
        "pm_last_four": null,
        "cancel_reason": null,
        "referrer_url": null,
        "land_url": null,
        "has_password": true,
        "created_at": "2025-09-18T23:53:43.000000Z",
        "updated_at": "2025-09-18T23:53:43.000000Z",
        "banned_at": null,
        "password_changed_at": "2025-09-18T23:53:43.000000Z"
    }
}
 

Request      

PUT api/companies/{company_id}/users/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

company_id   string  optional  

The ID of the company Example: consequatur

id   string  optional  

The ID of the user Example: consequatur

Body Parameters

role   The  optional  

role of the user in the company ~owner, admin, user, client~ Example: consequatur