Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Create client

Create the SDK client and run core auth helpers

Create a Scalekit client with your environment URL, client ID, and client secret. All other clients hang off this instance.

Store credentials in environment variables. Never hard-code secrets. After you create the client, use Sessions or domain clients such as Organizations and Users.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncGetAuthorizationUrl

Runs GetAuthorizationUrl and returns the result.

paramredirectUristring

Redirect uri.

paramoptionsAuthorizationUrlOptions

Optional request settings.

returnsurl.URL

url.URL

authURL, err := scalekitClient.GetAuthorizationUrl(
"https://yourapp.com/auth/callback",
scalekit.AuthorizationUrlOptions{
State: "random-state-value",
OrganizationId: "org_123",
},
)
if err != nil {
// handle
}
// Redirect user to authURL.String()
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncAuthenticateWithCode

Runs AuthenticateWithCode and returns the result.

paramctxcontext.Context

Request context

paramcodestring

Authorization code.

paramredirectUristring

Redirect uri.

paramoptionsAuthenticationOptions

Optional request settings.

returnsAuthenticationResponse

Authentication.

resp, err := scalekitClient.AuthenticateWithCode(
ctx,
code,
"https://yourapp.com/auth/callback",
scalekit.AuthenticationOptions{},
)
if err != nil {
// handle
}
accessToken := resp.AccessToken
user := resp.User
_ = accessToken
_ = user
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncGetIdpInitiatedLoginClaims

Runs GetIdpInitiatedLoginClaims and returns the result.

paramctxcontext.Context

Request context

paramidpInitiateLoginTokenstring

Idp initiate login token.

returnsIdpInitiatedLoginClaims

The response payload for this operation.

claims, err := scalekitClient.GetIdpInitiatedLoginClaims(ctx, idpInitiatedLoginToken)
if err != nil {
// handle
}
// claims.ConnectionID, claims.OrganizationID, claims.LoginHint, claims.RelayState
_ = claims
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncGetAccessTokenClaims

Runs GetAccessTokenClaims and returns the result.

paramctxcontext.Context

Request context

paramaccessTokenstring

Access token.

returnsAccessTokenClaims

The response payload for this operation.

claims, err := scalekitClient.GetAccessTokenClaims(ctx, accessToken)
if err != nil {
// handle
}
_ = claims
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncValidateAccessToken

Runs ValidateAccessToken and returns the result.

paramctxcontext.Context

Request context

paramaccessTokenstring

Access token.

returnsbool

bool

ok, err := scalekitClient.ValidateAccessToken(ctx, accessToken)
if err != nil {
// invalid
}
_ = ok
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncRefreshAccessToken

Runs RefreshAccessToken and returns the result.

paramctxcontext.Context

Request context

paramrefreshTokenstring

Refresh token.

returnsTokenResponse

Token.

tokens, err := scalekitClient.RefreshAccessToken(ctx, refreshToken)
if err != nil {
// handle
}
_ = tokens.AccessToken
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncGetLogoutUrl

Runs GetLogoutUrl and returns the result.

paramoptionsLogoutUrlOptions

Optional request settings.

returnsurl.URL

url.URL

logoutURL, err := scalekitClient.GetLogoutUrl(scalekit.LogoutUrlOptions{
IdTokenHint: idToken,
PostLogoutRedirectUri: "https://yourapp.com/",
State: "state",
})
if err != nil {
// handle
}
_ = logoutURL
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncVerifyWebhookPayload

Runs VerifyWebhookPayload and returns the result.

paramsecretstring

Secret.

paramheadersmap[string]string

Headers.

parampayload[]byte

Payload.

returnsbool

bool

valid, err := scalekitClient.VerifyWebhookPayload(
"whsec_...",
map[string]string{
"webhook-id": "webhook_123",
"webhook-timestamp": "1730000000",
"webhook-signature": "v1,base64sig",
},
[]byte(`{"event":"user.created","data":{"id":"123"}}`),
)
if err != nil {
// handle
}
_ = valid
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncVerifyInterceptorPayload

