For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://modelgates.ai/docs/_mcp/server.
OAuth - Go SDK
The Go SDK and docs are currently in beta. Report issues on GitHub.
Overview
OAuth authentication endpoints
Available Operations
- ExchangeAuthCodeForAPIKey - Exchange authorization code for API key
- CreateAuthCode - Create authorization code
ExchangeAuthCodeForAPIKey
Exchange an authorization code from the PKCE flow for a user-controlled API key
Example Usage
go
package main import( "context" "os" modelgates "github.com/ModelGatesTeam/go-sdk" "github.com/ModelGatesTeam/go-sdk/models/operations" "github.com/ModelGatesTeam/go-sdk/optionalnullable" "log") func main() { ctx := context.Background() s := modelgates.New( modelgates.WithSecurity(os.Getenv("MODELGATES_API_KEY")), ) res, err := s.OAuth.ExchangeAuthCodeForAPIKey(ctx, operations.ExchangeAuthCodeForAPIKeyRequest{ Code: "auth_code_abc123def456", CodeChallengeMethod: optionalnullable.From(modelgates.Pointer(operations.ExchangeAuthCodeForAPIKeyCodeChallengeMethodS256)), CodeVerifier: modelgates.Pointer("dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk"), }) if err != nil { log.Fatal(err) } if res != nil { // handle response }}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. |
request | operations.ExchangeAuthCodeForAPIKeyRequest | :heavy_check_mark: | The request object to use for the request. |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
*operations.ExchangeAuthCodeForAPIKeyResponse, error
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.BadRequestResponseError | 400 | application/json |
| sdkerrors.ForbiddenResponseError | 403 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |
CreateAuthCode
Create an authorization code for the PKCE flow to generate a user-controlled API key
Example Usage
go
package main import( "context" "os" modelgates "github.com/ModelGatesTeam/go-sdk" "github.com/ModelGatesTeam/go-sdk/models/operations" "log") func main() { ctx := context.Background() s := modelgates.New( modelgates.WithSecurity(os.Getenv("MODELGATES_API_KEY")), ) res, err := s.OAuth.CreateAuthCode(ctx, operations.CreateAuthKeysCodeRequest{ CallbackURL: "https://myapp.com/auth/callback", CodeChallenge: modelgates.Pointer("E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM"), CodeChallengeMethod: operations.CreateAuthKeysCodeCodeChallengeMethodS256.ToPointer(), Limit: modelgates.Pointer[float64](100.0), }) if err != nil { log.Fatal(err) } if res != nil { // handle response }}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. |
request | operations.CreateAuthKeysCodeRequest | :heavy_check_mark: | The request object to use for the request. |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
*operations.CreateAuthKeysCodeResponse, error
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.BadRequestResponseError | 400 | application/json |
| sdkerrors.UnauthorizedResponseError | 401 | application/json |
| sdkerrors.ConflictResponseError | 409 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |