1. We add your key by hand
Limited pathConnect authenticates a business by matching a bearer key against an allowlist held in the deployment environment. An operator edits it and redeploys. There is no route that mints a key and no form that requests one, so the only way in is to talk to us. Your API key stays on your server: the browser never sees it.
2. Open a session from your backend
Limited pathOne authenticated POST, carrying your manifest inline and an optional callback URL. ShareLess stores that manifest copy on the session and works from it. There is no manifest registry, no version history, and no manifest URL anyone can fetch.
POST https://app.shareless.ai/api/connect/sessions
You get back a session id, a single-use code, the link to hand your user, and an expiry. The request stops working 24 hours after you create it, at any stage before release. Once the user approves, the released payload stays pullable with your key, and the grant it creates has no expiry of its own.
3. Give the user the link
Limited pathYou render the button. We do not ship one you can install: the packages in our repository are unpublished and unversioned, so what a design partner gets is a reference file to copy, hosted on their own origin. The user opens the link, signs in, and their AI takes it from there.
4. Read the result
Limited pathPull the session with your key when you are ready. Until the user approves, it answers 404 with a not_released status. If you registered a callback, approval also fires a single best-effort POST to it: https only, an eight second timeout, and no retries. Treat the callback as a nudge and the pull as the truth.
GET https://app.shareless.ai/api/connect/sessions/<sessionId>
A callback is not authentication on its own. ShareLess can sign it with a shared secret we set up with you; without that, confirm every callback by pulling the release before you act on it.
Watching progress from the page
Available nowOne endpoint is public and unauthenticated, so your own page can poll it while the user works. It takes the session id and returns a single word: opened, claimed, proposed, released, declined, or expired. No manifest, no proposals, no user data.
GET https://app.shareless.ai/api/connect/public/<sessionId>