Schedule Social
indranilbanerjee/digital-marketing-pro
Schedule social posts to Twitter/X, Instagram, LinkedIn, TikTok, YouTube, and Pinterest through connected platform MCPs — generating per-platform copy variations, hashtag mixes, media-spec…
Create and publish social media launches via the Dropspace API.
$ npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills dropspace --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dropspace .claude/skills/dropspace && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dropspace" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/dropspace into .claude/skills/dropspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dropspace", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/dropspaceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills dropspace --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dropspace .agents/skills/dropspace && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dropspace" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/dropspace into .agents/skills/dropspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dropspace", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills dropspace --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dropspace .cursor/skills/dropspace && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dropspace" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/dropspace into .cursor/skills/dropspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dropspace", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LeoYeAI/openclaw-master-skills.git --path skills/dropspace--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills dropspace --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dropspace .gemini/skills/dropspace && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dropspace" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/dropspace into .gemini/skills/dropspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dropspace", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LeoYeAI/openclaw-master-skills dropspaceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dropspace .github/skills/dropspace && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dropspace" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/dropspace into .github/skills/dropspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dropspace", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LeoYeAI/openclaw-master-skills dropspace --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LeoYeAI/openclaw-master-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dropspace .opencode/skills/dropspace && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dropspace" agent skill from https://github.com/LeoYeAI/openclaw-master-skills/tree/main/skills/dropspace into .opencode/skills/dropspace/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dropspace", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dropspaceCreate and publish social media launches via the Dropspace API.
Dropspace is an agent skill from LeoYeAI/openclaw-master-skills. Create and publish social media launches via the Dropspace API. Use when user wants to post to social media, create launches, manage personas, generate media, track post analytics, schedule content, or anything Dropspace-related. Supports 10 platforms (Twitter, LinkedIn, Reddit, Instagram, TikTok, Facebook, YouTube, Substack, Product Hunt, Hacker News) with per-post analytics and AI content generation.
Its SKILL.md is about 6.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `_meta.json`).
It sits in Writing & Content, covering Newsletters and Product launch strategy. It works with X (Twitter), Reddit, Instagram and LinkedIn. The repository describes itself as: 🧠 Curated collection of 1209+ best OpenClaw skills — weekly updated by MyClaw.ai. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5199b5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlnpxFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.dropspace.devdropspace.devoptional-url.comAlso links to:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
DROPSPACE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dropspace loads about 6.2k tokens when it runs. Until then it costs about 104 tokens; SKILL.md has 2,197 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LeoYeAI/openclaw-master-skills at commit e5199b5, republished under its MIT licence (© LeoYeAI). 2,197 words, ~6,226 tokens.
.claude/skills/dropspace/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Multi-platform social media publishing with AI-generated content, media generation, per-post analytics, and persona-based writing styles.
Set your API key:
export DROPSPACE_API_KEY="ds_live_..." # from dropspace.dev/settings/apiBase URL: https://api.dropspace.dev
Auth header: -H "Authorization: Bearer $DROPSPACE_API_KEY"
Also available as MCP server: npx @jclvsh/dropspace-mcp
Machine-readable docs: llms.txt | OpenAPI
Keys can be scoped: read, write, delete, publish, generate, admin.
| Use Case | Recommended Scopes |
|---|---|
| AI agents / MCP | read, write, generate |
| CI/CD publishing | read, publish |
| Monitoring / dashboards | read |
| Full access (admin tools) | all scopes |
Missing scope returns 403 with AUTH_002.
Destructive/sensitive API operations are automatically logged: delete launch/persona, publish, create/revoke key, create/delete/rotate webhook.
twitter, linkedin, reddit, instagram, tiktok, facebook, producthunt, hackernews, substack
Twitter 280/tweet (25,000 for X Premium) × 6 tweets (use thread array or content string), LinkedIn 3,000, Instagram 2,200, Reddit 3,000, Facebook 3,000, TikTok 4,000, Product Hunt 500, Hacker News 2,000, Substack 3,000
# User's OAuth connections
curl -s https://api.dropspace.dev/connections \
-H "Authorization: Bearer $DROPSPACE_API_KEY"
# Official Dropspace accounts available for posting
curl -s https://api.dropspace.dev/dropspace/status \
-H "Authorization: Bearer $DROPSPACE_API_KEY"Connections: OAuth-connected accounts with platform, username, account_type, is_active, expires_at. Managed via dashboard.
Dropspace status: Shows which official Dropspace accounts (facebook, linkedin, twitter, reddit, instagram, tiktok) are connected and available for the dropspace_platforms field.
curl -s -X POST https://api.dropspace.dev/launches \
-H "Authorization: Bearer $DROPSPACE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "launch title",
"product_description": "what to post about (1-2000 chars)",
"platforms": ["twitter", "linkedin", "reddit"],
"product_url": "https://optional-url.com",
"persona_id": "optional-uuid",
"scheduled_date": "optional ISO 8601 (≥15 min future)",
"publish": "optional boolean — immediately publish after creation (returns 202, mutually exclusive with scheduled_date, requires write+publish scopes)",
"wait": "optional boolean — wait for publishing to complete and return post URLs inline (requires publish: true, returns 200 with posting_status)",
"dropspace_platforms": ["twitter"],
"user_platform_accounts": {"twitter": "account-id"},
"media": [
{"source": "url", "url": "https://example.com/image.png"},
{"source": "base64", "data": "iVBOR...", "filename": "slide.png", "mime_type": "image/png"}
],
"media_attach_platforms": ["twitter", "linkedin"],
"media_mode": "images|video",
"generate_ai_videos": ["instagram", "tiktok"],
"custom_content": "single text for all platforms (validated against lowest char limit)",
"custom_content_reddit_title": "reddit title when using custom_content (max 300 chars)",
"platform_contents": {
"twitter": {"thread": ["tweet 1", "tweet 2", "tweet 3"]},
"reddit": {"title": "...", "content": "..."},
"linkedin": {"content": "custom post"},
"tiktok": {
"content": "caption text",
"tiktok_settings": {
"privacy_level": "PUBLIC_TO_EVERYONE",
"auto_add_music": true,
"allow_comments": true,
"allow_duet": true,
"allow_stitch": true
}
}
}
}'Content auto-generated via Claude from description + scraped URL + persona.
Content options (mutually exclusive):
platform_contents → per-platform custom content. Platforms without content get AI-generated. Reddit requires title. Product Hunt/HN support optional title (max 60/80 chars). Twitter supports thread (string[], each ≤280 chars or ≤25,000 for X Premium, max 6 tweets) instead of content — mutually exclusive with content.custom_content → string distributed to all platforms (validated against most restrictive char limit), or string[] to create a Twitter thread (each ≤280 chars or ≤25,000 for X Premium, max 6) that joins with double newlines for other platforms. Array form requires Twitter in platforms. Use custom_content_reddit_title if Reddit is included.user_platform_accounts key format:
"twitter", "reddit", "instagram", "tiktok""linkedin:personal" → personal profile"linkedin:organization:<org_id>" → company page"facebook:page:<page_id>"TikTok settings (platform_contents.tiktok.tiktok_settings):
privacy_level (REQUIRED before publishing): "PUBLIC_TO_EVERYONE", "FOLLOWER_OF_CREATOR", "MUTUAL_FOLLOW_FRIENDS", or "SELF_ONLY"allow_comments, allow_duet, allow_stitch, is_commercial, is_your_brand, is_branded_content, auto_add_musicis_branded_content: true) cannot use SELF_ONLY privacyInline media upload (media field): Upload images/videos inline via URL or base64 — server handles storage upload and populates media_assets in the response. Max 10 items (9 images + 1 video). Images: jpeg/png/webp/gif (5MB). Videos: mp4/mov (512MB via URL, 4MB via base64). media_attach_platforms and media_mode auto-inferred if not set. Mutually exclusive with media_assets.
Pre-uploaded media (media_assets field): For files already in storage — requires id, url, type, filename, size, mime_type. Mutually exclusive with media.
Media limits: Instagram/Facebook 10, Reddit 20, TikTok 35.
Inline publish (publish + wait fields):
publish: true → immediately publish after creation (returns 202). Mutually exclusive with scheduled_date. Requires both write and publish scopes.wait: true (requires publish: true) → wait for publishing to complete synchronously and return 200 with posting_status containing per-platform results and post URLs. Typical wait: 10-30s for text platforms, up to 60s+ with Instagram/TikTok.publish_error: { code, message } — retry via POST /launches/:id/publish.Publish validation (LAUNCH_007): When publishing fails validation, the response includes a details array listing all blocking issues. Checks include: char limits (all platforms), Reddit title ≤300 chars, Reddit video needs video+thumbnail, Reddit images need images, Instagram reel needs video, Instagram carousel needs ≥2 images, TikTok requires tiktok_settings.privacy_level, TikTok video needs video, TikTok photo needs images.
Instagram requires media. TikTok requires video or photos.
generate_ai_videos: subset of ["instagram", "tiktok"] — generates video scripts and starts async rendering.
media_mode: "images" or "video" (auto-inferred when using media).
Upload errors: UPLOAD_001 (unsupported type), UPLOAD_002 (too large), UPLOAD_003 (storage upload failed).
# Edit specific platform content:
curl -s -X PATCH https://api.dropspace.dev/launches/LAUNCH_ID \
-H "Authorization: Bearer $DROPSPACE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platform_contents": {"twitter": {"thread": ["tweet 1", "tweet 2", "tweet 3"]}}}'
# Or regenerate for specific platforms:
curl -s -X POST https://api.dropspace.dev/launches/LAUNCH_ID/generate-content \
-H "Authorization: Bearer $DROPSPACE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"platforms": ["twitter"], "generate_video_scripts": ["instagram"]}'curl -s -X POST https://api.dropspace.dev/launches/LAUNCH_ID/publish \
-H "Authorization: Bearer $DROPSPACE_API_KEY"Returns 202. Async — poll /status or use webhooks (launch.completed, launch.failed, launch.partial).
curl -s https://api.dropspace.dev/launches/LAUNCH_ID/status \
-H "Authorization: Bearer $DROPSPACE_API_KEY"Returns per-platform posting logs with status, post_url, post_id, error_message, error_code, attempt_count, posted_at.
curl -s https://api.dropspace.dev/launches/LAUNCH_ID/analytics \
-H "Authorization: Bearer $DROPSPACE_API_KEY"Returns per-platform metrics (live refresh — fetches from platform APIs when stale >5 min):
Response includes fetched_at, next_refresh_at (fetched_at + 5 min), and per-platform cache_status (fresh | refreshed | stale). Calling the endpoint triggers a refresh automatically when data is stale.
# Fetch analytics for up to 100 launches in one request
curl -s "https://api.dropspace.dev/launches/analytics?ids=uuid1,uuid2,uuid3" \
-H "Authorization: Bearer $DROPSPACE_API_KEY"Returns { data: [...], errors: [...] } with partial success support. Each item includes launch_id, platforms (with per-platform metrics + deletion info), and status. No fetched_at/next_refresh_at (those are single-launch only). Uses cached metrics — does not trigger live refresh from platforms.
Analytics responses include deletion detection fields per platform:
is_deleted (boolean) — true if the post was detected as deleted/removeddeleted_detected_at (ISO 8601) — when deletion was first detecteddeletion_reason — one of: not_found (404), gone (410), creator_deleted, moderation_removed, account_deleted, spam_filteredPlatform-specific detection:
REMOVED_BY_LINKEDIN_TAKEDOWNremoved_by_categoryDeletion is detected during the analytics cron refresh cycle (runs every 5 minutes for recently active posts).
Dropspace has built-in signup attribution via Next.js middleware → httpOnly cookie → profiles table.
How it works:
ds_attr cookie (30-day expiry)profiles.signup_referrer, signup_utm_source, signup_utm_medium, signup_utm_campaignAdd UTM params to links:
https://www.dropspace.dev?utm_source=tiktok&utm_medium=social&utm_campaign=slideshow_febQuery attribution data via Supabase:
SELECT signup_referrer, signup_utm_source, signup_utm_medium, signup_utm_campaign, created_at
FROM profiles
WHERE created_at >= now() - interval '7 days'
AND signup_utm_source IS NOT NULL;| Method | Endpoint | Description |
|---|---|---|
| GET | /launches | List all (paginated: page, page_size 1-100) |
| POST | /launches | Create with AI-generated content |
| GET | /launches/:id | Get single with posting_status |
| PATCH | /launches/:id | Update draft/scheduled/cancelled (name, content, schedule, status, media, dropspace_platforms, user_platform_accounts) |
| DELETE | /launches/:id | Delete (not running) |
| POST | /launches/:id/publish | Publish (async, 202) |
| POST | /launches/:id/retry | Retry failed platforms only |
| POST | /launches/:id/retry-content | Retry content generation for failed platforms (optional platforms filter) |
| POST | /launches/:id/generate-content | Regenerate AI content (optional platforms, generate_video_scripts) |
| GET | /launches/:id/status | Detailed posting logs |
| GET | /launches/:id/analytics | Per-post engagement metrics (live refresh, 5-min cache) |
| DELETE | /launches/:id/posts/:logId | Delete a single published post from platform (logId from /status) |
| DELETE | /launches/:id/posts | Delete all published posts for a launch |
Statuses in lifecycle order: draft → manual → trigger → scheduled → running → completed / partial / failed / cancelled
| Status | Cron auto-publishes? | Dashboard action buttons? | Can publish via API? | Use case |
|---|---|---|---|---|
draft | ❌ | ❌ | ✅ | Initial creation, not ready |
manual | ❌ | ✅ | ✅ | Ready, waiting for manual publish |
trigger | ❌ | ✅ | ✅ | Ready, waiting for explicit trigger |
scheduled | ✅ (when scheduled_date ≤ now) | ✅ | ✅ | Will auto-publish at scheduled time |
running | — | — | — | Currently publishing |
completed | — | — | — | All platforms succeeded |
partial | — | — | ✅ (retry) | Some platforms failed |
failed | — | — | ✅ (retry) | All platforms failed |
cancelled | — | — | ✅ (retry) | Manually cancelled |
Key rules:
scheduled launches with scheduled_date ≤ now. All other statuses require manual action.user_platform_accounts or dropspace_platforms + scheduled_date → scheduleduser_platform_accounts or dropspace_platforms + no scheduled_date → triggermanualmanual on a launch that has posting accounts. It will auto-transition to trigger.{"scheduled_date": null}. The server will auto-set status to trigger (since posting accounts exist). Do NOT set to draft (loses dashboard action buttons) or DELETE (soft-deletes, hard to recover).{"scheduled_date": null}. Status becomes trigger automatically.POST /launches/:id/publish triggers immediate publishing regardless of scheduled_date. Never call this on scheduled launches unless you want them published now.manual = no posting accounts configured (publish manually). trigger = has posting accounts but no schedule (publish on demand).PATCH fields: name (1-200 chars), scheduled_date (ISO 8601 | null to unschedule), status, platforms, product_description (max 10,000 chars), product_url (empty string to clear), persona_id (null to clear), platform_contents (deep-merged per platform — existing platforms preserved, within a platform included fields replace old values), user_platform_accounts, dropspace_platforms, media/media_assets (replaces entirely), media_attach_platforms, media_mode. All optional but ≥1 required. Running launch can only be cancelled. TikTok tiktok_settings is deep-merged (can update individual fields without overwriting others).
delete scope on API key (enabled)logId is the posting_log UUID from the /status endpointdeletedDELETE /launches/:id/posts/:logId or DELETE /launches/:id/posts| Method | Endpoint | Description |
|---|---|---|
| GET | /personas | List all (paginated) |
| POST | /personas | Create {"name": "..."} |
| GET | /personas/:id | Get with all writing samples + analysis |
| PATCH | /personas/:id | Update name/samples (custom, twitter, reddit, facebook, instagram, tiktok, linkedin — max 50 each) |
| DELETE | /personas/:id | Delete (not if used by launches) |
| POST | /personas/:id/analyze | Trigger AI analysis (async, 202). Optional: platforms, include_custom_samples |
Build statuses: idle, building, complete, error
| Method | Endpoint | Description |
|---|---|---|
| POST | /media/generate | Submit job |
| GET | /media/:jobId | Poll status (processing/completed/failed) |
Request body for /media/generate:
type: "image" | "video" | "script_video" (required)launch_id: UUID (required)platform: string (required for script_video: "instagram" or "tiktok")prompt: string 10-2000 chars (required for script_video)product_description: optional contextoptions.aspect_ratio: image supports all 10 ("1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9"); video/script_video only "16:9" and "9:16"options.duration_seconds: 4 | 6 | 8 (default 8, video only)reference_image_url: URL of a reference image for style/composition guidance (image type only, uses edit endpoint)script_video generates video from text script (requires platform and prompt). video generates from visual/cinematic prompt.
| Method | Endpoint | Description |
|---|---|---|
| GET | /connections | List OAuth platform connections (read-only, paginated) |
Returns: id, platform, entity_id, account_info (username, display_name), account_type, is_active, expires_at.
| Method | Endpoint | Description |
|---|---|---|
| GET | /dropspace/status | Check which official Dropspace accounts are connected |
Returns all 6 auto-post platforms (facebook, linkedin, twitter, reddit, instagram, tiktok) with connected status and account_name. Use connected_platforms to know valid values for dropspace_platforms field.
| Method | Endpoint | Description |
|---|---|---|
| GET | /keys | List all API keys |
| GET | /keys/me | Get current API key info (id, name, scopes) — no scope required |
| POST | /keys | Create new key (max 10). Body: {"name": "...", "scopes": ["read", "write", ...]} |
| PATCH | /keys/:id | Rename key. Body: {"name": "..."} |
| DELETE | /keys/:id | Revoke key permanently |
Key shown only once on creation. Keys begin with ds_live_.
Default scopes: read, write, publish, generate. Available: read, write, delete, publish, generate, admin.
| Method | Endpoint | Description |
|---|---|---|
| GET | /webhooks | List webhook endpoints |
| POST | /webhooks | Create endpoint (max 10). Body: {"url": "https://...", "events": [...]} |
| GET | /webhooks/:id | Get endpoint |
| PATCH | /webhooks/:id | Update url, events, or active status |
| DELETE | /webhooks/:id | Delete endpoint |
| POST | /webhooks/:id/rotate-secret | Rotate signing secret (new secret shown once) |
| GET | /webhooks/:id/deliveries | List delivery attempts (paginated) |
| Event | Fired when |
|---|---|
| launch.completed | All platforms posted successfully |
| launch.failed | All platforms failed |
| launch.partial | Some succeeded, some failed |
| post.deleted | Post detected as deleted from platform (deletion_reason: not_found, gone, creator_deleted, moderation_removed, account_deleted, spam_filtered) |
| media.ready | Image/video generation completed |
| persona.analyzed | AI persona analysis finished |
Payload envelope: { "id": "evt_...", "event": "...", "created_at": "...", "data": { ... } }
Headers: Content-Type, X-Dropspace-Signature (HMAC-SHA256), X-Dropspace-Event, X-Dropspace-Delivery (idempotency key).
Signature format: sha256=<hex-digest> of JSON body using webhook secret.
Retries: up to 3 with exponential backoff (QStash), 30s timeout. Return 2xx to acknowledge.
curl -s https://api.dropspace.dev/usage \
-H "Authorization: Bearer $DROPSPACE_API_KEY"Returns: plan name, billing period, limits (launches/month, AI images/month, AI videos/month, personas, analyses/persona, regenerations/launch), and features (can_connect_own_accounts, can_post_to_official_accounts, allowed_platforms). Limit/remaining can be "unlimited" (string) for higher-tier plans. Personas is a lifetime limit.
Autonomous agents can use the API without accounts or subscriptions via two payment protocols:
x402 (crypto): USDC on Base via X-PAYMENT header (base64-encoded proof)
MPP (Stripe): Card charge via Authorization: Payment <base64url> header
x402 and mpp challenge objects| Limit | Value |
|---|---|
| General API | 60 req/min per API key |
| Content generation | 30 req/min per user |
| Media generation | 5 req/min per user |
| Video concurrency | 2 per user / 20 global |
On 429: check Retry-After header (seconds). Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (Unix timestamp in milliseconds, not seconds).
| Code | HTTP | Meaning |
|---|---|---|
| AUTH_001 | 401 | Invalid/revoked key |
| AUTH_002 | 403 | Plan restriction |
| AUTH_003 | 403 | API key missing required scope |
| LAUNCH_001 | 404 | Launch not found |
| LAUNCH_002 | 429 | Launch/regen limit exceeded |
| LAUNCH_003 | 409 | Invalid status for operation |
| LAUNCH_004 | 409 | Not publishable / already publishing |
| LAUNCH_007 | 400 | Platform requirements not met |
| PERSONA_001 | 429 | Persona creation limit |
| PERSONA_002 | 404 | Persona not found |
| PERSONA_003 | 429 | Persona build limit |
| MEDIA_001 | 429 | Monthly media limit |
| UPLOAD_001 | 400 | Unsupported media type (allowed: jpeg, png, webp, gif, mp4, mov) |
| UPLOAD_002 | 400 | Media file too large (images: 5MB, videos: 512MB URL / 4MB base64) |
| UPLOAD_003 | 400 | Media storage upload failed |
| PAYMENT_001 | 402 | Payment required (free tier exceeded) |
| PAYMENT_002 | 402 | Payment verification failed |
| PAYMENT_003 | 402 | MPP credential verification failed |
| RATE_001 | 429 | Rate limited |
| SERVER_001 | 500 | Internal server error |
| SERVER_002 | 400 | Validation error |
| SERVER_003 | 404 | Resource not found |
| SERVER_004 | 405 | Method not allowed |
| SERVER_005 | 400 | Invalid input / business rule violation |
| SERVER_008 | 500 | Database error |
| SERVER_009 | 409 | Conflict (duplicate name, race condition, already building) |
For the full automation pipeline (self-improving content engine, DJ clipper, photo slideshows), see the companion skills and repo:
© LeoYeAI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/dropspace of LeoYeAI/openclaw-master-skills.
Open the folder on GitHubat commit e5199b5
Dropspace next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dropspace this skillLeoYeAI/openclaw-master-skills | 2.2k | — | ~6.2k | Automated safety check: Pass | MIT | |
| Schedule Socialindranilbanerjee/digital-marketing-pro | 855 | 1 repos | ~3.4k | Automated safety check: Pass | MIT | |
| Influencer Discoverytigerless-labs/influencer-discovery | 211 | — | ~2.5k | Automated safety check: Notes | None | |
| Website Browsing Skills Indexbrowsing-skills/browsing-skills | 116 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Transcript IntelligenceScrapeCreators/social-media-research-skills | 3.3k | — | ~943 | Automated safety check: Notes | MIT | |
| Headline Engineeringassafkip/kipi-system | 112 | — | ~1.1k | Automated safety check: Pass | MIT |
indranilbanerjee/digital-marketing-pro
Schedule social posts to Twitter/X, Instagram, LinkedIn, TikTok, YouTube, and Pinterest through connected platform MCPs — generating per-platform copy variations, hashtag mixes, media-spec…
tigerless-labs/influencer-discovery
Find the bloggers/creators who can help promote your work, capture their contact info, and append them to the target sheet in Google Sheets.
browsing-skills/browsing-skills
Umbrella skill for a library of website-specific browsing skills. Use when the user's request targets one of these specific websites: <!-- DOMAINS:START…
ScrapeCreators/social-media-research-skills
A skill your agent uses when the user wants to summarize, analyze, or repurpose transcripts from TikTok, Instagram, YouTube, Facebook, X/Twitter, LinkedIn, Rumble, or Reddit video posts.
assafkip/kipi-system
Platform-optimized headline and hook engineering for X (Twitter), Reddit, LinkedIn, Medium, Substack.
samber/cc-skills
Writes opening hooks and post titles for long-form articles in EN or FR — blog posts, Substack/Medium/dev.to, LinkedIn long-form, newsletters, essays.
LeoYeAI/openclaw-master-skills
Manages pipelines on a DevOps quality and efficiency platform through its OpenAPI: list workspaces and templates, create, update, run and cancel pipelines, and read run records.
LeoYeAI/openclaw-master-skills
Patches OpenClaw's Feishu extension so an edited document triggers an isolated agent session that reads the doc and replies inline, turning it into a live chat space.
LeoYeAI/openclaw-master-skills
Multi-context memory management system for OpenClaw agents with group-isolated storage, global shared memory, workspace organization, and group-specific skills isolation.
LeoYeAI/openclaw-master-skills
Runs a brand's AI-search visibility work end to end: diagnosing how AI platforms represent it, repositioning it, producing AI-optimized content and monitoring ongoing mentions.
LeoYeAI/openclaw-master-skills
Installs and authenticates the gws CLI, then automates Gmail, Drive, Sheets, Calendar, Docs, Chat and Tasks with ready-made recipes, persona bundles and security audits.
LeoYeAI/openclaw-master-skills
Runs four advisor roles, a fitness coach, nutritionist, data analyst and TCM practitioner, to build a health profile and track workouts, diet and wellness over time.
Create and publish social media launches via the Dropspace API. Dropspace is an agent skill from LeoYeAI/openclaw-master-skills. Create and publish social media launches via the Dropspace API.
Dropspace fits situations like: user wants to post to social media; create launches; manage personas; track post analytics.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a claude-code`. Or copy the skill folder (skills/dropspace in LeoYeAI/openclaw-master-skills) into .claude/skills/dropspace in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a codex`. Or copy the skill folder (skills/dropspace in LeoYeAI/openclaw-master-skills) into .agents/skills/dropspace in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LeoYeAI/openclaw-master-skills --skill dropspace -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dropspace, .gemini/skills/dropspace, .github/skills/dropspace and .opencode/skills/dropspace in your project.
Going by SKILL.md and its folder, Dropspace needs the command-line tools its instructions call (curl and npx) and credentials named DROPSPACE_API_KEY. Our summary lists: Node.js; A credential in DROPSPACE_API_KEY.
SKILL.md names 4 domains. In commands or code: api.dropspace.dev, dropspace.dev and optional-url.com; the agent is likely to contact these when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Dropspace is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 6.2k tokens (SKILL.md is roughly 25k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Dropspace: Schedule Social (indranilbanerjee/digital-marketing-pro, 855 stars), Influencer Discovery (tigerless-labs/influencer-discovery, 211 stars), Website Browsing Skills Index (browsing-skills/browsing-skills, 116 stars) and Transcript Intelligence (ScrapeCreators/social-media-research-skills, 3.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LeoYeAI (a GitHub user) maintains it in LeoYeAI/openclaw-master-skills, which has 2,159 GitHub stars. The repository holds 972 skills in this directory. The repository was last updated on July 20, 2026.
Source: LeoYeAI/openclaw-master-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.