Skip to main content

Becoming a Seller

Prerequisites

Before publishing, you need:
  1. A display name on your profile. Set it at agentpowers.ai/dashboard/settings/profile or via the API.
  2. Stripe Connect (for paid skills only). Complete onboarding at agentpowers.ai/dashboard/become-seller. Free skills can be published without Stripe.

Payout Onboarding

Before receiving payouts, complete the onboarding process via the dashboard or API:
Go to agentpowers.ai/dashboard/become-seller and click “Connect Stripe” to start the onboarding flow.

Check Seller Status

To check whether the current user has completed seller onboarding:
curl -H "Authorization: Bearer TOKEN" \
  "https://api.agentpowers.ai/v1/sellers/status"
Returns is_seller (true if onboarding is complete), charges_enabled, and payouts_enabled. This is a read-only endpoint with no side effects.

Check Earnings

View your earnings in the Seller Dashboard or via the API:
curl -H "Authorization: Bearer TOKEN" \
  "https://api.agentpowers.ai/v1/sellers/earnings"
Returns total earnings and sale count.

Setting Up Your Profile

Display Name Requirement

Before publishing, you must set a display name on your profile. Go to Dashboard > Settings > Profile to set it, or use the API:
curl -X PATCH "https://api.agentpowers.ai/v1/users/profile" \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"display_name": "My Name"}'
Your display name is automatically slugified into a URL-safe profile path (e.g. "John Doe" -> /sellers/john-doe). If your chosen display name conflicts with an existing slug, a number suffix is appended automatically (john-doe-2). You can also update your bio and social links from the profile settings page.

Publishing a Skill

1. Prepare Your Skill

Create a .skill, .md, or .agent file with YAML frontmatter:
---
title: My Awesome Skill
description: A skill that does amazing things
category: development
---

# My Awesome Skill

Instructions for Claude when using this skill...
For agents, include tools and/or model in the frontmatter:
---
name: Code Reviewer
description: An autonomous code review agent
tools: Read, Glob, Grep, Bash
model: sonnet
---
You can also prepare a directory with multiple files and ZIP it for upload.
Maximum upload size is 10 MB. Most skills are well under 500 KB.

2. Publish

  1. Go to agentpowers.ai/dashboard/publish
  2. Drop your .skill, .agent, .md, or .zip file
  3. The form auto-fills from your frontmatter (title, description, category, type)
  4. Review the details, set a price if desired, and click Publish
The file type determines whether it’s published as a skill or agent:
  • .skill files are published as skills
  • .agent files are published as agents
  • .md files with tools or model in frontmatter are published as agents, otherwise as skills
  • .zip files require you to select the type manually

3. Publishing Updates

Already published? ap publish detects the existing skill and creates a new version:
ap publish ./my-skill --bump patch     # v1.0.0 → v1.0.1 (default)
ap publish ./my-skill --bump minor     # v1.0.0 → v1.1.0
ap publish ./my-skill --bump major     # v1.0.0 → v2.0.0
Or set an explicit version:
ap publish ./my-skill --version 2.0.0
Add a changelog message:
ap publish ./my-skill --bump minor --changelog "Added dark mode support"
Change the price during an update:
ap publish ./my-skill --bump patch --price 9.99
Omitting --price on updates preserves the existing price. Only pass --price when you want to change it. To switch a paid skill to free, explicitly pass --price 0. How it works:
  1. The CLI detects the existing skill (POST returns 409)
  2. Sends a PATCH /v1/skills/{slug} to create a new version
  3. Uploads the updated package
  4. The new version enters the security pipeline while the previous version stays live
One pending version at a time. If a version is still awaiting security review, you cannot publish another until it completes. You can also update metadata (title, description, category) during re-publish — just change the frontmatter and run ap publish again.

4. Unpublishing

Temporarily remove a skill from the marketplace:
ap unpublish my-skill
Archived skills are hidden from search and cannot be purchased, but existing buyers retain download access. To re-list:
ap republish my-skill

5. Security Review

Every submission passes through the security pipeline automatically:
  1. Static validation — File type checks, dangerous pattern scanning
  2. Malware detection — Scanned for known malware
  3. AI security review — Semantic analysis for injection, auth flaws, data exposure
  4. Agent-specific checks (for agents) — Tool access audit, instruction analysis
Outcomes:
  • Pass — Listed immediately
  • Warn — Listed with a warning badge
  • Block — Rejected with detailed findings

Pricing

Before listing a paid skill or agent, you must complete Stripe Connect onboarding from your Seller Dashboard. Free skills and agents can be published at any time without Stripe setup.
  • Skills are free by default (omit --price or use --price 0)
  • Set a price with ap publish ./my-skill --price 5.00 (in dollars)
  • Minimum price for paid skills is $5.00
  • AgentPowers takes a 15% platform fee; you receive 85% via payouts

Seller Tiers and Price Caps

