# Mastra.addGateway()

Dynamically adds a gateway to the Mastra instance. Can be used during or after initialization.

## Usage example

```typescript
import { Mastra } from '@mastra/core'

const mastra = new Mastra()

// Add with explicit key
mastra.addGateway(new MyCustomGateway(), 'myGateway')

// Add using gateway's ID as the key
mastra.addGateway(new MyCustomGateway())
// Stored with key 'my-custom-gateway' (the gateway's id)
```

## Parameters

**gateway** (`MastraModelGateway`): The gateway instance to add

**key** (`string`): Optional registration key. If not provided, uses gateway.getId()

## Returns

Void. The gateway is added to the internal registry.

## Behavior

- If a gateway with the same key already exists, the addition is skipped
- In development mode (`MASTRA_DEV=true`), automatically triggers type generation for custom gateways
- The gateway becomes available immediately for model resolution

## Related

- [Mastra.getGateway()](https://mastra.ai/reference/core/getGateway): Get gateway by registration key
- [Mastra.getGatewayById()](https://mastra.ai/reference/core/getGatewayById): Get gateway by ID
- [Mastra.listGateways()](https://mastra.ai/reference/core/listGateways): List all gateways
- [MastraModelGateway](https://mastra.ai/reference/core/mastra-model-gateway): Gateway base class
- [Custom Gateways Guide](https://mastra.ai/models/gateways/custom-gateways): Creating custom gateways