Skip to main content

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:

FieldTypeRequiredNotes
externalIdstringyesStable ID from your authenticated system
namestringnoEnd-user display name
emailstringnoEnd-user email
metadataobjectnoUp to 16 KB when JSON encoded
scopesstring[]noMust be enabled for the organization
allowedBridgeTypesstring[]noMust be enabled in Embed settings
ttlSecondsnumbernoInteger 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.