> **Building with AI coding agents?** Install the authstack plugin with one command. This equips your agent with accurate Scalekit implementation patterns.
>
> **Recommended**:
> ```bash
> npx @scalekit-inc/cli setup
> ```
>
> Global:
> ```bash
> npm install -g @scalekit-inc/cli
> scalekit setup
> ```
>
> Supports Claude Code, Cursor, GitHub Copilot, Codex + skills for 40+ agents.
> Features: full-stack-auth, agent-auth, mcp-auth, modular-sso, modular-scim.
> [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# Create client

Create the SDK client and run core auth helpers
<div class="sdk-client-page">

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](/saaskit/sdks/go/sessions/) or domain clients such as [Organizations](/saaskit/sdks/go/organizations/) and [Users](/saaskit/sdks/go/users/).

### GetAuthorizationUrl
<div class="sdk-method-section">
  
    
      

      Runs `GetAuthorizationUrl` and returns the result.

      
        Redirect uri.
      
      
        Optional request settings.
      
      
        url.URL
      

```go wrap showLineNumbers=false
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()
```

    
  
</div>

### AuthenticateWithCode
<div class="sdk-method-section">
  
    
      

      Runs `AuthenticateWithCode` and returns the result.

      
        Request context
      
      
        Authorization code.
      
      
        Redirect uri.
      
      
        Optional request settings.
      
      
        Authentication.
      

```go wrap showLineNumbers=false
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
```

    
  
</div>

### GetIdpInitiatedLoginClaims
<div class="sdk-method-section">
  
    
      

      Runs `GetIdpInitiatedLoginClaims` and returns the result.

      
        Request context
      
      
        Idp initiate login token.
      
      
        The response payload for this operation.
      

```go wrap showLineNumbers=false
claims, err := scalekitClient.GetIdpInitiatedLoginClaims(ctx, idpInitiatedLoginToken)
if err != nil {
  // handle
}

// claims.ConnectionID, claims.OrganizationID, claims.LoginHint, claims.RelayState
_ = claims
```

    
  
</div>

### GetAccessTokenClaims
<div class="sdk-method-section">
  
    
      

      Runs `GetAccessTokenClaims` and returns the result.

      
        Request context
      
      
        Access token.
      
      
        The response payload for this operation.
      

```go wrap showLineNumbers=false
claims, err := scalekitClient.GetAccessTokenClaims(ctx, accessToken)
if err != nil {
  // handle
}
_ = claims
```

    
  
</div>

### ValidateAccessToken
<div class="sdk-method-section">
  
    
      

      Runs `ValidateAccessToken` and returns the result.

      
        Request context
      
      
        Access token.
      
      
        bool
      

```go wrap showLineNumbers=false
ok, err := scalekitClient.ValidateAccessToken(ctx, accessToken)
if err != nil {
  // invalid
}
_ = ok
```

    
  
</div>

### RefreshAccessToken
<div class="sdk-method-section">
  
    
      

      Runs `RefreshAccessToken` and returns the result.

      
        Request context
      
      
        Refresh token.
      
      
        Token.
      

```go wrap showLineNumbers=false
tokens, err := scalekitClient.RefreshAccessToken(ctx, refreshToken)
if err != nil {
  // handle
}
_ = tokens.AccessToken
```

    
  
</div>

### GetLogoutUrl
<div class="sdk-method-section">
  
    
      

      Runs `GetLogoutUrl` and returns the result.

      
        Optional request settings.
      
      
        url.URL
      

```go wrap showLineNumbers=false
logoutURL, err := scalekitClient.GetLogoutUrl(scalekit.LogoutUrlOptions{
  IdTokenHint:           idToken,
  PostLogoutRedirectUri: "https://yourapp.com/",
  State:                "state",
})
if err != nil {
  // handle
}
_ = logoutURL
```

    
  
</div>

### VerifyWebhookPayload
<div class="sdk-method-section">
  
    
      

      Runs `VerifyWebhookPayload` and returns the result.

      
        Secret.
      
      
        Headers.
      
      
        Payload.
      
      
        bool
      

```go wrap showLineNumbers=false
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
```

    
  
</div>

### VerifyInterceptorPayload
<div class="sdk-method-section">
  
    
      

      Runs `VerifyInterceptorPayload` and returns the result.

      
        Secret.
      
      
        Headers.
      
      
        Payload.
      
      
        bool
      

```go wrap showLineNumbers=false
valid, err := scalekitClient.VerifyInterceptorPayload(secret, headers, payload)
if err != nil {
  // handle
}
_ = valid
```

    
  
