MyClaude Docs
MyClaude Docs

Getting Started

Buyers

Creators

CLI

API

API OverviewProducts APIUsers APIPayments APIDownloads API

Agent Integration

Developers

Security

Legal

API Reference

API Overview

Base URL, authentication model, rate limiting, error format, and endpoint groups for the MyClaude REST API.

Explanation

The MyClaude API is a REST interface for the Claude Code ecosystem marketplace. Every product listing, purchase, download, and social interaction on myclaude.sh flows through these endpoints.

Base URL

https://myclaude.sh/api

All paths in this documentation are relative to this base. For example, POST /products/download means POST https://myclaude.sh/api/products/download.

Authentication

MyClaude uses Firebase Authentication with JWT bearer tokens. Every authenticated request must include a valid ID token in the Authorization header.

Authorization: Bearer <firebase-id-token>

Obtaining a token

MethodHow
CLIRun myclaude login -- the CLI stores and refreshes your token automatically
Web appThe Firebase Client SDK returns a token via getIdToken() after sign-in
ProgrammaticExchange Firebase credentials using the Firebase Auth REST API

The server calls admin.auth().verifyIdToken(token) on every authenticated route. Expired or malformed tokens return 401.

Some endpoints also require email verification (email_verified: true on the decoded token). These are noted per-endpoint in the reference pages.

Ban enforcement

After token verification, the server checks whether the authenticated user is banned. Banned users receive 403 Forbidden on all mutation endpoints.

Endpoint groups

GroupBase pathAuthDescription
Products/products/*Most routesUpload, scan, download, like, review, approve
Users/users/*RequiredProfile updates, follow/unfollow, account deletion
Payments/stripe/*RequiredCheckout, Stripe Connect onboarding, webhooks
Downloads/products/downloadRequiredSigned URL generation for product files
CLI/cli/*VariesSearch (public), create product (auth), profile (auth)
System/healthNoneHealth check

CLI endpoints

The CLI endpoints mirror web functionality but are optimized for command-line usage.

EndpointMethodAuthDescription
/cli/products/searchGETNoneSearch published products with filters
/cli/products/createPOSTRequiredCreate or update a product listing
/cli/auth/profileGETRequiredReturn authenticated user profile

System endpoints

EndpointMethodAuthDescription
/healthGETNoneReturns { status: "ok" } when Firebase and Stripe are reachable

Rate limiting

All endpoints are rate-limited per IP address within a 60-second sliding window. MyClaude uses two rate limiting strategies.

StrategyBehavior on limit failureUsed on
StandardFail-open (allows request if limiter is unavailable)Read endpoints, search
StrictFail-closed (blocks request if limiter is unavailable)Checkout, upload, delete account, mutations

Rate limits by endpoint

EndpointLimitStrategy
POST /stripe/checkout10/minStrict
POST /products/download30/minStrict
POST /products/upload10/minStrict
POST /products/scan10/minStrict
POST /products/like30/minStrict
GET /products/reviews30/minStandard
POST /products/reviews5/minStrict
POST /products/self-approve20/minStrict
POST /users/update-profile5/minStrict
POST /users/follow30/minStrict
DELETE /users/delete-account1/minStrict
POST /stripe/connect5/minStrict
POST /reports10/minStrict
GET /messages60/minStandard
POST /messages20/minStrict
GET /messages/:id60/minStandard
GET /cli/products/search30/minStandard
GET /cli/auth/profile30/minStandard
POST /cli/products/create5/minStrict

When rate-limited, the API returns:

{
  "error": "Too many requests"
}

Status: 429 Too Many Requests Header: Retry-After: <seconds>

Error response format

All errors follow a consistent JSON structure:

{
  "error": "Human-readable error message"
}

Some validation endpoints include additional detail:

{
  "error": "Content policy violation",
  "issues": ["Description of issue 1", "Description of issue 2"]
}

HTTP status codes

CodeMeaningWhen
200SuccessRequest completed
400Bad RequestMissing or invalid parameters, business rule violation
401UnauthorizedMissing or invalid bearer token
403ForbiddenValid token but insufficient permissions, or user is banned
404Not FoundResource does not exist or is not published
409ConflictDuplicate action (already purchased, already reviewed, username taken)
429Too Many RequestsRate limit exceeded
500Internal Server ErrorUnexpected server failure
503Service UnavailableDependency unavailable (Stripe, Firestore) or strict rate limiter failure

OpenAPI specification

A machine-readable OpenAPI 3.1 specification is available at:

https://myclaude.sh/specs/openapi.yaml

Content types

All request and response bodies use application/json unless otherwise noted. File uploads use presigned URLs rather than multipart form data -- see the upload flow for details.

Related pages

  • Products API Reference -- Upload, search, like, review, approve
  • Users API Reference -- Profile, follow, account deletion
  • Payments API Reference -- Checkout, Stripe Connect, webhooks
  • Downloads API Reference -- Signed URL download flow
  • Security Model -- Architecture-level security details

MCP Integration

How MyClaude products integrate with the Model Context Protocol, exposing marketplace tools directly inside Claude Code sessions.

Products API

Complete reference for product endpoints: search, upload, scan, download, like, reviews, self-approve, and CLI create.

On this page

Base URLAuthenticationObtaining a tokenBan enforcementEndpoint groupsCLI endpointsSystem endpointsRate limitingRate limits by endpointError response formatHTTP status codesOpenAPI specificationContent typesRelated pages