Everything you need to integrate with the Clawy API. Submit prompts, manage your content, and automate your workflow.
The Clawy CLI lets you manage instances, submit prompts, and check status from your terminal.
curl -fsSL https://clawy.io/install.sh | bash
Copy this into your Clawy's instructions so it knows how to use the CLI on your behalf.
The Clawy CLI is already installed. Whenever I ask you to submit feedback, create a prompt, or manage my instances, use the `clawy` command. Full CLI documentation: https://clawy.io/api-docs Examples: - clawy prompts create --title "..." --content "..." --category developer - clawy feedback submit --title "..." --body "..." - clawy instance list
After installing, authenticate with your API key:
clawy login
Create an API key at Settings → API Keys.
| clawy instance list | List your instances |
| clawy instance show <name> | Show instance details |
| clawy status | Check system status |
| clawy prompts list | List your prompt templates |
| clawy prompts show <id> | Show prompt details |
| clawy prompts create --title "..." --content "..." | Create a prompt template |
| clawy prompts delete <id> | Delete a prompt template |
| clawy feedback submit --title "..." --body "..." | Submit feedback |
| clawy feedback list | List your feedback |
| clawy update | Update CLI to latest version |
| clawy help-json | Machine-readable command reference |
| clawy --help | See all commands |
All API requests require a valid API key passed in the Authorization header.
Authorization: Bearer clw_your_api_key_here
API requests are rate-limited to ensure fair usage.
60
requests per minute (authenticated)
20
requests per minute (unauthenticated)
All API responses include these headers:
| X-RateLimit-Limit | Maximum requests allowed per window |
| X-RateLimit-Remaining | Requests remaining in current window |
| X-RateLimit-Reset | Unix timestamp when the window resets |
The API returns standard HTTP status codes with JSON error details.
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created successfully |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not found - Resource doesn't exist |
| 422 | Validation failed - Check the details field |
| 429 | Rate limit exceeded - Wait and retry |
{
"error": "Validation failed",
"details": ["Title can't be blank", "Content is too short"]
}
Create and manage prompt templates via the API. Prompts created via API default to private visibility.
/api/v1/prompt_templates
List your prompt templates. Supports filtering and pagination.
| page | Page number (default: 1) |
| per_page | Items per page (default: 25, max: 100) |
| visibility | Filter: private, shared, public, purchasable |
| category | Filter: productivity, business, developer, creative, communication, starter-kit |
| created_via | Filter: web, api |
curl -X GET "https://clawy.io/api/v1/prompt_templates?visibility=private" \ -H "Authorization: Bearer clw_your_api_key"
clawy prompts list -o json clawy prompts list --visibility private
/api/v1/prompt_templates
Create a new prompt template. Prompts created via API default to private visibility.
| title * | string (max 100 chars) |
| description * | string (max 500 chars) |
| content * | string - The actual prompt text (max 10,000 chars). Use {{VARIABLE_NAME}} for fillable template variables (e.g., {{APP_NAME}}). Variables are auto-detected and returned in template_variables. |
| category * | productivity | business | developer | creative | communication | starter-kit |
| difficulty | easy | medium | hard (default: easy) |
| visibility | private | public (default: private for API) |
| tags | array of strings |
| estimated_build_time | integer (minutes, default: 2) |
| screenshots | array of base64 data URLs (max 5, each max 5MB, PNG/JPEG/WebP) |
* Required field
curl -X POST "https://clawy.io/api/v1/prompt_templates" \
-H "Authorization: Bearer clw_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "App Builder",
"description": "Builds a customizable app with your chosen name and theme",
"content": "Build an app called {{APP_NAME}} using a {{COLOR_THEME}} color theme. Add {{NUM_PAGES}} pages.",
"category": "developer",
"difficulty": "medium",
"tags": ["app", "builder", "customizable"]
}'
The {{APP_NAME}}, {{COLOR_THEME}}, and {{NUM_PAGES}} variables will be auto-detected. Users deploying this prompt will be asked to fill them in first.
clawy prompts create --title "App Builder" --content "Build an app called ..." --category developer clawy prompts create --title "App Builder" --file prompt.txt --tags app,builder
/api/v1/prompt_templates/:id
Get details of a specific prompt template you own.
curl -X GET "https://clawy.io/api/v1/prompt_templates/abc123" \ -H "Authorization: Bearer clw_your_api_key"
clawy prompts show abc123
/api/v1/prompt_templates/:id
Update an existing prompt template. Only include fields you want to change.
curl -X PUT "https://clawy.io/api/v1/prompt_templates/abc123" \
-H "Authorization: Bearer clw_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated Title",
"visibility": "public"
}'
clawy prompts update abc123 --title "Updated Title" --visibility public clawy prompts update abc123 --content-file new-prompt.txt
/api/v1/prompt_templates/:id
Delete a prompt template you own.
curl -X DELETE "https://clawy.io/api/v1/prompt_templates/abc123" \ -H "Authorization: Bearer clw_your_api_key"
clawy prompts delete abc123
Submit and retrieve feedback programmatically. Any API key (including read-only) can submit feedback.
/api/v1/ideas
List your submitted feedback. Supports filtering by status, feedback_type, and priority.
curl -X GET "https://clawy.io/api/v1/ideas?feedback_type=bug_report" \ -H "Authorization: Bearer clw_your_api_key"
clawy feedback list -o json clawy feedback list
/api/v1/ideas
Submit feedback. Works with any API key permission level (read, manage, or admin).
| title * | string — Short summary |
| body * | string — Detailed description |
| feedback_type | feature_request (default) | bug_report |
| priority | low | medium (default) | high |
* Required field
curl -X POST "https://clawy.io/api/v1/ideas" \
-H "Authorization: Bearer clw_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"title": "Add dark mode toggle",
"body": "It would be great to have a dark mode toggle in the dashboard",
"feedback_type": "feature_request",
"priority": "medium"
}'
clawy feedback submit --title "Add dark mode toggle" --body "It would be great to have a dark mode toggle in the dashboard"
/api/v1/ideas/:id
Get details of a specific feedback item you submitted.
Manage API keys programmatically (requires admin permission).
Most users should manage API keys through the web interface at Settings → API Keys.
/api/v1/api_keys
List all your API keys. Requires admin permission.
Generate invite codes and track signups from your referrals. Requires manage permission + referrals scope + advisor (or higher) role.
/api/v1/referrals
List your referral invitations with stats. Filter by status with ?status=pending|accepted|expired.
Response includes stats (total, accepted, pending, expired) and paginated referrals array.
/api/v1/referrals
Generate anonymous invite codes. Codes expire in 7 days.
{ "count": 5 }
Advisors: max 5 per request. Marketers/Super Admins: max 50. Response includes invite URLs.
clawy referrals list [--status pending] clawy referrals create [--count 5]
All prompt template responses follow this structure.
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Email Draft Assistant",
"description": "Helps draft professional emails quickly",
"content": "Build an app called {{APP_NAME}} with {{COLOR_THEME}} theme...",
"template_variables": ["APP_NAME", "COLOR_THEME"],
"has_variables": true,
"category": "productivity",
"difficulty": "easy",
"visibility": "private",
"created_via": "api",
"tags": ["email", "writing"],
"estimated_build_time": 2,
"times_built": 0,
"avg_rating": null,
"featured": false,
"icon": null,
"price_cents": null,
"screenshot_count": 0,
"screenshots": [],
"created_at": "2026-02-23T12:00:00Z",
"updated_at": "2026-02-23T12:00:00Z"
}
When content contains {{VARIABLE_NAME}} patterns (uppercase letters, digits, underscores — must start with a letter), they are auto-detected and returned in template_variables (detailed view) and has_variables (list view). No explicit variable definition is needed — just use {{...}} in your prompt text.