</div>

### Connection
<div class="sdk-method-section">
  
    
      

      Runs `Connection` and returns the result.

      
        Connection.
      

    
  
</div>

### Organization
<div class="sdk-method-section">
  
    
      

      Runs `Organization` and returns the result.

      
        Organization.
      

    
  
</div>

### User
<div class="sdk-method-section">
  
    
      

      Runs `User` and returns the result.

      
        User service.
      

    
  
</div>

### Domain
<div class="sdk-method-section">
  
    
      

      Runs `Domain` and returns the result.

      
        Domain.
      

    
  
</div>

### Directory
<div class="sdk-method-section">
  
    
      

      Runs `Directory` and returns the result.

      
        Directory.
      

    
  
</div>

### Session
<div class="sdk-method-section">
  
    
      

      Runs `Session` and returns the result.

      
        Session service.
      

    
  
</div>

### Role
<div class="sdk-method-section">
  
    
      

      Runs `Role` and returns the result.

      
        Role service.
      

    
  
</div>

### Permission
<div class="sdk-method-section">
  
    
      

      Runs `Permission` and returns the result.

      
        Permission service.
      

    
  
</div>

### Passwordless
<div class="sdk-method-section">
  
    
      

      Runs `Passwordless` and returns the result.

      
        Passwordless service.
      

    
  
</div>

### WebAuthn
<div class="sdk-method-section">
  
    
      

      Runs `WebAuthn` and returns the result.

      
        Web authn service.
      

    
  
</div>

### Auth
<div class="sdk-method-section">
  
    
      

      Runs `Auth` and returns the result.

      
        Auth service.
      

    
  
</div>

### Client
<div class="sdk-method-section">
  
    
      

      Runs `Client` and returns the result.

      
        Client service.
      

    
  
</div>

### Token
<div class="sdk-method-section">
  
    
      

      Runs `Token` and returns the result.

      
        Token service.
      

    
  
</div>

### ValidateTokenWithOptions
<div class="sdk-method-section">
  
    
      

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

      
        Request context
      
      
        Token string.
      
      
        Optional request settings.
      
      
        bool
      

```go wrap showLineNumbers=false
valid, err := scalekitClient.ValidateTokenWithOptions(ctx, accessToken, &scalekit.ValidateTokenOptions{
  Audience: []string{"my-api"},
  Scopes:   []string{"read", "write"},
})
if err != nil {
  // handle
}
_ = valid
```

    
  
</div>

### ValidateToken
<div class="sdk-method-section">
  
    
      

      Runs `ValidateToken` and returns the result.

      
        Request context
      
      
        Token string.
      
      
        Verified claims or result.
      

```go wrap showLineNumbers=false
claims, err := scalekitClient.ValidateToken(ctx, idToken)
if err != nil {
  // handle
}
_ = claims
```

    
  
</div>

### WithSecret
<div class="sdk-method-section">
  
    
      

      Runs `WithSecret` and returns the result.

      
        Client secret.
      
      
        Scalekit.
      

```go wrap showLineNumbers=false
clientWithNewSecret := scalekitClient.WithSecret("new_client_secret")
```

    
  
</div>

### GenerateClientToken
<div class="sdk-method-section">
  
    
      

      GenerateClientToken creates a client-credentials access token.

      
        Request context
      
      
        Optional request settings.
      
      
        Client token.
      

```go wrap showLineNumbers=false
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
```

    
  
</div>

### GetClientAccessToken
<div class="sdk-method-section">
  
    
      

      Runs `GetClientAccessToken` and returns the result.

      
        Request context
      
      
        string
      

```go wrap showLineNumbers=false
accessToken, err := scalekitClient.GetClientAccessToken(ctx)
if err != nil {
  // handle
}
_ = accessToken
```

    
  
</div>

### UnmarshalJSON
<div class="sdk-method-section">
  
    
      

      Runs `UnmarshalJSON` and returns the result.

      
        Data.
      
      
        error
      

    
  
</div>

### M2M
<div class="sdk-method-section">
  
    
      

      Runs `M2M` and returns the result.

      
        M2mservice.
      

    
  
</div>

### VerifyPayloadSignature
<div class="sdk-method-section">
  
    
      

      Runs `VerifyPayloadSignature` and returns the result.

      
        Secret.
      
      
        Headers.
      
      
        Payload.
      
      
        bool
      

    
  
</div>

</div>


---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