New sellers start at Tier 0 with a $25 maximum price per skill. As you build a verified sales history, your tier upgrades automatically:
TierRequirementsMax PricePayout Delay
Tier 0 (New)Default$2514 days
Tier 1 (Established)5+ sales AND 30+ days$1007 days
Tier 2 (Trusted)20+ sales AND 90+ days$1,0002 days
Your current tier, payout delay, and price limit are returned in the GET /v1/sellers/earnings response.
Payout delays protect both buyers and sellers. As your account builds trust, delays decrease automatically.

Seller Dashboard

Track your sales performance with dedicated seller endpoints (all require authentication).

Your Skills

View all your published skills with revenue data:
curl -H "Authorization: Bearer TOKEN" \
  "https://api.agentpowers.ai/v1/sellers/skills"

Recent Sales

See your most recent sales with buyer information:
curl -H "Authorization: Bearer TOKEN" \
  "https://api.agentpowers.ai/v1/sellers/sales?limit=20"

Revenue Analytics

Get daily revenue timeseries (default 30 days, range 1-365):
curl -H "Authorization: Bearer TOKEN" \
  "https://api.agentpowers.ai/v1/sellers/revenue?days=30"
Per-skill revenue breakdown:
curl -H "Authorization: Bearer TOKEN" \
  "https://api.agentpowers.ai/v1/sellers/revenue/breakdown"

Activity Feed

Combined feed of purchases and installs:
curl -H "Authorization: Bearer TOKEN" \
  "https://api.agentpowers.ai/v1/sellers/activity?limit=20"

Public Seller Profile

Your public profile is available at:
curl "https://api.agentpowers.ai/v1/sellers/my-name"
curl "https://api.agentpowers.ai/v1/sellers/my-name/skills"
These are public endpoints — no authentication required for viewers.

Reviews on Your Skills

Buyers can leave 1-5 star reviews on your skills. Review ratings are displayed in skill detail views (rating_average and rating_count fields on GET /v1/detail/{slug}). You can view reviews on any of your skills:
curl "https://api.agentpowers.ai/v1/skills/my-skill/reviews"
Self-reviews are prevented — you cannot review your own skills.

ClawHub Claims

If you authored a skill on ClawHub (the free marketplace), you can claim ownership:
ap claim my-clawhub-skill
Claims are verified against your GitHub account. Most claims are processed automatically.

Admin API Reference

All endpoints in this section require admin privileges. Requests from non-admin accounts return 403 Forbidden.
These features are API-only. There is no frontend dashboard for them; use curl or a REST client.

API-Only Admin Features

The following capabilities are available exclusively through the API:
  • Claims management — Review and resolve ClawHub ownership claims
  • Abuse flags — Inspect and action flagged accounts or skills
  • Category CRUD — Create, update, and delete marketplace categories
  • Refund processing — Initiate refunds on completed purchases
  • Pending deletion management — Review accounts scheduled for deletion and cancel if needed
  • Marketing email — Send bulk opt-in email to users

Marketing Email

Send a marketing email to all opted-in users:
curl -X POST "https://api.agentpowers.ai/v1/admin/marketing-email" \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "subject": "New skills available this week",
    "body": "Check out the latest additions to the marketplace..."
  }'
Response:
{
  "sent": 1042,
  "skipped": 87
}
sent is the count of emails dispatched. skipped is the count of users who have opted out of marketing email.

Refund Processing

Initiate a refund on a completed purchase by its ID:
curl -X POST "https://api.agentpowers.ai/v1/admin/refunds/{purchase_id}" \
  -H "Authorization: Bearer ADMIN_TOKEN"
Response:
{
  "refund_id": "re_1abc...",
  "status": "succeeded",
  "amount_cents": 500
}
The Stripe charge.refunded webhook fires automatically and handles the DB update, license revocation, and buyer notification email. The admin endpoint only initiates the refund.

Pending Deletions

List accounts that have requested deletion and are awaiting the retention window:
curl -H "Authorization: Bearer ADMIN_TOKEN" \
  "https://api.agentpowers.ai/v1/admin/pending-deletions"
Cancel a scheduled deletion (e.g., after a fraud review or user appeal):
curl -X POST "https://api.agentpowers.ai/v1/admin/cancel-deletion/{user_id}" \
  -H "Authorization: Bearer ADMIN_TOKEN"

Category Management

Create a new category:
curl -X POST "https://api.agentpowers.ai/v1/admin/categories" \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Finance",
    "description": "Skills for financial analysis and reporting",
    "icon": "chart-line"
  }'
Update an existing category (partial update — only supply fields to change):
curl -X PUT "https://api.agentpowers.ai/v1/admin/categories/{slug}" \
  -H "Authorization: Bearer ADMIN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"description": "Updated description"}'
Delete a category (blocked if any non-archived skills reference it):
curl -X DELETE "https://api.agentpowers.ai/v1/admin/categories/{slug}" \
  -H "Authorization: Bearer ADMIN_TOKEN"
Category slugs are immutable after creation. The id field is auto-generated as cat-{slug} (e.g., cat-finance).

Need Help?

Email Support

Reach us at [email protected] for account issues, billing questions, or technical help.

Discord Community

Join the AgentPowers Discord to get help from the team and other creators in real time.