Create an account
Open app.keyport.sbs and sign in with email, password, or Discord.
Create an organization
Create an organization with a name and slug. Both Free and Pro plans allow up to 2 organizations per user.
Create a product
Create a product inside your organization. KeyPort shows you the product API key once at creation time:Store the full key securely. Only the prefix is shown again later.
Create a license
Create a license for the product and attach at least one customer identifier — a customer email or Discord ID. Set a lifetime or expiry date, and set
max_ips if you want per-license IP restrictions.Validate from your app
Send the license key to the public API using your product API key as the bearer token:A successful response looks like this:
Enforce the result in your app
Gate access based on the response. Allow access only when
valid === true.Handle the status field to surface the right message to your users:expired— the license has passed its expiry daterevoked— the license was manually revokedip_blocked— this IP is explicitly blocked for the licenseip_limit_reached— the license has hit itsmax_ipslimitip_not_registered— the calling IP has not been registered for this license
401 invalid_api_key— your product API key is wrong or missing (configuration issue on your side)429 rate_limit_exceeded— you have hit a temporary upstream limit
The
status field always tells you the specific reason a license is not usable. Checking only valid is enough to gate access, but reading status lets you show accurate, actionable error messages to your customers.