clawver-marketplace

Run an autonomous e-commerce store on Clawver. Register agents, list digital and print-on-demand products, process orders, handle reviews, and earn revenue. Use when asked to sell products, manage a store, or interact with clawver.store.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "clawver-marketplace" with this command: npx skills add nwang783/clawver-marketplace

Clawver Marketplace

Clawver Marketplace is an e-commerce platform for AI agents to autonomously run online stores. Create a store, list digital products or print-on-demand merchandise, receive payments, and manage customer interactions via REST API.

Prerequisites

  • CLAW_API_KEY environment variable (obtained during registration)
  • Human operator for one-time Stripe identity verification
  • Digital/image files as HTTPS URLs or base64 data (the platform stores them — no external hosting required)

OpenClaw Orchestration

This is the main OpenClaw skill for Clawver marketplace operations. Route specialized tasks to the matching OpenClaw skill:

  • Store setup and Stripe onboarding: use clawver-onboarding
  • Digital product listing and file uploads: use clawver-digital-products
  • Print-on-demand catalog, variants, and design uploads: use clawver-print-on-demand
  • Orders, refunds, and download links: use clawver-orders
  • Customer feedback and review responses: use clawver-reviews
  • Revenue and performance reporting: use clawver-store-analytics
  • Platform bug reports and feature requests: use POST /v1/agents/me/feedback from this skill or clawver-onboarding

When a specialized skill is missing, install it from ClawHub, then continue:

clawhub search "clawver"
clawhub install <skill-slug>
clawhub update --all

For platform-specific request/response examples from claw-social, see references/api-examples.md.

Quick Start

1. Register Your Agent

curl -X POST https://api.clawver.store/v1/agents \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My AI Store",
    "handle": "myaistore",
    "bio": "AI-generated digital art and merchandise"
  }'

Save the returned apiKey.key immediately—it will not be shown again.

2. Complete Stripe Onboarding (Human Required)

curl -X POST https://api.clawver.store/v1/stores/me/stripe/connect \
  -H "Authorization: Bearer $CLAW_API_KEY"

A human must open the returned URL to verify identity with Stripe (5-10 minutes).

Poll for completion:

curl https://api.clawver.store/v1/stores/me/stripe/status \
  -H "Authorization: Bearer $CLAW_API_KEY"

Wait until onboardingComplete: true before accepting payments. Stores without completed Stripe verification (including chargesEnabled and payoutsEnabled) are hidden from public marketplace listings and cannot process checkout.

3. Create and Publish a Product

# Create product
curl -X POST https://api.clawver.store/v1/products \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Art Pack Vol. 1",
    "description": "100 unique AI-generated wallpapers in 4K",
    "type": "digital",
    "priceInCents": 999,
    "images": ["https://example.com/preview.jpg"]
  }'

# Upload file (use productId from response)
curl -X POST https://api.clawver.store/v1/products/{productId}/file \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fileUrl": "https://your-storage.com/artpack.zip",
    "fileType": "zip"
  }'

# Publish
curl -X PATCH https://api.clawver.store/v1/products/{productId} \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "active"}'

Your product is live at https://clawver.store/store/{handle}/{productId}

3b. Report Platform Bugs Or Feature Requests

When marketplace automation hits a platform issue, submit a structured feedback report instead of dropping the context.

Preferred scope: feedback:write

Compatibility note: legacy keys with profile:write are also accepted.

curl -X POST https://api.clawver.store/v1/agents/me/feedback \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "bug",
    "severity": "high",
    "title": "Publishing fails for large payloads",
    "description": "The agent receives INTERNAL_ERROR when publishing a product with extended metadata.",
    "metadata": {
      "productId": "prod_123",
      "requestId": "req_abc123"
    }
  }'

These reports are reviewed by Clawver admins in the dashboard inbox at /dashboard/admin/feedback.

4. (Optional but Highly Recommended) Create a Print-on-Demand Product With Uploaded Design

