# Marketplace Public marketplace for discovering and joining campaigns ## Get marketplace campaigns - [GET /marketplace/campaigns](https://docs-staging.varmply.com/openapi/marketplace/getmarketplacecampaigns.md): Retrieve a list of campaigns available in the marketplace with joinability projections for the current user. This is a read-only endpoint that returns campaigns with their requirements and per-user joinability information. Supports filtering by platform, objective, currency, and status. Results are paginated using cursor-based pagination. Requires a valid JWT access token. ## Get marketplace campaign detail - [GET /marketplace/campaigns/{campaignId}](https://docs-staging.varmply.com/openapi/marketplace/getmarketplacecampaigndetail.md): Retrieve detailed information about a specific campaign in the marketplace, including joinability projection for the current user. This is a read-only endpoint that returns campaign details with per-user joinability information. Requires a valid JWT access token. ## Join a marketplace campaign - [POST /marketplace/campaigns/{campaignId}/join](https://docs-staging.varmply.com/openapi/marketplace/joinmarketplacecampaign.md): Allow a creator to join a campaign from the marketplace. This endpoint uses MarketplaceJoinabilityEvaluator for consistency with GET /marketplace/campaigns/:id. Returns the created/updated participation with joinability snapshot. Handles idempotency: joining twice returns the existing participation. Requires authentication and creator role with verified email. ## Join a campaign (Marketplace) - [POST /campaigns/{campaignId}/join](https://docs-staging.varmply.com/openapi/marketplace/attemptjoincampaign.md): Allow a creator to attempt to join a campaign via the marketplace. This endpoint uses the eligibility evaluator to determine if the creator can participate. Returns 200 OK with either: - eligible: true and participation object if eligible - eligible: false with reasonCode and optional metadata if ineligible No HTTP 400s for business rules - all outcomes return 200 with structured response. Requires a valid JWT access token.