API Documentation
Everything you need to integrate with the Clawy API. Submit prompts, manage your content, and automate your workflow.
Contents
CLI
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
Authentication
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 |
Authentication
All API requests require a valid API key passed in the Authorization header.
Getting an API Key
- Log in to your Clawy account
- Go to Settings → API Keys (or click here)
- Click Create Key, give it a name
- Copy your API key (you can reveal it later if needed)
Authorization: Bearer clw_your_api_key_here
Rate Limits
API requests are rate-limited to ensure fair usage.
60
requests per minute (authenticated)
20
requests per minute (unauthenticated)
Rate Limit Headers
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 |
Error Codes
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"]
}
Prompt Templates
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.
Query Parameters
| 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 |
Example
curl -X GET "https://clawy.io/api/v1/prompt_templates?visibility=private" \ -H "Authorization: Bearer clw_your_api_key"
CLI Equivalent
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.
Request Body
| 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
Example
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.
CLI Equivalent
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"
CLI Equivalent
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"
}'
CLI Equivalent
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"
CLI Equivalent
clawy prompts delete abc123
Feedback / Ideas
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"
CLI Equivalent
clawy feedback list -o json clawy feedback list
/api/v1/ideas
Submit feedback. Works with any API key permission level (read, manage, or admin).
Request Body
| 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"
}'
CLI Equivalent
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.
API Keys
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.
Referrals
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.
CLI
clawy referrals list [--status pending] clawy referrals create [--count 5]
Response Schema
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"
}
Template Variables
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.