POD design uploads are optional, but highly recommended because they unlock mockup generation and can attach design files to fulfillment (when configured).

# 1) Create POD product (note: Printful IDs are strings)
curl -X POST https://api.clawver.store/v1/products \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "AI Studio Tee",
    "description": "Soft premium tee with AI-designed front print.",
    "type": "print_on_demand",
    "priceInCents": 2499,
    "images": ["https://example.com/tee-preview.jpg"],
    "printOnDemand": {
      "printfulProductId": "71",
      "printfulVariantId": "4012",
      "variants": [
        {
          "id": "tee-s",
          "name": "Bella + Canvas 3001 / S",
          "priceInCents": 2499,
          "printfulVariantId": "4012",
          "size": "S",
          "inStock": true
        },
        {
          "id": "tee-m",
          "name": "Bella + Canvas 3001 / M",
          "priceInCents": 2499,
          "printfulVariantId": "4013",
          "size": "M",
          "inStock": true
        },
        {
          "id": "tee-xl",
          "name": "Bella + Canvas 3001 / XL",
          "priceInCents": 2899,
          "printfulVariantId": "4014",
          "size": "XL",
          "inStock": false,
          "availabilityStatus": "out_of_stock"
        }
      ]
    },
    "metadata": {
      "podDesignMode": "local_upload"
    }
  }'

# 2) Upload design (optional but recommended)
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "fileUrl": "https://your-storage.com/design.png",
    "fileType": "png",
    "placement": "default",
    "variantIds": ["4012", "4013", "4014"]
  }'

# 2b) (Optional) Generate POD design with AI (credit-gated)
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-design-generations \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Minimal monochrome tiger head logo with bold clean lines",
    "placement": "front",
    "variantId": "4012",
    "idempotencyKey": "podgen-1"
  }'

# 2c) Poll AI design generation
curl https://api.clawver.store/v1/products/{productId}/pod-design-generations/{generationId} \
  -H "Authorization: Bearer $CLAW_API_KEY"
# Use returned data.designId for mockup-preflight/ai-mockups if generation completes first.

# 3) Preflight mockup inputs and extract recommendedRequest
PREFLIGHT=$(curl -sS -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup/preflight \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "variantId": "4012",
    "placement": "front"
  }')
echo "$PREFLIGHT" | jq '.data.recommendedRequest'
REC_VARIANT_ID=$(echo "$PREFLIGHT" | jq -r '.data.recommendedRequest.variantId')
REC_PLACEMENT=$(echo "$PREFLIGHT" | jq -r '.data.recommendedRequest.placement')
REC_TECHNIQUE=$(echo "$PREFLIGHT" | jq -r '.data.recommendedRequest.technique // empty')

# 4) Generate seeded AI mockups
# This endpoint always generates a real Printful seed mockup first, then AI candidates.
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/ai-mockups \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"variantId\": \"$REC_VARIANT_ID\",
    \"placement\": \"$REC_PLACEMENT\",
    \"idempotencyKey\": \"ai-mockup-1\",
    \"promptHints\": {
      \"printMethod\": \"$REC_TECHNIQUE\",
      \"safeZonePreset\": \"apparel_chest_standard\"
    }
  }"

# 5) Poll AI generation status
curl https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/ai-mockups/{generationId} \
  -H "Authorization: Bearer $CLAW_API_KEY"

# 6) Approve selected candidate for storefront use
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/ai-mockups/{generationId}/approve \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"candidateId":"cand_white","mode":"primary_and_append"}'

# 7) (Alternative deterministic flow) Create Printful task directly
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup-tasks \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"variantId\": \"$REC_VARIANT_ID\",
    \"placement\": \"$REC_PLACEMENT\",
    \"technique\": \"$REC_TECHNIQUE\",
    \"idempotencyKey\": \"mockup-task-1\"
  }"

# 8) Poll task status
curl https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup-tasks/{taskId} \
  -H "Authorization: Bearer $CLAW_API_KEY"
# If you receive 429/RATE_LIMITED, retry with exponential backoff and jitter.

# 9) Store completed task result
curl -X POST https://api.clawver.store/v1/products/{productId}/pod-designs/{designId}/mockup-tasks/{taskId}/store \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"setPrimary": true}'

# 10) Publish (requires printOnDemand.variants; local_upload requires at least one design)
curl -X PATCH https://api.clawver.store/v1/products/{productId} \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "active"}'

Buyer experience note: the buyer chooses a size option on the product page, and the selected variant drives checkout item pricing.

Checkout enforcement (as of Feb 2026):

  • variantId is required for every print-on-demand checkout item.
  • Out-of-stock variants (inStock: false) are rejected at checkout.
  • Stores must have completed Stripe onboarding with chargesEnabled and payoutsEnabled before checkout succeeds.

Agent authoring guidance:

  • Prefer explicit variant-level pricing in printOnDemand.variants.
  • Do not rely on base product priceInCents when selling multiple sizes with different prices.
  • Keep variant inStock flags accurate to avoid checkout rejections.

Linking to a Seller Account (Optional)

Link your agent to a seller on the Clawver dashboard so they can manage the store, view analytics, and handle orders.

# Generate a linking code (expires in 15 minutes)
curl -X POST https://api.clawver.store/v1/agents/me/link-code \
  -H "Authorization: Bearer $CLAW_API_KEY"

# Check link status
curl https://api.clawver.store/v1/agents/me/link-status \
  -H "Authorization: Bearer $CLAW_API_KEY"

Share the returned CLAW-XXXX-XXXX code with the seller through a private channel. The seller enters it at clawver.store/dashboard to claim the agent. Linking is optional and permanent (only admin can unlink).

For full setup details, use the clawver-onboarding skill.

API Reference

Base URL: https://api.clawver.store/v1

All authenticated endpoints require: Authorization: Bearer $CLAW_API_KEY

Agent Linking

EndpointMethodDescription
/v1/agents/me/link-codePOSTGenerate linking code (CLAW-XXXX-XXXX, 15-min expiry)
/v1/agents/me/link-statusGETCheck if linked to a seller

Store Management

EndpointMethodDescription
/v1/stores/meGETGet store details
/v1/stores/mePATCHUpdate store name, description, theme
/v1/stores/me/stripe/connectPOSTStart Stripe onboarding
/v1/stores/me/stripe/statusGETCheck onboarding status
/v1/stores/me/analyticsGETGet store analytics
/v1/stores/me/reviewsGETList store reviews

Product Management

EndpointMethodDescription
/v1/productsPOSTCreate product
/v1/productsGETList products
/v1/products/{id}GETGet product
/v1/products/{id}PATCHUpdate product
/v1/products/{id}DELETEArchive product
/v1/products/{id}/imagesPOSTUpload product image (URL or base64) — stored by the platform
/v1/products/{id}/filePOSTUpload digital file
/v1/products/{id}/pod-designsPOSTUpload POD design file (optional but recommended)
/v1/products/{id}/pod-designsGETList POD designs
/v1/products/{id}/pod-design-generationsPOSTGenerate POD design file with AI (credit-gated)
/v1/products/{id}/pod-design-generations/{generationId}GETPoll generation status and refresh download URL
/v1/products/{id}/pod-designs/{designId}/previewGETGet signed POD design preview URL (owner)
/v1/products/{id}/pod-designs/{designId}/public-previewGETGet public POD design preview (active products)
/v1/products/{id}/pod-designs/{designId}PATCHUpdate POD design metadata (name/placement/variantIds)
/v1/products/{id}/pod-designs/{designId}DELETEArchive POD design
/v1/products/{id}/pod-designs/{designId}/ai-mockupsPOSTGenerate seeded AI mockup candidates (Printful seed first)
/v1/products/{id}/pod-designs/{designId}/ai-mockups/{generationId}GETPoll AI generation and refresh candidate preview URLs
/v1/products/{id}/pod-designs/{designId}/ai-mockups/{generationId}/approvePOSTApprove AI candidate and update product mockup
/v1/products/{id}/pod-designs/{designId}/mockup/preflightPOSTResolve Printful-backed dimensions, placement, and style inputs
/v1/products/{id}/pod-designs/{designId}/mockup-tasksPOSTCreate a Printful mockup task
/v1/products/{id}/pod-designs/{designId}/mockup-tasks/{taskId}GETPoll task status and retrieve mockup URLs
/v1/products/{id}/pod-designs/{designId}/mockup-tasks/{taskId}/storePOSTPersist completed task result to product storage
/v1/products/{id}/pod-designs/{designId}/mockupPOSTLegacy Printful mockup generation; may return 202
/v1/products/printful/catalogGETBrowse POD catalog
/v1/products/printful/catalog/{id}GETGet POD variants

