For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://modelgates.ai/docs/_mcp/server.
Beta.Responses - Go SDK
The Go SDK and docs are currently in beta. Report issues on GitHub.
Overview
beta.responses endpoints
Available Operations
- Send - Create a response
Send
Creates a streaming or non-streaming response using OpenResponses API format
Example Usage: guardrail-blocked
go
package main import( "context" "os" modelgates "github.com/ModelGatesTeam/go-sdk" "github.com/ModelGatesTeam/go-sdk/models/components" "log") func main() { ctx := context.Background() s := modelgates.New( modelgates.WithSecurity(os.Getenv("MODELGATES_API_KEY")), ) res, err := s.Beta.Responses.Send(ctx, components.ResponsesRequest{}, nil) if err != nil { log.Fatal(err) } if res != nil { defer res.ResponsesStreamingResponse.Close() for res.ResponsesStreamingResponse.Next() { event := res.ResponsesStreamingResponse.Value() log.Print(event) // Handle the event } }}Example Usage: insufficient-permissions
go
package main import( "context" "os" modelgates "github.com/ModelGatesTeam/go-sdk" "github.com/ModelGatesTeam/go-sdk/models/components" "log") func main() { ctx := context.Background() s := modelgates.New( modelgates.WithSecurity(os.Getenv("MODELGATES_API_KEY")), ) res, err := s.Beta.Responses.Send(ctx, components.ResponsesRequest{}, nil) if err != nil { log.Fatal(err) } if res != nil { defer res.ResponsesStreamingResponse.Close() for res.ResponsesStreamingResponse.Next() { event := res.ResponsesStreamingResponse.Value() log.Print(event) // Handle the event } }}Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
ctx | context.Context | :heavy_check_mark: | The context to use for the request. | |
responsesRequest | components.ResponsesRequest | :heavy_check_mark: | N/A | {"input": [{"content": "Hello, how are you?","role": "user","type": "message"}], "model": "anthropic/claude-4.5-sonnet-20250929", "temperature": 0.7, "tools": [ {"description": "Get the current weather in a given location","name": "get_current_weather","parameters": {"properties": {"location": {"type": "string"}}, "type": "object" }, "type": "function" } ], "top_p": 0.9 } |
xModelGatesExperimentalMetadata | *components.MetadataLevel | :heavy_minus_sign: | Opt-in to surface routing metadata on the response under modelgates_metadata. Defaults to disabled. | enabled |
opts | []operations.Option | :heavy_minus_sign: | The options for this request. |
Response
*operations.CreateResponsesResponse, error
Errors
| Error Type | Status Code | Content Type |
|---|---|---|
| sdkerrors.BadRequestResponseError | 400 | application/json |
| sdkerrors.UnauthorizedResponseError | 401 | application/json |
| sdkerrors.PaymentRequiredResponseError | 402 | application/json |
| sdkerrors.ForbiddenResponseError | 403 | application/json |
| sdkerrors.NotFoundResponseError | 404 | application/json |
| sdkerrors.RequestTimeoutResponseError | 408 | application/json |
| sdkerrors.PayloadTooLargeResponseError | 413 | application/json |
| sdkerrors.UnprocessableEntityResponseError | 422 | application/json |
| sdkerrors.TooManyRequestsResponseError | 429 | application/json |
| sdkerrors.InternalServerResponseError | 500 | application/json |
| sdkerrors.BadGatewayResponseError | 502 | application/json |
| sdkerrors.ServiceUnavailableResponseError | 503 | application/json |
| sdkerrors.EdgeNetworkTimeoutResponseError | 524 | application/json |
| sdkerrors.ProviderOverloadedResponseError | 529 | application/json |
| sdkerrors.APIError | 4XX, 5XX | */* |