skills/creatorsignal-api/SKILL.md
Interact with the CreatorSignal API: submit video ideas for AI validation, poll for scored Go/Refine/Kill verdicts, manage channels and webhooks, and check quota. Use this skill whenever the user mentions CreatorSignal API, video idea validation, cs_live_ tokens, validation polling, webhook endpoints, or programmatic idea submission.
npx skillsauth add dgalarza/agent-skills creatorsignal-apiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
API keys use the format cs_live_<prefix>_<secret>. Pass as a Bearer token:
curl -s https://app.creatorsignal.io/api/v1/me \
-H "Authorization: Bearer $CS_API_KEY"
Before any mutation, verify the key works:
curl -s -o /dev/null -w "%{http_code}" https://app.creatorsignal.io/api/v1/me \
-H "Authorization: Bearer $CS_API_KEY"
# 200 = valid, 401 = invalid/revoked/expired
Keys are created from Settings > API Keys in your CreatorSignal account. The full key is shown once at creation — store it securely.
All endpoints live under https://app.creatorsignal.io/api/v1/.
# Check quota
curl -s https://app.creatorsignal.io/api/v1/me \
-H "Authorization: Bearer $CS_API_KEY" | jq '.quota'
# List channels
curl -s https://app.creatorsignal.io/api/v1/channels \
-H "Authorization: Bearer $CS_API_KEY" | jq '.channels[] | {id, name}'
# Submit an idea
curl -s -X POST https://app.creatorsignal.io/api/v1/ideas \
-H "Authorization: Bearer $CS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"idea": {"title": "Topic here", "category": "engineering", "channel_id": 1}}' | jq '.idea.id'
# Poll validation status
curl -s -w "\n%{http_code}" https://app.creatorsignal.io/api/v1/ideas/123/validation \
-H "Authorization: Bearer $CS_API_KEY"
# List ideas filtered by status
curl -s "https://app.creatorsignal.io/api/v1/ideas?status=validated&per_page=10" \
-H "Authorization: Bearer $CS_API_KEY" | jq '.ideas[] | {id, title, verdict: .validation.verdict, score: .validation.score}'
The end-to-end flow for validating an idea:
GET /api/v1/me returns 200quota.remaining > 0GET /api/v1/channels to find the target channel_idPOST /api/v1/ideas with title, category, channel_idGET /api/v1/ideas/{id}/validation
202 = in progress, sleep for Retry-After seconds (default 10)200 = done (check validation.status for complete or failed)For polling, use the helper script: bash scripts/poll-validation.sh <idea_id>
| HTTP Status | Code | Meaning | Recovery |
|-------------|------|---------|----------|
| 401 | unauthorized | Missing or invalid API key | Check $CS_API_KEY is set and valid |
| 401 | key_revoked | Key was revoked | Create a new key in Settings > API Keys |
| 401 | key_expired | Key has expired | Create a new key in Settings > API Keys |
| 402 | quota_exhausted | No validations remaining | Wait for quota reset (rolling 30-day window) or upgrade plan |
| 404 | not_found | Resource doesn't exist or wrong user | Verify the ID and that it belongs to the authenticated user |
| 422 | validation_error | Invalid request body | Check error.details for field-level errors |
| 429 | rate_limited | Too many requests | Wait Retry-After seconds before retrying |
Error responses use two shapes:
{"error": {"message": "...", "status": 404}}{"error": {"code": "...", "message": "...", "details": {...}}}For full endpoint specs, request/response schemas, and parameter details, see the API docs at app.creatorsignal.io/api.
For additional reference within this skill:
| Topic | Reference | |-------|-----------| | Validation state machine and polling | references/api-spec-guide.md | | Webhook setup, signing, event types | references/webhook-patterns.md |
GET /api/v1/me and confirm 200 before creating ideas or webhook endpoints.quota.remaining first.Retry-After headers — both 202 (polling) and 429 (rate limit) include this header. Never use a fixed sleep.cs_live_<prefix>_*** in output. The key is a secret.jq for JSON parsing — never parse JSON with grep/sed/awk.-H "Content-Type: application/json" with request bodies.webhook_url field → confirm 201development
Use this skill when writing, rewriting, or reviewing feedback comments so they follow the Conventional Comments format.
tools
Interact with the Buttondown newsletter API to manage tags, automations, subscribers, and emails. Use this skill whenever the user mentions Buttondown, newsletter tags, newsletter automations, email subscribers, or wants to manage any aspect of their Buttondown newsletter -- even if they just say 'my newsletter' without explicitly naming Buttondown.
development
This skill should be used when interfacing with the Buffer social media scheduling API. It handles scheduling social media posts, checking the queue, listing channels, creating ideas, and managing Buffer accounts.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.