Platform Arguments and Environment Variables Reference¶
This document provides a comprehensive reference for all CLI arguments and environment variables available for each platform and action in Agoras. It also identifies which platforms support unattended execution (executing actions without requiring prior authorization via authorize).
Introduction¶
Agoras supports multiple social media platforms, each with different authentication mechanisms and available actions. This document catalogs:
All CLI arguments for each platform and action
Corresponding environment variables that can be used instead
Unattended execution support (bypassing the
authorizestep)
Authorize Action and Credential Storage
All platforms support an authorize action that securely stores credentials for future use. After running agoras <platform> authorize with the required credentials, those credentials are stored securely and automatically loaded for subsequent actions. Supported actions vary by platform (post, video, thread, like, share, delete, template, etc.) — see Action Support Matrix for the full matrix.
You can override stored credentials with environment variables on action and utils commands. Credential CLI flags are accepted only on authorize (and on legacy agoras publish until version 3.0). Google Sheets credentials for schedule-run remain on the utils CLI.
Note
Publish actions also accept --content path.yaml instead of inline content
flags. See YAML Content Files. When a content file supplies a payload
field, environment variables do not override that field.
Note
Utils commands (agoras utils feed-publish, agoras utils schedule-run) use the same auth model as platform actions: run agoras <platform> authorize or set platform environment variables. schedule-run requires --network (one platform per run). Google Sheets parameters use --sheets-* CLI flags; legacy agoras publish also accepts GOOGLE_SHEETS_ID, GOOGLE_SHEETS_NAME, GOOGLE_SHEETS_CLIENT_EMAIL, and GOOGLE_SHEETS_PRIVATE_KEY from the environment. Prefer env vars over inline keys in CI so values are not expanded into process argv or logs.
Google Sheets (schedule-run)¶
Variable |
Purpose |
|---|---|
|
Spreadsheet document ID |
|
Worksheet name |
|
Service account email |
|
Service account private key |
agoras utils schedule-run currently requires --sheets-* flags even when these env vars are set. Legacy agoras publish --action schedule reads the env vars when CLI flags are omitted.
Unattended Execution¶
Unattended execution means running actions without first running agoras <platform> authorize. This is useful for CI/CD pipelines and automated scripts where you want to skip the authorization step entirely.
For OAuth 2.0 platforms (Facebook, Instagram, LinkedIn, YouTube, TikTok, Threads), unattended execution requires:
{PLATFORM}_REFRESH_TOKEN- The refresh token from a previous authorizationAdditional platform-specific credentials (client ID, client secret, object ID, etc.) as shown in the table below
For unattended execution, you need to provide all required credentials (refresh token plus platform-specific credentials) via environment variables or CLI arguments. See the table below for the complete list of required credentials for each platform.
For non-OAuth platforms (X, Discord, Telegram, WhatsApp), run agoras <platform> authorize once to store credentials, or set the platform environment variables listed below. Platform action commands do not accept credential CLI flags; use stored tokens or environment variables instead.
Quick Reference: Unattended Execution¶
Common Parameters¶
These parameters are standardized across all platforms that support them:
X (formerly Twitter)¶
Authentication Type: OAuth 1.0a (API keys + OAuth tokens)
Actions: authorize, post, video, like, share, delete
Post Action¶
Required Arguments: None (but content is required)
Optional Arguments:
--text(CLI) /STATUS_TEXT(ENVVAR) - Text content--link(CLI) /STATUS_LINK(ENVVAR) - URL to include--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL--image-2(CLI) /STATUS_IMAGE_URL_2(ENVVAR) - Second image URL--image-3(CLI) /STATUS_IMAGE_URL_3(ENVVAR) - Third image URL--image-4(CLI) /STATUS_IMAGE_URL_4(ENVVAR) - Fourth image URL
Unattended Execution: Run authorize once to store credentials, or set TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_OAUTH_TOKEN, and TWITTER_OAUTH_SECRET environment variables.
Video Action¶
Required Arguments:
--video-url(CLI) /TWITTER_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-title(CLI) /TWITTER_VIDEO_TITLE(ENVVAR) - Video title/description--text(CLI) /STATUS_TEXT(ENVVAR) - Text content
Unattended Execution: Run authorize once to store credentials, or set TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_OAUTH_TOKEN, and TWITTER_OAUTH_SECRET environment variables.
Like Action¶
Required Arguments:
--post-id(CLI) /TWEET_ID(ENVVAR) - Tweet ID to like
Optional Arguments:
Unattended Execution: Run authorize once to store credentials, or set TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_OAUTH_TOKEN, and TWITTER_OAUTH_SECRET environment variables.
Delete Action¶
Required Arguments:
--post-id(CLI) /TWEET_ID(ENVVAR) - Tweet ID to delete
Optional Arguments:
Unattended Execution: Run authorize once to store credentials, or set TWITTER_CONSUMER_KEY, TWITTER_CONSUMER_SECRET, TWITTER_OAUTH_TOKEN, and TWITTER_OAUTH_SECRET environment variables.
Facebook¶
Authentication Type: OAuth 2.0
Actions: authorize, post, video, like, share, delete
Authorize Action¶
Required Arguments:
--client-id(CLI) /FACEBOOK_CLIENT_ID(ENVVAR) - Facebook App client ID--client-secret(CLI) /FACEBOOK_CLIENT_SECRET(ENVVAR) - Facebook App client secret--app-id(CLI) /FACEBOOK_APP_ID(ENVVAR) - Facebook App ID--object-id(CLI) /FACEBOOK_OBJECT_ID(ENVVAR) - Facebook user/page ID
Post Action¶
Required Arguments:
--object-id(CLI) /FACEBOOK_OBJECT_ID(ENVVAR) - Facebook page or profile ID
Optional Arguments:
--text(CLI) /STATUS_TEXT(ENVVAR) - Text content--link(CLI) /STATUS_LINK(ENVVAR) - URL to include--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL--image-2(CLI) /STATUS_IMAGE_URL_2(ENVVAR) - Second image URL--image-3(CLI) /STATUS_IMAGE_URL_3(ENVVAR) - Third image URL--image-4(CLI) /STATUS_IMAGE_URL_4(ENVVAR) - Fourth image URL
Unattended Execution: Set FACEBOOK_OBJECT_ID, FACEBOOK_CLIENT_ID, FACEBOOK_CLIENT_SECRET, and FACEBOOK_REFRESH_TOKEN environment variables.
Video Action¶
Required Arguments:
--object-id(CLI) /FACEBOOK_OBJECT_ID(ENVVAR) - Facebook page or profile ID--video-url(CLI) /FACEBOOK_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-title(CLI) /FACEBOOK_VIDEO_TITLE(ENVVAR) - Video title--video-description(CLI) /FACEBOOK_VIDEO_DESCRIPTION(ENVVAR) - Video description--video-type(CLI) /FACEBOOK_VIDEO_TYPE(ENVVAR) - Video type
Unattended Execution: Set FACEBOOK_OBJECT_ID, FACEBOOK_CLIENT_ID, FACEBOOK_CLIENT_SECRET, and FACEBOOK_REFRESH_TOKEN environment variables.
Like Action¶
Required Arguments:
--post-id(CLI) /FACEBOOK_POST_ID(ENVVAR) - Facebook post ID
Optional Arguments: None
Unattended Execution: Set FACEBOOK_OBJECT_ID, FACEBOOK_CLIENT_ID, FACEBOOK_CLIENT_SECRET, and FACEBOOK_REFRESH_TOKEN environment variables.
Share Action¶
Required Arguments:
--post-id(CLI) /FACEBOOK_POST_ID(ENVVAR) - Facebook post ID
Optional Arguments:
--profile-id(CLI) /FACEBOOK_PROFILE_ID(ENVVAR) - Facebook profile ID where post will be shared
Unattended Execution: Set FACEBOOK_OBJECT_ID, FACEBOOK_CLIENT_ID, FACEBOOK_CLIENT_SECRET, and FACEBOOK_REFRESH_TOKEN environment variables.
Delete Action¶
Required Arguments:
--post-id(CLI) /FACEBOOK_POST_ID(ENVVAR) - Facebook post ID
Optional Arguments: None
Unattended Execution: Set FACEBOOK_OBJECT_ID, FACEBOOK_CLIENT_ID, FACEBOOK_CLIENT_SECRET, and FACEBOOK_REFRESH_TOKEN environment variables.
Instagram¶
Authentication Type: OAuth 2.0 (uses Facebook OAuth)
Actions: authorize, post, video
Authorize Action¶
Required Arguments:
--client-id(CLI) /INSTAGRAM_CLIENT_ID(ENVVAR) - Facebook App client ID (Instagram uses Facebook OAuth)--client-secret(CLI) /INSTAGRAM_CLIENT_SECRET(ENVVAR) - Facebook App client secret--object-id(CLI) /INSTAGRAM_OBJECT_ID(ENVVAR) - Facebook user ID for Instagram business account
Post Action¶
Required Arguments:
--object-id(CLI) /INSTAGRAM_OBJECT_ID(ENVVAR) - Instagram business account ID
Optional Arguments:
--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - Image URL (required for photo posts)
Unattended Execution: Set INSTAGRAM_OBJECT_ID, INSTAGRAM_CLIENT_ID, INSTAGRAM_CLIENT_SECRET, and INSTAGRAM_REFRESH_TOKEN environment variables.
Video Action¶
Required Arguments:
--object-id(CLI) /INSTAGRAM_OBJECT_ID(ENVVAR) - Instagram business account ID--video-url(CLI) /INSTAGRAM_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-caption(CLI) /INSTAGRAM_VIDEO_CAPTION(ENVVAR) - Video caption--video-type(CLI) /INSTAGRAM_VIDEO_TYPE(ENVVAR) - Video type (e.g., REELS, STORIES)
Unattended Execution: Set INSTAGRAM_OBJECT_ID, INSTAGRAM_CLIENT_ID, INSTAGRAM_CLIENT_SECRET, and INSTAGRAM_REFRESH_TOKEN environment variables.
LinkedIn¶
Authentication Type: OAuth 2.0
Actions: authorize, post, video, like, share, delete
Authorize Action¶
Required Arguments:
--client-id(CLI) /LINKEDIN_CLIENT_ID(ENVVAR) - LinkedIn App client ID--client-secret(CLI) /LINKEDIN_CLIENT_SECRET(ENVVAR) - LinkedIn App client secret--object-id(CLI) /LINKEDIN_OBJECT_ID(ENVVAR) - LinkedIn user/organization ID
Post Action¶
Optional Arguments:
--text(CLI) /STATUS_TEXT(ENVVAR) - Text content--link(CLI) /STATUS_LINK(ENVVAR) - URL to include--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL
Unattended Execution: Set LINKEDIN_OBJECT_ID, LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, and either LINKEDIN_REFRESH_TOKEN or LINKEDIN_ACCESS_TOKEN environment variables.
Video Action¶
Required Arguments:
--video-url(CLI) /LINKEDIN_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-title(CLI) /LINKEDIN_VIDEO_TITLE(ENVVAR) - Video title
Unattended Execution: Set LINKEDIN_OBJECT_ID, LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, and either LINKEDIN_REFRESH_TOKEN or LINKEDIN_ACCESS_TOKEN environment variables.
Like Action¶
Required Arguments:
--post-id(CLI) /LINKEDIN_POST_ID(ENVVAR) - LinkedIn post ID
Unattended Execution: Set LINKEDIN_OBJECT_ID, LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, and either LINKEDIN_REFRESH_TOKEN or LINKEDIN_ACCESS_TOKEN environment variables.
Share Action¶
Required Arguments:
--post-id(CLI) /LINKEDIN_POST_ID(ENVVAR) - LinkedIn post ID
Unattended Execution: Set LINKEDIN_OBJECT_ID, LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, and either LINKEDIN_REFRESH_TOKEN or LINKEDIN_ACCESS_TOKEN environment variables.
Delete Action¶
Required Arguments:
--post-id(CLI) /LINKEDIN_POST_ID(ENVVAR) - LinkedIn post ID
Unattended Execution: Set LINKEDIN_OBJECT_ID, LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, and either LINKEDIN_REFRESH_TOKEN or LINKEDIN_ACCESS_TOKEN environment variables.
Discord¶
Authentication Type: Bot Token
Actions: authorize, post, video, delete
Authorize Action¶
Required Arguments:
--bot-token(CLI) /DISCORD_BOT_TOKEN(ENVVAR) - Discord bot token--server-name(CLI) /DISCORD_SERVER_NAME(ENVVAR) - Discord server (guild) name--channel-name(CLI) /DISCORD_CHANNEL_NAME(ENVVAR) - Discord channel name
Note: After running authorize, all credentials are stored securely. Subsequent actions (post, video, delete) will automatically use the stored credentials and do not require credential parameters.
Post Action¶
Optional Arguments:
--text(CLI) /STATUS_TEXT(ENVVAR) - Text content--link(CLI) /STATUS_LINK(ENVVAR) - URL to include--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL--image-2(CLI) /STATUS_IMAGE_URL_2(ENVVAR) - Second image URL--image-3(CLI) /STATUS_IMAGE_URL_3(ENVVAR) - Third image URL--image-4(CLI) /STATUS_IMAGE_URL_4(ENVVAR) - Fourth image URL
Unattended Execution: Run authorize once to store credentials, or set DISCORD_BOT_TOKEN, DISCORD_SERVER_NAME, and DISCORD_CHANNEL_NAME environment variables.
Video Action¶
Required Arguments:
--video-url(CLI) /DISCORD_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-title(CLI) /DISCORD_VIDEO_TITLE(ENVVAR) - Video title/description
Unattended Execution: Run authorize once to store credentials, or set DISCORD_BOT_TOKEN, DISCORD_SERVER_NAME, and DISCORD_CHANNEL_NAME environment variables.
Delete Action¶
Required Arguments:
--post-id(CLI) /DISCORD_POST_ID(ENVVAR) - Discord message ID
Optional Arguments:
Unattended Execution: Run authorize once to store credentials, or set DISCORD_BOT_TOKEN, DISCORD_SERVER_NAME, and DISCORD_CHANNEL_NAME environment variables.
YouTube¶
Authentication Type: OAuth 2.0
Actions: authorize, video, like, delete
Authorize Action¶
Required Arguments:
--client-id(CLI) /YOUTUBE_CLIENT_ID(ENVVAR) - YouTube (Google) OAuth client ID--client-secret(CLI) /YOUTUBE_CLIENT_SECRET(ENVVAR) - YouTube (Google) OAuth client secret
Video Action¶
Required Arguments:
--video-url(CLI) /YOUTUBE_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--title(CLI) /YOUTUBE_TITLE(ENVVAR) - Video title--description(CLI) /YOUTUBE_DESCRIPTION(ENVVAR) - Video description--category-id(CLI) /YOUTUBE_CATEGORY_ID(ENVVAR) - YouTube category ID--privacy(CLI) /YOUTUBE_PRIVACY_STATUS(ENVVAR) - Privacy status:public,private, orunlisted(default:private)--keywords(CLI) /YOUTUBE_KEYWORDS(ENVVAR) - Comma-separated keywords
Unattended Execution: Set YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET, and YOUTUBE_REFRESH_TOKEN environment variables.
Like Action¶
Required Arguments:
--video-id(CLI) /YOUTUBE_VIDEO_ID(ENVVAR) - YouTube video ID
Unattended Execution: Set YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET, and YOUTUBE_REFRESH_TOKEN environment variables.
Delete Action¶
Required Arguments:
--video-id(CLI) /YOUTUBE_VIDEO_ID(ENVVAR) - YouTube video ID
Unattended Execution: Set YOUTUBE_CLIENT_ID, YOUTUBE_CLIENT_SECRET, and YOUTUBE_REFRESH_TOKEN environment variables.
TikTok¶
Authentication Type: OAuth 2.0
Actions: authorize, post, video
Authorize Action¶
Required Arguments:
--client-key(CLI) /TIKTOK_CLIENT_KEY(ENVVAR) - TikTok App client key--client-secret(CLI) /TIKTOK_CLIENT_SECRET(ENVVAR) - TikTok App client secret--username(CLI) /TIKTOK_USERNAME(ENVVAR) - TikTok username
Post Action¶
Required Arguments:
At least one image URL using
--image-1,--image-2,--image-3, or--image-4
Optional Arguments:
--text(CLI) /STATUS_TEXT(ENVVAR) - Text content of the post--link(CLI) /STATUS_LINK(ENVVAR) - URL to include in post--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL--image-2(CLI) /STATUS_IMAGE_URL_2(ENVVAR) - Second image URL--image-3(CLI) /STATUS_IMAGE_URL_3(ENVVAR) - Third image URL--image-4(CLI) /STATUS_IMAGE_URL_4(ENVVAR) - Fourth image URL--title(CLI) /TIKTOK_TITLE(ENVVAR) - Post title/caption--privacy(CLI) /TIKTOK_PRIVACY_STATUS(ENVVAR) - Unattended privacy (SELF_ONLYonly). Interactive post/video open a localhost composer instead of applying this flag.--allow-comments(CLI) /TIKTOK_ALLOW_COMMENTS(ENVVAR) - Allow comments on the post (default: true)--auto-add-music(CLI) /TIKTOK_AUTO_ADD_MUSIC(ENVVAR) - Automatically add music to the slideshow (default: false)--brand-organic(CLI) /TIKTOK_BRAND_ORGANIC(ENVVAR) - Mark content as promotional (displays “Promotional content” label)--brand-content(CLI) /TIKTOK_BRAND_CONTENT(ENVVAR) - Mark content as paid partnership (displays “Paid partnership” label)
Video Action¶
Required Arguments:
--video-url(CLI) /TIKTOK_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--title(CLI) /TIKTOK_TITLE(ENVVAR) - Video title/caption--privacy(CLI) /TIKTOK_PRIVACY_STATUS(ENVVAR) - Unattended privacy (SELF_ONLYonly). Interactive post/video open a localhost composer instead of applying this flag.--allow-comments(CLI) /TIKTOK_ALLOW_COMMENTS(ENVVAR) - Allow comments on the video (default: true)--allow-duet(CLI) /TIKTOK_ALLOW_DUET(ENVVAR) - Allow other users to duet with your video (default: true)--allow-stitch(CLI) /TIKTOK_ALLOW_STITCH(ENVVAR) - Allow other users to stitch your video (default: true)--brand-organic(CLI) /TIKTOK_BRAND_ORGANIC(ENVVAR) - Mark content as promotional (displays “Promotional content” label)--brand-content(CLI) /TIKTOK_BRAND_CONTENT(ENVVAR) - Mark content as paid partnership (displays “Paid partnership” label)
Unattended Execution: Set TIKTOK_USERNAME, TIKTOK_CLIENT_KEY, TIKTOK_CLIENT_SECRET, and TIKTOK_REFRESH_TOKEN environment variables.
Threads¶
Authentication Type: OAuth 2.0
Actions: authorize, post, video, share, delete
Authorize Action¶
Required Arguments:
--app-id(CLI) /THREADS_APP_ID(ENVVAR) - Threads (Meta) App ID--app-secret(CLI) /THREADS_APP_SECRET(ENVVAR) - Threads (Meta) App secret
Post Action¶
Optional Arguments:
--text(CLI) /STATUS_TEXT(ENVVAR) - Text content--link(CLI) /STATUS_LINK(ENVVAR) - URL to include--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL--image-2(CLI) /STATUS_IMAGE_URL_2(ENVVAR) - Second image URL--image-3(CLI) /STATUS_IMAGE_URL_3(ENVVAR) - Third image URL--image-4(CLI) /STATUS_IMAGE_URL_4(ENVVAR) - Fourth image URL
Unattended Execution: Set THREADS_APP_ID, THREADS_APP_SECRET, THREADS_REFRESH_TOKEN, and THREADS_USER_ID environment variables.
Video Action¶
Required Arguments:
--video-url(CLI) /THREADS_VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-title(CLI) /THREADS_VIDEO_TITLE(ENVVAR) - Video caption/description
Unattended Execution: Set THREADS_APP_ID, THREADS_APP_SECRET, THREADS_REFRESH_TOKEN, and THREADS_USER_ID environment variables.
Share Action¶
Required Arguments:
--post-id(CLI) /THREADS_POST_ID(ENVVAR) - Threads post ID
Unattended Execution: Set THREADS_APP_ID, THREADS_APP_SECRET, THREADS_REFRESH_TOKEN, and THREADS_USER_ID environment variables.
Telegram¶
Authentication Type: Bot Token
Actions: authorize, post, video, delete
Authorize Action¶
Required Arguments:
--bot-token(CLI) /TELEGRAM_BOT_TOKEN(ENVVAR) - Telegram bot token from @BotFather--chat-id(CLI) /TELEGRAM_CHAT_ID(ENVVAR) - Target chat ID (user, group, or channel)
Note: After running authorize, all credentials are stored securely. Subsequent actions (post, video, delete) will automatically use the stored credentials and do not require credential parameters.
Post Action¶
Optional Arguments:
--parse-mode(CLI) /TELEGRAM_PARSE_MODE(ENVVAR) - Message parse mode:HTML,Markdown,MarkdownV2, orNone(default:HTML)--text(CLI) /STATUS_TEXT(ENVVAR) - Text content--link(CLI) /STATUS_LINK(ENVVAR) - URL to include--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL--image-2(CLI) /STATUS_IMAGE_URL_2(ENVVAR) - Second image URL--image-3(CLI) /STATUS_IMAGE_URL_3(ENVVAR) - Third image URL--image-4(CLI) /STATUS_IMAGE_URL_4(ENVVAR) - Fourth image URL
Unattended Execution: Run authorize once to store credentials, or set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID environment variables.
Video Action¶
Required Arguments:
--video-url(CLI) /VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-title(CLI) /VIDEO_TITLE(ENVVAR) - Video title/description
Unattended Execution: Run authorize once to store credentials, or set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID environment variables.
Delete Action¶
Required Arguments:
--post-id(CLI) /TELEGRAM_MESSAGE_ID(ENVVAR) - Telegram message ID
Optional Arguments:
Unattended Execution: Run authorize once to store credentials, or set TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID environment variables.
WhatsApp¶
Authentication Type: API Token
Actions: authorize, post, video, template
Authorize Action¶
Required Arguments:
--access-token(CLI) /WHATSAPP_ACCESS_TOKEN(ENVVAR) - Meta Graph API access token--phone-number-id(CLI) /WHATSAPP_PHONE_NUMBER_ID(ENVVAR) - WhatsApp Business phone number ID
Optional Arguments:
--business-account-id(CLI) /WHATSAPP_BUSINESS_ACCOUNT_ID(ENVVAR) - WhatsApp Business Account ID
Note: After running authorize, credentials (access-token, phone-number-id, business-account-id) are stored securely. Subsequent actions will automatically use the stored credentials. However, --recipient is still required for messaging actions as it varies per message and is not stored during authorization.
Post Action¶
Required Arguments:
--recipient(CLI) /WHATSAPP_RECIPIENT(ENVVAR) - Target recipient phone number in E.164 format (e.g., +1234567890)
Optional Arguments:
--text(CLI) /STATUS_TEXT(ENVVAR) - Text content--link(CLI) /STATUS_LINK(ENVVAR) - URL to include--image-1(CLI) /STATUS_IMAGE_URL_1(ENVVAR) - First image URL--image-2(CLI) /STATUS_IMAGE_URL_2(ENVVAR) - Second image URL--image-3(CLI) /STATUS_IMAGE_URL_3(ENVVAR) - Third image URL--image-4(CLI) /STATUS_IMAGE_URL_4(ENVVAR) - Fourth image URL
Unattended Execution: Run authorize once to store credentials, or set WHATSAPP_ACCESS_TOKEN, WHATSAPP_PHONE_NUMBER_ID, and WHATSAPP_RECIPIENT environment variables.
Video Action¶
Required Arguments:
--recipient(CLI) /WHATSAPP_RECIPIENT(ENVVAR) - Target recipient phone number in E.164 format--video-url(CLI) /VIDEO_URL(ENVVAR) - Video file URL
Optional Arguments:
--video-title(CLI) /VIDEO_TITLE(ENVVAR) - Video title/description
Unattended Execution: Run authorize once to store credentials, or set WHATSAPP_ACCESS_TOKEN, WHATSAPP_PHONE_NUMBER_ID, and WHATSAPP_RECIPIENT environment variables.
Template Action¶
Required Arguments:
--recipient(CLI) /WHATSAPP_RECIPIENT(ENVVAR) - Target recipient phone number in E.164 format--template-name(CLI) /WHATSAPP_TEMPLATE_NAME(ENVVAR) - Name of the pre-approved template
Optional Arguments:
--language-code(CLI) /WHATSAPP_TEMPLATE_LANGUAGE(ENVVAR) - Language code (ISO 639-1 format, default: en)--template-components(CLI) /WHATSAPP_TEMPLATE_COMPONENTS(ENVVAR) - Template components as JSON string
Unattended Execution: Run authorize once to store credentials, or set WHATSAPP_ACCESS_TOKEN, WHATSAPP_PHONE_NUMBER_ID, and WHATSAPP_RECIPIENT environment variables.
Environment Variable Naming Patterns¶
Environment variables follow these patterns:
OAuth 2.0 Refresh Tokens:
{PLATFORM}_REFRESH_TOKENPlatform Credentials:
{PLATFORM}_{CREDENTIAL_TYPE}(e.g.,TWITTER_CONSUMER_KEY,DISCORD_BOT_TOKEN)Common Content:
STATUS_TEXT,STATUS_LINK,STATUS_IMAGE_URL_1, etc.Platform-Specific: Platform-specific parameters use platform prefix (e.g.,
YOUTUBE_TITLE,TIKTOK_PRIVACY_STATUS)
See Also¶
Complete Parameter Reference - Complete parameter reference
Action Support Matrix - Platform action support matrix
Platform-specific credential guides in ../credentials/index