Upvm
API Documentation

Build on the UPVM API

Full REST API for licensing, payments, products, orders, and more. Every capability is an HTTP endpoint.

Authentication

JWT-based auth with access + refresh tokens. OAuth (Google, GitHub) supported.

Products

CRUD operations for products. Supports all product types with JSONB metadata.

Orders & Payments

Create orders, process payments via Stripe/PayTR/Iyzico, handle webhooks.

Licensing

Activate, validate, and revoke licenses. Domain/IP locking and seat management.

Webhooks

Signed webhook deliveries for license events and payment notifications.

Swagger Docs

Interactive API documentation at /docs with try-it-yourself endpoints.

API endpoints

Secure-by-default: every route is JWT-protected unless marked public.

POST/auth/registerCreate a new accountPublic
POST/auth/loginAuthenticate and get tokensPublic
POST/auth/refreshRefresh access tokenPublic
GET/auth/meGet current user profileJWT
GET/productsList all productsJWT
GET/products/:slugGet product by slugPublic
POST/productsCreate a new productJWT
POST/ordersCreate an orderJWT
GET/ordersList your ordersJWT
POST/payments/checkoutStart checkoutJWT
POST/payments/webhook/:providerPayment webhookPublic
POST/license/activateActivate a licensePublic
POST/license/validateValidate activationPublic
POST/license/revokeRevoke a licenseJWT

Quick start — activate a license

One curl command to activate a license key. Get a signed token back.

Example request

curl -X POST http://localhost:4000/license/activate \
  -H 'content-type: application/json' \
  -d '{
    "licenseKey": "A1B2C-3D4E5-F6G7H-J8K9L-MN0PQ",
    "domain": "app.customer.com"
  }'