Runs VerifyInterceptorPayload and returns the result.

paramsecretstring

Secret.

paramheadersmap[string]string

Headers.

parampayload[]byte

Payload.

returnsbool

bool

valid, err := scalekitClient.VerifyInterceptorPayload(secret, headers, payload)
if err != nil {
// handle
}
_ = valid
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncConnection

Runs Connection and returns the result.

returnsConnection

Connection.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncOrganization

Runs Organization and returns the result.

returnsOrganization

Organization.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncUser

Runs User and returns the result.

returnsUserService

User service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncDomain

Runs Domain and returns the result.

returnsDomain

Domain.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncDirectory

Runs Directory and returns the result.

returnsDirectory

Directory.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncSession

Runs Session and returns the result.

returnsSessionService

Session service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncRole

Runs Role and returns the result.

returnsRoleService

Role service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncPermission

Runs Permission and returns the result.

returnsPermissionService

Permission service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncPasswordless

Runs Passwordless and returns the result.

returnsPasswordlessService

Passwordless service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncWebAuthn

Runs WebAuthn and returns the result.

returnsWebAuthnService

Web authn service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncAuth

Runs Auth and returns the result.

returnsAuthService

Auth service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncClient

Runs Client and returns the result.

returnsClientService

Client service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncToken

Runs Token and returns the result.

returnsTokenService

Token service.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncValidateTokenWithOptions

ValidateTokenWithOptions validates a signed JWT (access token or ID token) and enforces optional checks such as audience and scope validation.

paramctxcontext.Context

Request context

paramtokenstring

Token string.

paramoptionsValidateTokenOptions

Optional request settings.

returnsbool

bool

valid, err := scalekitClient.ValidateTokenWithOptions(ctx, accessToken, &scalekit.ValidateTokenOptions{
Audience: []string{"my-api"},
Scopes: []string{"read", "write"},
})
if err != nil {
// handle
}
_ = valid
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncValidateToken

Runs ValidateToken and returns the result.

paramctxcontext.Context

Request context

paramtokenstring

Token string.

returnsClaims

Verified claims or result.

claims, err := scalekitClient.ValidateToken(ctx, idToken)
if err != nil {
// handle
}
_ = claims
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncWithSecret

Runs WithSecret and returns the result.

paramclientSecretstring

Client secret.

returnsScalekit

Scalekit.

clientWithNewSecret := scalekitClient.WithSecret("new_client_secret")
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncGenerateClientToken

GenerateClientToken creates a client-credentials access token.

paramctxcontext.Context

Request context

paramoptionsGenerateClientTokenOptions

Optional request settings.

returnsClientTokenResponse

Client token.

resp, err := scalekitClient.GenerateClientToken(ctx, scalekit.GenerateClientTokenOptions{
ClientID: "service_client_id",
ClientSecret: "service_client_secret",
Scopes: []string{"read", "write"},
})
if err != nil {
// handle
}
_ = resp.AccessToken
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncGetClientAccessToken

Runs GetClientAccessToken and returns the result.

paramctxcontext.Context

Request context

returnsstring

string

accessToken, err := scalekitClient.GetClientAccessToken(ctx)
if err != nil {
// handle
}
_ = accessToken
classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncUnmarshalJSON

Runs UnmarshalJSON and returns the result.

paramdata[]byte

Data.

returnserror

error

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncM2M

Runs M2M and returns the result.

returnsM2MService

M2mservice.

classScalekitClienthttps://github.com/scalekit-inc/scalekit-sdk-go/blob/main/scalekit.go
#asyncVerifyPayloadSignature

Runs VerifyPayloadSignature and returns the result.

paramsecretstring

Secret.

paramheadersmap[string]string

Headers.

parampayload[]byte

Payload.

returnsbool

bool