Subchapter 8.3
references/management-api-sdk.mdMarkdown2 KBView on GitHub
Use @prisma/management-api-sdk for typed API integration with optional OAuth and token refresh.
The Platform API evolves independently from Prisma ORM. Inspect the installed package’s generated api.d.ts for exact paths and request/response shapes.
HIGH
The SDK provides typed endpoint methods and removes boilerplate around auth and refresh handling, which reduces errors in production provisioning flows.
npm install @prisma/management-api-sdkimport { createManagementApiClient } from '@prisma/management-api-sdk'
const client = createManagementApiClient({ token: process.env.PRISMA_SERVICE_TOKEN! })
const { data: workspaces } = await client.GET('/v1/workspaces')Check the generated client result before using data; typed clients surface HTTP failures separately. Never log a full response from connection/key creation because it may contain one-time credentials.
The typed client exposes routes to list, create, and revoke workspace service tokens:
GET /v1/workspaces/{workspaceId}/service-tokensPOST /v1/workspaces/{workspaceId}/service-tokensDELETE /v1/workspaces/{workspaceId}/service-tokens/{serviceTokenId}Creation accepts a display name. The response’s data.value is the complete token and is returned exactly once; transfer it directly to the intended secret store without logging the response. Later list calls return metadata and valueHint, not the token value. Treat revocation as destructive and resolve both ids explicitly.
import { createManagementApiSdk, type TokenStorage } from '@prisma/management-api-sdk'
const tokenStorage: TokenStorage = {
async getTokens() { return null },
async setTokens(tokens) {},
async clearTokens() {},
}
const api = createManagementApiSdk({
clientId: process.env.PRISMA_CLIENT_ID!,
redirectUri: 'https://your-app.com/auth/callback',
tokenStorage,
})getLoginUrl() and persist state + verifier.handleCallback().api.client for typed endpoint calls.logout() when needed.