Platform Management API

Manage authentication, users, billing and platform-wide settings

Base URL: https://api.wemasy.nl/api
ⓘ Settings are saved in browser localStorage for convenience. Don't use production tokens on shared computers.

API Tokens

Create API Token

POST /services/platforms/v1/api-tokens/create Auth

List API Tokens

POST /services/platforms/v1/api-tokens/list Auth

Revoke API Token

POST /services/platforms/v1/api-tokens/revoke Auth

Active Sessions

List Sessions This includes browser sessions, API tokens, etc

POST /services/platforms/v1/active-sessions/list Auth

Revoke Session

POST /services/platforms/v1/active-sessions/revoke Auth

Revoke All Sessions This will log out the user from all devices and revoke all API tokens

POST /services/platforms/v1/active-sessions/revoke-all Auth

Audit Logs

List Audit Logs

POST /services/platforms/v1/audit-logs/list Auth

Authentication

Login

POST /v1/login Public

Authenticate Login

POST /v1/authenticate Public

Create Account

POST /v1/create-account Public

Verify Email OTP

POST /v1/verify-email-otp Public

Rate limit: 5 attempts per email address and 10 attempts per IP address per 30 minutes.

Resend Email OTP

POST /v1/resend-email-otp Public

Rate limit: 5 requests per 30 minutes.

Send Verification Email

POST /v1/send-verification-email Public

Rate limit: 5 requests per 30 minutes.

Confirm Email

POST /v1/confirm-email Public

Forgot Password

POST /v1/forgot-password Public

Reset Password

POST /v1/reset-password Public

Setup Password (admin-invited account first login)

POST /v1/setup-password Public

Get Policy

POST /v1/get-policy Public

Logout

POST /v1/logout Auth

Send Verification Email

POST /services/platforms/v1/send-verification-email Auth

Rate limit: 5 requests per 30 minutes.

Authentication (Two Factor)

Create Security Email Code

POST /services/platforms/v1/user/get-security-email-code Auth

Validate Two Factor Auth

POST /services/platforms/v1/user/security-two-factor-validate-auth Auth

Security Verification

POST /services/platforms/v1/user/security-verification Auth

Verify Two Factor Code

POST /services/platforms/v1/user/verify-two-factor-code Auth

Update Security Authenticator

POST /services/platforms/v1/user/security-authenticator-update Auth

Generate Recovery Codes

POST /services/platforms/v1/user/regenerate-new-recovery-codes Auth

Save Recovery Codes

POST /services/platforms/v1/user/save-new-recovery-codes Auth

Billing

Get Billing Summary

POST /services/platforms/v1/billing/summary Auth

Get billing summary for projects owned by the authenticated user Returns aggregated data and only expired/near-expired/failed subscriptions

Calculate Checkout Tax

POST /services/platforms/v1/checkout/calculate-tax Auth

Calculate VAT for the current checkout state. Validates ONLY the inputs the tax calculation actually consumes (country, contact_type, vat_number, subtotal) plus the VIES VAT check when a company supplies a number. Other contact fields (name, address, phone, etc.) are intentionally NOT validated here — they don't influence the tax rate, and validating them mid-edit blocks the tax line from rendering while the user is still filling the form. Full field validation runs at the final `/domain-upgrade/checkout` POST.

List Invoices

POST /services/platforms/v1/invoices/all Auth

Feature Usage

Track Feature Usage

POST /services/platforms/v1/track-feature-usage-click Auth

Feedback

Store Feedback Delegates to the unified support ticket system using the "feedback" channel

POST /services/platforms/v1/feedback/store Auth

Rate limit: 20 requests per user per 5 minutes.

List Feedbacks Backward-compatible endpoint — queries support_tickets filtered by the "feedback" channel and maps the response to match the original PlatformFeedback shape

POST /services/platforms/v1/feedback/list Auth

Geo

List Countries

GET /services/platforms/v1/geo/countries Public

List States

GET /services/platforms/v1/geo/countries/{iso2}/states Public

MCP Tokens Create a USER-LEVEL

POST /services/platforms/v1/mcp-tokens/create Auth

MCP Tokens List the current user's MCP tokens (user-level

POST /services/platforms/v1/mcp-tokens/list Auth

MCP Tokens Revoke one of the current user's MCP tokens. Scoped to the user + verified to be an MCP token (user-level + `mcp` ability) so it can't touch other tokens.

POST /services/platforms/v1/mcp-tokens/revoke Auth

Notifications

List Notifications

POST /services/platforms/v1/notifications/all Auth

Get Notification

POST /services/platforms/v1/notifications/get Auth

Mark Notifications as Read

POST /services/platforms/v1/notifications/mark-as-read Auth

Mark Notification as Unread

POST /services/platforms/v1/notifications/mark-as-unread Auth

Archive Notifications

POST /services/platforms/v1/notifications/archive Auth

Delete Notifications

POST /services/platforms/v1/notifications/delete Auth

List Archived Notifications

POST /services/platforms/v1/notifications/archived Auth

Unarchive Notifications

POST /services/platforms/v1/notifications/unarchive Auth

Platforms

Platform info

POST /services/platforms/v1/platforms/info Public

List Platforms

POST /services/platforms/v1/platforms/list Auth

Projects

Validate Invitation

POST /v1/validate-invitation Public

Join Invitation

POST /v1/join-invitation Public

Check Project Tool Access

POST /services/platforms/v1/project-tools-access Public

Get all projects

POST /services/platforms/v1/projects/all Auth

Update User Permission

POST /services/platforms/v1/user/project/update-user-permission Auth

Invite User to Project

POST /services/platforms/v1/user/project/invite Auth

Resend Project Invitation

