Skip to main content
The Products API lets you create digital products and distribute them to your users. Products cover everything from event admission tickets to drink vouchers, VIP perks, and NFT-backed collectibles — with full lifecycle management for issuance, redemption, transfer, and sales tracking.

How Products Work

Create Product → Issue Items to Users → Redeem at Event → (Optional) Transfer Between Users
Every product belongs to an event and has a type that defines its purpose:
TypeUse CaseExample
admissionEntry ticketsGeneral admission, VIP pass
presaleEarly access offersPresale tickets, early bird deals
perksVouchers and extrasDrink coupons, merch credits, backstage access

Product Items

A product item is a single instance of a product issued to a user. Think of a product as the template (e.g., “General Admission Ticket”) and items as individual copies given to specific users. Items support:
  • Sequential IDs — Each item gets a unique item_id (also used as NFT ID if minted)
  • Multi-use redemption — Configure redemption_quantity for items valid for multiple uses (e.g., a voucher for 3 drinks)
  • Transfers — Allow users to send items to other users (when is_transferable is enabled)
  • Batch issuance — Issue to up to 550 users per request

Configuration Options

Products offer fine-grained control over distribution:
FieldWhat it doesDefault
stockTotal available inventory (null = unlimited)Unlimited
max_per_accountMax items per user (null = unlimited)Unlimited
redemption_quantityTimes each item can be redeemed1
is_transferableAllow transfers between usersfalse
is_claimableAllow claiming via direct URLfalse
priceProduct price as decimal string (e.g., "49.99")
activeWhether items can currently be issuedtrue

NFT Minting

Products can optionally mint an NFT on the Polkadot network for each issued item. When enabled:
  • Set mint_nft: true when creating the product
  • Provide a metadata_uri pointing to a JSON file with name, image, and description
  • Choose a chain: AssetHub (mainnet) or WestendAssetHub (testnet)
  • Your project wallet needs at least 2 DOT (or 2 WND on testnet) for on-chain fees
  • Each item’s sequential item_id becomes its on-chain NFT ID

Quick Example

Create a ticket and issue it:
# Create a product
curl -X POST https://api.mufi.app/v1/products \
  -H "Authorization: Bearer $MUFI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "admission",
    "name": "General Admission",
    "price": "49.99",
    "stock": 500,
    "is_transferable": true,
    "event_id": "EVENT_ID"
  }'

# Issue items to users
curl -X POST https://api.mufi.app/v1/products/PRODUCT_ID/items \
  -H "Authorization: Bearer $MUFI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product_id": "PRODUCT_ID",
    "emails": ["fan1@example.com", "fan2@example.com"]
  }'

# Redeem an item
curl -X POST https://api.mufi.app/v1/products/PRODUCT_ID/items/redeem \
  -H "Authorization: Bearer $MUFI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "product_item_id": "ITEM_ID" }'

Learn More

Products API Reference

Full API documentation with all endpoints, parameters, and response schemas.

Events Overview

Learn how events and products work together.