Connect an end-user account
Run a tenant through the hosted connect flow and reuse the account.
To act on a provider on behalf of your end-user, that user authorizes their account once through Stacklink's hosted connect flow. You never see or store the credential.
Enable the provider for your project
Providers are enabled at the project level. Do this once (dashboard or API).
curl -X PUT http://localhost:4100/v1/projects/<project-id>/providers/zoho_books \
-H "content-type: application/json" \
-H "x-stacklink-registration-key: $STACKLINK_REGISTRATION_KEY" \
-d '{"status":"enabled","enabledBy":"stacklink-admin"}'Start the connection from a session
const request = await session.authorize('zoho_books', {
callbackUrl: 'https://app.example.com/connected',
});
return redirect(request.redirectUrl); // send your user herecurl -X POST http://localhost:4100/v1/sessions/<sessionId>/connections/authorize \
-H "authorization: Bearer $STACKLINK_API_KEY" \
-H "content-type: application/json" \
-d '{"providerKey":"zoho_books","callbackUrl":"https://app.example.com/connected"}'The user completes auth
At redirectUrl the user sees your-branded page and authorizes (OAuth) or submits API credentials.
Stacklink validates and encrypts them, then creates the connected account.
Wait for completion
const account = await request.waitForConnection();
// account.id, account.status === 'connected'curl http://localhost:4100/v1/connection-requests/<requestId> \
-H "authorization: Bearer $STACKLINK_API_KEY"Reuse it forever
Future sessions reference the account by id or alias; tool execution resolves it automatically. No re-auth until the credential actually expires — and Stacklink tells you when that happens.
Credential-backed modes available today
sandbox, whatsapp_business, and razorpay support API-key and webhook-secret connections.
OAuth2 providers are represented in the contract; provider-specific authorization adapters are
rolling out per provider.
Run this flow end-to-end, free
The whole connect flow — authorize, redirect, poll, execute — runs on the free plan's 20,000 monthly standard ops, hard-capped.