Node.js SDK
Use @orderly/node only on your backend. Node.js 18 or later is required.
npm install @orderly/node
import { Orderly } from '@orderly/node'
const orderly = new Orderly(process.env.ORDERLY_API_KEY!)
export async function POST() {
const user = await requireAuthenticatedUser()
const session = await orderly.embeds.createSession({
externalId: user.id,
name: user.companyName,
email: user.email,
scopes: ['bridges:read', 'bridges:write'],
ttlSeconds: 900,
})
return Response.json(
{ clientSecret: session.clientSecret },
{ headers: { 'Cache-Control': 'no-store' } }
)
}
Create a session
orderly.embeds.createSession(params) accepts:
| Field | Type | Required | Notes |
|---|---|---|---|
externalId | string | yes | Stable ID from your authenticated system |
name | string | no | End-user display name |
email | string | no | End-user email |
metadata | object | no | Up to 16 KB when JSON encoded |
scopes | string[] | no | Must be enabled for the organization |
allowedBridgeTypes | string[] | no | Must be enabled in Embed settings |
ttlSeconds | number | no | Integer from 60 to 3600; default 900 |
The result contains clientSecret, sessionId, expiresAt, scopes,
enabledFeatures, and endUser.
Revoke a session
await orderly.embeds.revokeSession(session.sessionId)
Errors
import { OrderlyError } from '@orderly/node'
try {
await orderly.embeds.createSession({ externalId: user.id })
} catch (error) {
if (error instanceof OrderlyError) {
console.error(error.status, error.code, error.requestId)
}
}
status is 0 for a timeout or network failure. Session creation is not
automatically retried because it is not an idempotent request.