Skip to main content

License API

The License API is the contract between the Empora plugin on a store and the backend license server. It governs how a license is bound to a site and which premium modules that site may enable.

The plugin calls these endpoints for you — this page documents the contract for transparency and for anyone self-hosting or auditing.

Base URL: https://empora-api.aoneahsan.com/api. These plugin-facing endpoints are rate-limited and identified by license key + site URL (not by a user token).

Endpoints

MethodPathPurpose
POST/v1/licenses/activateBind this license key to this site URL. Counts against the plan's site limit. Returns the plan + entitlement list.
POST/v1/licenses/validateRe-check that the license is still valid for this site and refresh entitlements. Runs on a schedule.
POST/v1/licenses/deactivateRelease this site from the license, freeing a slot.

Activation flow

What entitlements control

The response carries an entitlement list — the set of premium module ids this license unlocks. The plugin uses it to:

  • Show/enable exactly those premium modules on the Modules grid.
  • Hide or disable modules the plan does not include.
  • Stay current when you upgrade/downgrade (the next validate refreshes the list).

Site counting

Activation binds the license to your site URL. Each active site counts against the plan's maxSites. To move a license to a new site, deactivate an old one (from the plugin's License page or your account dashboard) to free a slot.

Failure behaviour

  • If the server is unreachable, the plugin keeps the last known entitlements for a grace window so a transient outage does not disable your premium features mid-day.
  • A definitive invalid/deactivated response gates premium modules off; the free core is never affected.

Self-hosting note

The license server is the Laravel backend in the Empora monorepo. If you self-host it, point the plugin's update/license base URL at your deployment and keep the same endpoint contract above.