URL Scheme API Overview & Documentation The Statuz URL Scheme API provides a powerful way to control Statuz programmatically from external applications, shell scripts, Shortcuts, and automation tools. Create posts, schedule content, manage accounts, and control the appβ€”all via simple URL commands. Why Use the URL Scheme API? β€’ πŸ”— No API Keys Required - Direct communication with the running app β€’ ⚑ Zero Latency - Instant local IPC, no network calls β€’ πŸ› οΈ Universal Integration - Works with any tool that can open URLs β€’ πŸ”’ Sandbox-Friendly - Full macOS sandbox support with smart permission handling β€’ 🎯 Simple & Intuitive - Clear, self-documenting action names Base Scheme statuz:// For Debug builds, use statuz-dev:// Quick Example Post to social media with a single command: open "statuz://compose?text=Hello%20World!" Schedule a post: open "statuz://schedule?text=Tomorrow's%20update&date=2025-01-20T09:00:00Z" Attach media: open "statuz://compose?text=Check%20this%20out&media=file:///path/to/image.png" Need to pass raw file paths instead of file:// URLs? Use the files parameter (alias for media) to send absolute paths, even with spaces, straight to Statuz. Available Actions ActionPurposeLearn More composeCreate and publish postsCompose Action (/docs/url-scheme-compose) scheduleSchedule posts for laterSchedule Action (/docs/url-scheme-schedule) scheduledEdit or delete queued postsScheduled Action (/docs/url-scheme-scheduled) accountsManage social accountsAccounts Action (/docs/url-scheme-accounts) calendarView and navigate calendarCalendar Action (/docs/url-scheme-calendar) settingsOpen specific settings panesSettings Action (/docs/url-scheme-settings) licenseManage licenseLicense Action (/docs/url-scheme-license) openBring app to foregroundOpen Action (/docs/url-scheme-open) Common Use Cases 1. Automation Scripts Automate social media posting from shell scripts, cron jobs, or CI/CD pipelines: #!/bin/bash # Daily status update TEXT="Daily report: All systems operational βœ…" open "statuz://compose?text=$(echo "$TEXT" | jq -sRr @uri)" 2. Apple Shortcuts Create iOS/macOS shortcuts for: β€’ Quick post from clipboard β€’ Schedule weekly announcements β€’ Share screenshots with captions β€’ Create threads from long-form content 3. Raycast/Alfred Workflows Build custom workflows: β€’ Post selected text to Statuz β€’ Schedule posts with natural language dates β€’ Quick account switching 4. Keyboard Maestro Trigger Statuz actions with custom hotkeys: β€’ Screenshot β†’ Composer with image β€’ Copy text β†’ Schedule for morning β€’ Select files β†’ Create thread 5. Hazel Rules Automate based on file system events: β€’ New file in folder β†’ Post to social media β€’ Daily report generated β†’ Schedule post β€’ Screenshot saved β†’ Open composer Platform Support The URL Scheme API supports all Statuz platforms: β€’ X (Twitter) - Platform identifier: x β€’ BlueSky - Platform identifier: bluesky β€’ Mastodon - Platform identifier: mastodon Platform and account selection is done in the Statuz UI when using compose action, or can be specified via parameters for schedule and scheduled actions. Security & Permissions File Access Statuz respects macOS sandbox restrictions. When attaching files: β€’ First Time - Statuz prompts for folder access and stores a security-scoped bookmark β€’ Subsequent Calls - Silent access using stored bookmarks β€’ Remote URLs - Automatically downloaded (supports PNG/JPG/GIF images plus MP4/MOV video), no prompts needed User Consent β€’ Posts opened via URL scheme require user action in the UI β€’ Use stealthMode=true parameter to skip confirmation dialogs (for scheduled edits) β€’ Publishing always requires valid license for premium features Credentials Account credentials are never exposed through the URL scheme: β€’ OAuth must be done through the app's secure UI β€’ The API can only modify safe fields (nicknames, enabled status) β€’ Tokens and passwords remain in macOS Keychain Best Practices URL Encoding Always encode parameter values: // JavaScript const text = 'Hello World! πŸŽ‰'; const encoded = encodeURIComponent(text); const url = `statuz://compose?text=${encoded}`; # Python from urllib.parse import quote encoded = quote("Hello World! πŸŽ‰") url = f"statuz://compose?text={encoded}" # Shell (with jq) ENCODED=$(printf %s "Hello World! πŸŽ‰" | jq -sRr @uri) open "statuz://compose?text=$ENCODED" File Paths Use file:// URLs for local media: statuz://compose?media=file:///Users/username/Pictures/image.png Multiple files (comma-separated): statuz://compose?media=file:///path/1.png,file:///path/2.jpg Date Formats Use ISO 8601 for dates: β€’ UTC: 2024-12-25T10:00:00Z β€’ With timezone: 2024-12-25T10:00:00-05:00 β€’ Local time: 2024-12-25T10:00:00 Next Steps β€’ Compose Action (/docs/url-scheme-compose) - Create and publish posts β€’ Schedule Action (/docs/url-scheme-schedule) - Schedule posts for later β€’ Scheduled Action (/docs/url-scheme-scheduled) - Edit or delete queued posts β€’ Calendar Action (/docs/url-scheme-calendar) - Jump directly to any view/date β€’ Settings Action (/docs/url-scheme-settings) - Deep-link into configuration panes β€’ License Action (/docs/url-scheme-license) - Handle activation, verification, or purchase β€’ Accounts Action (/docs/url-scheme-accounts) - Manage social accounts β€’ Example Scripts (/docs/url-scheme-examples) - Ready-to-use automation ideas Support Questions or issues with the URL Scheme API? β€’ πŸ“§ Email: support@statuz.gg (mailto:support@statuz.gg) β€’ πŸ“š Examples: GitHub Repository (https://github.com/statuz/examples) Try Statuz today, it's free. Download for macOS (/download)