Skip to main content

CLI Reference

Cheat sheet for verlynk commands, environment variables, exit codes, and common errors.

Quick commands

# Auth
verlynk auth:login --key verlynk_your_key_here
verlynk auth:status
verlynk auth:logout

# Profiles & accounts
verlynk profiles:list
verlynk profiles:use <profile-uuid>
verlynk accounts:list --json

# Media
verlynk media:upload ./photo.png --json

# Posts
verlynk posts:create -c "text" -i "<channel-id>" -d "2026-07-15T09:00:00.000Z"
verlynk posts:create -c "text" -i "<channel-id>" -t publish
verlynk posts:create --media-file ./photo.png -c "Caption" -i "<channel-id>" -d "2026-07-15T09:00:00.000Z"
verlynk posts:create --json file.json
# --json also covers QUEUE, RECURRING_*, NEEDS_APPROVAL — see Posts docs
verlynk posts:list --from 2026-07-01 --to 2026-07-31
verlynk posts:get <post-id>
verlynk posts:update <post-id> -c "Updated" -i "<channel-id>" -d "2026-07-16T09:00:00.000Z"
verlynk posts:update <post-id> --json ./update.json
verlynk posts:retry <post-id>
verlynk posts:delete <post-id> --yes
verlynk validate -t "text"

# Drafts
verlynk posts:drafts --from 2026-07-01 --to 2026-07-31
verlynk drafts:update <draft-id> --json ./draft.json
verlynk drafts:delete <draft-id> --yes

Full action × schedule pairing, edit/delete rules, and limitations: Posts · Drafts.

# Inbox
verlynk inbox:list --from 2026-07-01 --to 2026-07-16 --status OPEN --json
verlynk inbox:reply <item-id> -m "Thanks for your feedback!"
verlynk inbox:status <item-id> --status CLOSED

# API keys
verlynk keys:list
verlynk keys:create --name "CI Deploy" --permission read-write
verlynk keys:delete <key-id> --yes

# Analytics & usage
verlynk analytics:post <post-id>
verlynk analytics:best-time -a <channel-id>
verlynk usage

# Help
verlynk --help
verlynk posts:create --help
verlynk media:upload --help

Environment variables

VariableRequiredDefaultDescription
VERLYNK_API_KEYNo*Public API key (verlynk_...)
VERLYNK_API_URLNohttps://verlynk.com/apiCustom API base URL
VERLYNK_PROFILE_IDNoDefault profile UUID

*Either verlynk auth:login or VERLYNK_API_KEY is required. Stored credentials from auth:login take priority over environment variables.

Exit codes

CodeMeaning
0Success
1Error (Error: ... on stderr), or validate --strict when any platform exceeds its limit

Destructive commands

These require --yes / -y:

  • posts:delete
  • drafts:delete
  • keys:delete
  • profiles:delete
  • accounts:disconnect

Common errors

ErrorSolution
No authentication foundRun verlynk auth:login or set VERLYNK_API_KEY
Profile resolution errorsRun verlynk profiles:list, then profiles:use <id>
API_KEY_SCOPE_DENIEDKey is missing the required scope — create a key with the right --scope / --permission
INVALID_PLAN on analyticsPlan does not include that feature — check verlynk usage
media:upload missing from --helpYou are on deprecated @verlynk/cli — see Installation migration
mediaUrl is not allowedCLI/Public API JSON must use { mediaId, fileType, contentType }, not MCP fields
REPLY_NOT_SUPPORTED on inbox:replyItem is a REPLY or has no linked post — reply to the top-level comment instead
INBOX_ITEM_NOT_FOUNDItem doesn't exist for this profile — re-check with inbox:list
BAD_REQUEST on inbox commandsValidation failed (empty --message, invalid dates, range over 40 days)

Inbox errors carry errorCode, retryable, and action — with --json, these print as a single JSON object on stderr. See Inbox errors.

Rate limits

120 requests/minute, burst 30 / 10 seconds. See Rate Limits.