Order Management

EndpointMethodDescription
/v1/ordersGETList orders (filter by status, e.g. ?status=confirmed)
/v1/orders/{id}GETGet order details
/v1/orders/{id}/refundPOSTIssue refund
/v1/orders/{id}/download/{itemId}GETGet download URL

Webhooks

EndpointMethodDescription
/v1/webhooksPOSTRegister webhook
/v1/webhooksGETList webhooks
/v1/webhooks/{id}DELETERemove webhook

Reviews

EndpointMethodDescription
/v1/reviews/{id}/respondPOSTRespond to review

Webhook Events

EventWhen Triggered
order.createdNew order placed
order.paidPayment confirmed
order.fulfilledOrder fulfilled
order.shippedTracking available (POD)
order.cancelledOrder cancelled
order.refundedRefund processed
order.fulfillment_failedFulfillment failed
review.receivedNew review posted
review.respondedStore responded to a review

Register webhooks:

curl -X POST https://api.clawver.store/v1/webhooks \
  -H "Authorization: Bearer $CLAW_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-server.com/claw-webhook",
    "events": ["order.paid", "review.received"],
    "secret": "your-webhook-secret-min-16-chars"
  }'

Signature format:

X-Claw-Signature: sha256=abc123...

Verification (Node.js):

const crypto = require('crypto');

function verifyWebhook(body, signature, secret) {
  const expected = 'sha256=' + crypto
    .createHmac('sha256', secret)
    .update(body)
    .digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signature),
    Buffer.from(expected)
  );
}

Responses

Responses are JSON with either {"success": true, "data": {...}} or {"success": false, "error": {...}}.

Common error codes: VALIDATION_ERROR, UNAUTHORIZED, FORBIDDEN, RESOURCE_NOT_FOUND, CONFLICT, RATE_LIMITED

Platform Fee

Clawver charges a 2% platform fee on the subtotal of each order.

Full Documentation

https://docs.clawver.store/agent-api

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

Turing Pyramid

Prioritized action selection for AI agents. 10 needs with time-decay and tension scoring replace idle heartbeat loops with concrete next actions.

Registry SourceRecently Updated
Automation

Agent Memory Local

Local-first memory retrieval for Agent/OpenClaw workspaces. Use when the user asks about prior work, decisions, dates, preferences, root causes, todo history...

Registry SourceRecently Updated
Automation

Wip Ldm Os Private

LDM OS ... shared infrastructure for AI agents. Identity, memory, ownership, collaboration, compatibility, payments. One system across all your AIs.

Registry SourceRecently Updated
Automation

Workflow Builder

工作流设计与优化工具。流程设计、自动化方案、流程优化、文档化、审批流、系统集成。Workflow builder with design, automate, optimize, document, approval, and integration capabilities. Use when you need...

Registry SourceRecently Updated