POST /services/platforms/v1/user/project/invite/resend Auth

Delete Project Invitation

POST /services/platforms/v1/user/project/invite/delete Auth

Get Project Users

POST /services/platforms/v1/user/project/get-users Auth

Remove Project User

POST /services/platforms/v1/user/project/remove-project-user Auth

Permissions

GET /services/platforms/v1/user/project/permissions Auth

Get Project

POST /services/platforms/v1/projects/get Auth

Create a new project

POST /services/platforms/v1/projects/create Auth

Update Project

POST /services/platforms/v1/projects/update Auth

Remember Last Visited Project

POST /services/platforms/v1/projects/update-selected Auth

Persists the user's last visited project so fresh logins and legacy un-prefixed URLs resolve to a sensible default. NOT the source of truth for the active project — the URL path is.

Transfer Project Ownership

POST /services/platforms/v1/projects/transfer Auth

Update Theme Status

POST /services/platforms/v1/projects/update-theme-status Auth

Update Website Availability Status

POST /services/platforms/v1/projects/update-website-status Auth

POST /api/services/platforms/v1/projects/update-website-status Sets a project's public availability to live / maintenance / offline. Stored in projects_meta (`website_disabled`, `maintenance_mode`); the generator reads these on the next deploy to serve a blank page (offline) or a maintenance page instead of the real site. The states are mutually exclusive, and it's fully reversible — set back to `live` and re-deploy to restore the normal site. This only persists the flag; the SPA triggers a redeploy afterwards so the change goes live.

Smart Filters

Save Smart Filter

POST /services/platforms/v1/smart-filter/save Auth

Get Smart Filter

POST /services/platforms/v1/smart-filter/get Auth

Delete Smart Filter

POST /services/platforms/v1/smart-filter/delete Auth

Subscriptions

List Subscriptions

POST /services/platforms/v1/subscriptions/all Auth

Verify Subscription

POST /services/platforms/v1/subscriptions/verify Auth

POST /api/services/platforms/v1/subscriptions/verify

Cancel Subscription

POST /services/platforms/v1/subscriptions/cancel Auth

Upgrade Trial

POST /services/platforms/v1/subscriptions/upgrade-trial Auth

Used when: - User on active trial wants to pay early - Trial expired and user wants to reactivate with payment

Resume Subscription

POST /services/platforms/v1/subscriptions/resume-cancelled Auth

Subscribe to Tool

POST /services/platforms/v1/subscriptions/subscribe-tool Auth

Subscribe to a new tool for existing project. Supports BOTH trial and paid flows: - trial=true: Create trial subscription immediately (if eligible) - trial=false: Create paid subscription with Stripe checkout

Request a refund

POST /services/platforms/v1/subscriptions/refund/request Auth

Rate limit: 5 requests per user per 10 minutes — prevents accidental double-submits from impatient button-clickers and rules out abuse loops.

List my refund requests

POST /services/platforms/v1/subscriptions/refund/list Auth

Cancel my refund request

POST /services/platforms/v1/subscriptions/refund/cancel Auth

Domain Upgrade Checkout

POST /services/platforms/v1/domain-upgrade/checkout Auth
POST /services/platforms/v1/ai-credits/top-up/checkout Auth

Support

List Support Channels

POST /services/platforms/v1/support/channels Auth

Create Support Ticket

POST /services/platforms/v1/support/tickets/store Auth

Rate limit: 10 requests per user per 5 minutes.

List Support Tickets

POST /services/platforms/v1/support/tickets/list Auth

List My Support Tickets

POST /services/platforms/v1/support/tickets/my-list Auth

Get Support Ticket Detail

POST /services/platforms/v1/support/tickets/detail Auth

Reply to Support Ticket

POST /services/platforms/v1/support/tickets/reply Auth

Update Support Ticket

POST /services/platforms/v1/support/tickets/update Auth

User

Get User

POST /services/platforms/v1/user/get Auth

Accept Policy

POST /services/platforms/v1/user/policy-acceptance Auth

Update User Details

POST /services/platforms/v1/user/update-details Auth

Send Update Email Token

POST /services/platforms/v1/user/update-email-sendtoken Auth

Rate limit: 5 attempts per email address and 5 attempts per IP address per 60 minutes.

Verify Update Email

POST /services/platforms/v1/user/update-email-via-token Auth

Update Password

POST /services/platforms/v1/user/update-password Auth

Update Language

POST /services/platforms/v1/user/update-language Auth

Update Timezone

POST /services/platforms/v1/user/update-timezone Auth

Update Editor Settings

POST /services/platforms/v1/user/update-editor-settings Auth

Update Editor Mode

POST /services/platforms/v1/user/update-editor-mode Auth

Saves the user's editor mode preference to user metadata

Update Sidebar Layout Mode

POST /services/platforms/v1/user/update-sidebar-layout-mode Auth

Saves the user's sidebar layout mode preference to user metadata

Dismiss Widget Teaser

POST /services/platforms/v1/user/dismiss-widget-teaser Auth

Workspaces

List Workspaces

POST /services/platforms/v1/workspaces/all Auth

Returns all workspaces the authenticated user owns within the current platform, with a project count per workspace.

Create Workspace

POST /services/platforms/v1/workspaces/create Auth

Update Workspace

POST /services/platforms/v1/workspaces/update Auth

Delete Workspace

POST /services/platforms/v1/workspaces/delete Auth

Soft-deletes the workspace and unassigns all its projects (sets projects.workspace_id = NULL). Projects are NEVER deleted.

Assign Projects to Workspace

POST /services/platforms/v1/workspaces/assign-projects Auth

Bulk-move projects into a workspace, or unassign them by passing workspace_id = null.