Admin API

Admin API

Admin endpoints require an admin JWT (pb_adm_*) from /v1/admin/auth/login. User JWTs (pb_usr_*), API keys, and server keys are rejected for browser admin operations.

Admin users are stored in the standalone admin_users table. Create the first admin with:

PRINTBASE_PG_DSN='postgres://user:pass@127.0.0.1:5432/printbase?sslmode=disable' \
go run ./cmd/adminctl create-admin --email admin@example.com --password 'Passw0rd!'

Admin authentication

  • POST /v1/admin/auth/login returns a pb_adm_* token.
  • GET /v1/admin/auth/me returns the current admin profile and scopes.

Enterprise management

  • GET /v1/admin/enterprises lists enterprises.
  • GET /v1/admin/enterprises/{id} returns the enterprise, organizations, members, and usage counts.
  • PATCH /v1/admin/enterprises/{id} updates enterprise profile fields and requires admin:write.
  • GET /v1/admin/organizations lists organizations across enterprises with enterprise summary fields.
  • GET /v1/admin/enterprises/{id}/organizations lists organizations for an enterprise.

Organization resources

Use GET /v1/admin/organizations/{org_id}/{resource} with one of:

  • print-jobs
  • printers
  • computers
  • api-keys
  • webhooks
  • billing

print-jobs also accepts an optional status query parameter.

Enterprise applications

  • GET /v1/admin/enterprise-applications?status=pending
  • GET /v1/admin/enterprise-applications/{id}
  • POST /v1/admin/enterprise-applications/{id}/approve
  • POST /v1/admin/enterprise-applications/{id}/reject

Application review requires enterprise_applications:read or enterprise_applications:write.

Admin API