For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://modelgates.ai/docs/_mcp/server.
OAuth - TypeScript SDK
The TypeScript 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
typescript
import { ModelGates } from "@modelgates/sdk"; const modelgates = new ModelGates({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const result = await modelgates.oAuth.exchangeAuthCodeForAPIKey({ requestBody: { code: "auth_code_abc123def456", codeChallengeMethod: "S256", codeVerifier: "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk", }, }); console.log(result);} run();Standalone function
The standalone function version of this method:
typescript
import { ModelGatesCore } from "@modelgates/sdk/core.js";import { oAuthExchangeAuthCodeForAPIKey } from "@modelgates/sdk/funcs/oAuthExchangeAuthCodeForAPIKey.js"; // Use `ModelGatesCore` for best tree-shaking performance.// You can create one instance of it to use across an application.const modelgates = new ModelGatesCore({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const res = await oAuthExchangeAuthCodeForAPIKey(modelgates, { requestBody: { code: "auth_code_abc123def456", codeChallengeMethod: "S256", codeVerifier: "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk", }, }); if (res.ok) { const { value: result } = res; console.log(result); } else { console.log("oAuthExchangeAuthCodeForAPIKey failed:", res.error); }} run();Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request | operations.ExchangeAuthCodeForAPIKeyRequest | :heavy_check_mark: | The request object to use for the request. |
options | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
options.fetchOptions | RequestInit | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All Request options, except method and body, are allowed. |
options.retries | RetryConfig | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
Response
Promise<operations.ExchangeAuthCodeForAPIKeyResponse>
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.ForbiddenResponseError | 403 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.ModelGatesDefaultError | 4XX, 5XX | */* |
createAuthCode
Create an authorization code for the PKCE flow to generate a user-controlled API key
Example Usage
typescript
import { ModelGates } from "@modelgates/sdk"; const modelgates = new ModelGates({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const result = await modelgates.oAuth.createAuthCode({ requestBody: { callbackUrl: "https://myapp.com/auth/callback", codeChallenge: "E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM", codeChallengeMethod: "S256", limit: 100, }, }); console.log(result);} run();Standalone function
The standalone function version of this method:
typescript
import { ModelGatesCore } from "@modelgates/sdk/core.js";import { oAuthCreateAuthCode } from "@modelgates/sdk/funcs/oAuthCreateAuthCode.js"; // Use `ModelGatesCore` for best tree-shaking performance.// You can create one instance of it to use across an application.const modelgates = new ModelGatesCore({ httpReferer: "<value>", appTitle: "<value>", appCategories: "<value>", apiKey: process.env["MODELGATES_API_KEY"] ?? "",}); async function run() { const res = await oAuthCreateAuthCode(modelgates, { requestBody: { callbackUrl: "https://myapp.com/auth/callback", codeChallenge: "E9Melhoa2OwvFrEMTJguCHaoeK1t8URWbuGJSstw-cM", codeChallengeMethod: "S256", limit: 100, }, }); if (res.ok) { const { value: result } = res; console.log(result); } else { console.log("oAuthCreateAuthCode failed:", res.error); }} run();Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
request | operations.CreateAuthKeysCodeRequest | :heavy_check_mark: | The request object to use for the request. |
options | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
options.fetchOptions | RequestInit | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All Request options, except method and body, are allowed. |
options.retries | RetryConfig | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
Response
Promise<operations.CreateAuthKeysCodeResponse>
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| errors.BadRequestResponseError | 400 | application/json |
| errors.UnauthorizedResponseError | 401 | application/json |
| errors.ConflictResponseError | 409 | application/json |
| errors.InternalServerResponseError | 500 | application/json |
| errors.ModelGatesDefaultError | 4XX, 5XX | */* |