For vendors
License your product
Check licenses from your own product with ready-made packages for Node.js, TypeScript and Python, or call the HTTP API from any language. Current package version: 2.1.0.
The client side runs on the customer’s device and never holds a vendor API key. The server side runs on your backend and holds the key. Never ship the server side in anything customers receive.
Your checklist
A green check means AgentSkope has verified the step. Steps in your own product are yours to tick off when you have done them. Sign in to save your progress.
Sign in to see which steps Skape has already checked for you and to tick off your own.
Licensing Server and Integration
Everything needed to check licenses from your own product. You do not need a payout account or a published listing for this: you can issue licenses through the API for sales made elsewhere.
Set up
Add a license plan
A plan sets the features, limits and seats that a license unlocks. Plans delivered as SaaS also need verified account activation turned on.
Checked by Skape · Open licensing plans
Create a vendor API key
An active key with the entitlements:read scope. Use a test key while you build.
Checked by Skape · Open integrations
Build
Install the package and keep the API key on your server
Pick the package for your tech stack: client on the device, server on your backend. Never ship the key, or the server package, inside anything customers receive.
You confirm this one · Packages and stack picker
Add activation and the check on every start
Installed app: a screen for license key, email and the emailed code, then a check on every start that works offline. SaaS: vouch for the signed-in user from your backend.
You confirm this one
Unlock features and enforce limits in your product
The platform delivers features and limits. Your product enforces them and decides what to do when access is revoked or expired.
You confirm this one
Test
Issue a test license and activate it from your product
AgentSkope saw an activation or check-in from a test license of this product.
Checked by Skape · Open licenses
Run the four acceptance tests
Buy and activate a test license; check feature and seat limits; test expiry and revocation; test a disconnection or a removed seat.
You confirm this one
Go live
Switch your product to a live API key
Replace the test key with a live key on your server when you go live.
You confirm this one
Register a webhook endpointOptional
Get told when a license is issued, changed, revoked or about to expire. Check the signature on the raw request body.
Checked by Skape · Open integrations
Create an API key
Your server uses a vendor API key to check licenses, issue them and read exports. It takes a minute.
- Sign in and open Integrations in your dashboard.
- Choose Create key and pick the scopes it needs.
- Copy the key. It is shown once, so store it in your secret manager.
- Use a test key while you build, and keep every key on your server only.
Packages
npm
@1scribe/client
Activation with an emailed code, offline checks, refresh and unattended machines. Holds no vendor API key.
Runs on: The customer’s device
Install:
npm install @1scribe/clientImport:
@1scribe/clientnpm
@1scribe/server
Vendor API calls, vouched access for your signed-in users, and webhook and code-delivery signature checks. Holds the vendor API key.
Runs on: Your backend
Install:
npm install @1scribe/serverImport:
@1scribe/servernpm
@1scribe/core
Types and offline verification of signed access documents. No network, no secrets.
Runs on: Where you verify
Install:
Installed by the two packages aboveImport:
@1scribe/corePyPI
1scribe
The Python form of all three npm packages. Installed as 1scribe and imported as onescribe, because a Python module name cannot start with a digit.
Runs on: Device (client module) or backend (server module)
Install:
pip install 1scribeImport:
onescribe, onescribe.client, onescribe.server
npm organisation: npmjs.com/org/1scribe. Requires Node.js 18 or newer (ES modules) or Python 3.9.2 or newer.
Which package for my tech stack
| Your stack | Where the check runs | What to use |
|---|---|---|
| Node.js or TypeScript backend (Express, Fastify, Koa, NestJS, Hono) | Your server | @1scribe/server |
| Next.js, Remix or Nuxt with server-side code | API route, server action or server component on the Node runtime (not the Edge runtime) | @1scribe/server |
| Python web backend (Django, Flask, FastAPI) | Your server | 1scribe, module onescribe.server |
| Electron app | Main process, never the renderer page | @1scribe/client |
| Node-based desktop or command-line tool | In the tool | @1scribe/client |
| Python desktop or command-line app, including a Windows EXE built with PyInstaller | In the Python layer | 1scribe, module onescribe.client |
| HTML and JavaScript front end with a Python or Node layer | In the Python or Node layer; the page only asks for the result | onescribe.client or @1scribe/client |
| Installed app and a backend | App: client. Backend: server | Client in the app, server on the backend |
| Servers, agents, CI runners and kiosks with no person at the keyboard | On the machine, with a machine token | @1scribe/client or onescribe.client |
| Code that only checks an access document it already holds | Where you check | @1scribe/core or the top-level onescribe module |
Stacks without a package
| Your stack | Where the check runs | What to use |
|---|---|---|
| Go, Java, Kotlin, C#, PHP, Ruby, Rust backends | Your server | Call the vendor HTTP API directly |
| Browser-only apps with no backend | - | Not supported: the API key would have to ship to the browser |
| React Native, Expo and native mobile apps | Your backend | Put the check on your backend and call it from the app |
| Cloudflare Workers, Vercel Edge, Deno Deploy | - | Not verified: the packages need Node built-ins |
The HTTP API works from any language. Read the HTTP API reference.
Download the steps guide
- Licensing integration: steps (PDF)
Only the steps to add license checks to your product: plan, API key, package, activation, startup check, limits, webhooks, testing and go-live.
- Licensing integration: steps (Markdown)
The same steps as plain text, to read in an editor or paste into your own docs.