Skip to main content
MADIAD Hub forwards any option a platform supports verbatim, so you are never limited to what is listed here. The fields below are the common and important ones. Prefix the field with the platform name where the option is platform-specific (<platform>_<field>). Array fields use the field[] convention — repeat the key once per value.
Every field on this page is optional unless explicitly marked required. Omitting a field uses the platform’s default.

TikTok

brand_content_toggle and brand_organic_toggle can both be true at the same time — e.g. a creator promoting their own brand in a paid partnership.

Instagram

Facebook

facebook_page_id is ignored while a Page is pinned to the profile — the post goes to the pinned Page and still reports success. See Pin a Page to a profile.
To publish a long-form Page video (portrait or landscape, any length up to 4 hours), set facebook_media_type=VIDEO. Without it the default is REELS, which caps the video at 90 seconds.

YouTube

Pinterest

Reddit

X (Twitter)

X strips any URL that would become a clickable link from the post text before publishing — see Character limits. Put links in your profile bio or inside the image/video instead.

Threads

LinkedIn

target_linkedin_page_id takes the full urn:li:organization:… URN. List the organizations a profile can publish as with GET /v1/connections/linkedin/pages — see LinkedIn Pages. It is ignored while an organization Page is pinned to the profile; see Pin a Page to a profile.

Bluesky

Google Business

Google Business Profile posts appear on your Google Maps listing and in Search. The gbp_ prefix scopes all options to this platform.
Event fields (when gbp_topic_type=EVENT): Offer fields (when gbp_topic_type=OFFER):

Manual-credential channels

Eleven channels connect by pasting your own credential rather than by OAuth — see Channels for the field list and the connect endpoints. They take the shared caption, or a <channel>_caption of their own (see Per-platform overrides); Mastodon and the article platforms have their own rules for that text, below. There are no other creative options, and no analytics data is returned for any of them. Several of them also accept only one kind of post. Sending a channel a kind it does not take is refused locally with 400 invalid_request before anything is published — the matrix on Channels is the reference.

Chat channels

Text over the platform limit is truncated, not rejected, so keep captions within the limits shown in Character limits:
  • Telegram — 4,096 chars for text-only messages; 1,024 chars for media captions.
  • Discord — 2,000 chars.
  • Slack — text posts only.

Fediverse

  • Mastodon — text, photo and video. The per-post limit is set by the instance you connected: 500 chars by default, and an instance may raise it. A shared caption over 500 is cut to 500 for Mastodon only. To send more to an instance that allows it, set mastodon_caption: it is sent as written and not length-checked, and the instance refuses text over its own limit.
  • Lemmy — text and photo. The target community is fixed at connect time.
  • Nostr — text only, relayed to the relays you supplied at connect time.

Publishing surfaces

  • WordPress — text, photo and video.
  • dev.to, Hashnode — text only.
  • Whop — text only, posted to the experience you supplied at connect time.
  • listmonk — text only, sent to the list you supplied at connect time. This one sends email to real recipients — test against a small list first.
On the article platforms (WordPress, dev.to, Hashnode, Lemmy, listmonk and Whop) the text you send is the article’s body, and its title is taken from the first line unless you set <channel>_title. <channel>_caption replaces the shared caption as that channel’s body and is sent as that channel’s own job — see Per-platform overrides.