> **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/)

---

# OAuth clients

OAuth clients for applications
<div class="sdk-client-page">

Manage OAuth clients for applications that use Scalekit as an authorization server.

Register clients for your apps, rotate secrets carefully, and scope clients to the right application type.

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

      Runs `CreateClient` and returns the result.

      
        Request context
      
      
        Client.
      
      
        The created resource.
      

```go wrap showLineNumbers=false

  clients "github.com/scalekit-inc/scalekit-sdk-go/v2/pkg/grpc/scalekit/v1/clients"
)

created, err := scalekitClient.Client().CreateClient(ctx, &clients.CreateClient{
  Name:                   "My Application",
  ClientType:             "WEB_APP",
  PostLoginUris:          []string{"https://myapp.com/callback"},
  PostLogoutRedirectUris: []string{"https://myapp.com/logout"},
})
if err != nil {
  // handle
}
_ = created.Client
```

    
  
</div>

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

      Runs `GetClient` and returns the result.

      
        Request context
      
      
        Client ID.
      
      
        The response payload for this operation.
      

```go wrap showLineNumbers=false
got, err := scalekitClient.Client().GetClient(ctx, "client_123")
if err != nil {
  // handle
}
_ = got.Client
```

    
  
</div>

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

      Runs `ListClients` and returns the result.

      
        Request context
      
      
        Optional request settings.
      
      
        Paginated results.
      

```go wrap showLineNumbers=false
clients, err := scalekitClient.Client().ListClients(ctx, &scalekit.ListClientsOptions{
  PageSize:  10,
  PageToken: "",
})
if err != nil {
  // handle
}
for _, c := range clients.Clients {
  _ = c
}
```

    
  
</div>

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

      Runs `UpdateClient` and returns the result.

      
        Request context
      
      
        Client ID.
      
      
        Client.
      
      
        Mask.
      
      
        The updated resource.
      

```go wrap showLineNumbers=false

  clients "github.com/scalekit-inc/scalekit-sdk-go/v2/pkg/grpc/scalekit/v1/clients"
  "google.golang.org/protobuf/types/known/fieldmaskpb"
)

updated, err := scalekitClient.Client().UpdateClient(ctx, "client_123", &clients.UpdateClient{
  Name: "Updated Name",
}, &fieldmaskpb.FieldMask{
  Paths: []string{"name"},
})
if err != nil {
  // handle
}
_ = updated.Client
```

    
  
</div>

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

      Runs `DeleteClient` and returns the result.

      
        Request context
      
      
        Client ID.
      
      
        error
      

```go wrap showLineNumbers=false
if err := scalekitClient.Client().DeleteClient(ctx, "client_123"); err != nil {
  // handle
}
```

    
  
</div>

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

      Runs `AddClientSecret` and returns the result.

      
        Request context
      
      
        Client ID.
      
      
        The created resource.
      

    
  
</div>

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

      Runs `RemoveClientSecret` and returns the result.

      
        Request context
      
      
        Client ID.
      
      
        Secret id.
      
      
        error
      

    
  
</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 |
