# Concepts

A gateway is the address AI clients use to reach your APIs.

## The terms

| Term | What it is | Where it lives in the portal |
| --- | --- | --- |
| API | An API Faustine has analyzed: its operations, their schemas, which ones write, how it authenticates. | [**APIs**](https://auth.faustine.ai/go?to=%2Fintegrations%2Fapis) |
| Operation | One thing a client can call, such as `crm.contacts.create`. An operation reads or writes, and can require confirmation. | The API's **Operations** tab |
| Gateway | Serves one or more APIs at one URL, over MCP and REST. | [**Agent Gateway**](https://auth.faustine.ai/go?to=%2Fintegrations%2Fagent-gateway) |
| Environment | A copy of the gateway's configuration with its own URL. Every gateway has Production. | The environment button in the gateway header |
| Credential | Who can call one environment. An API key or a gateway user. | The gateway's **Access** tab |
| Client | The program that connects: Claude, ChatGPT, Claude Code, Cursor, VS Code, n8n, the CLI or your own code. | The gateway's **Connect** tab |

## The order

A gateway is set up in the same order every time:

1. Analyze an API. A gateway can only serve an API that exists in **APIs**.
2. Create a gateway and choose the operations it serves. Every operation starts exposed, except recipes and deprecated operations.
3. Create an API key or a gateway user.
4. Connect a client.
5. Read the logs. Each request has an ID that starts with `req_`.

The gateway's **Overview** tab shows these steps with their state until all of them are done. The state is per environment, because each environment has its own APIs, credentials and traffic.

## Where each setting is made

Settings live at four levels. A setting made at one level cannot be changed at another.

| Level | What is set there |
| --- | --- |
| The API | Whether an operation reads or writes, and whether it requires confirmation. These apply to every gateway that serves the API. |
| The environment | The served APIs, their versions and connections, the exposed operations, the policies (MCP mode, limits, restrictions, repeated writes), the API reference, the variables and the log settings. |
| The credential | Its scope, whether it is read-only, what it does with operations that require confirmation, and limits lower than the environment's. A credential belongs to one environment. |
| The gateway | The name, the slug, **Published** or **Paused**, and the list of environments. These are in the **Settings** tab. |

## Operation keys

An operation has a key of the form `<namespace>.<operation>`, where `<namespace>` is the API's namespace. `crm.contacts.create` is the operation `contacts.create` of the API `crm`. The key appears in scopes, in logs, in the REST URL (`…/api/crm/contacts.create`) and in Code mode scripts (`sdk.crm.contacts.create(input)`).

## Next steps

- [Create a gateway](https://docs.faustine.ai/agent-gateway/create-a-gateway/): start with the wizard.
- [Environments](https://docs.faustine.ai/agent-gateway/environments/): what an environment owns.
- [Operations](https://docs.faustine.ai/apis/operations/): how the analysis classifies an operation.
- [Connect clients](https://docs.faustine.ai/agent-gateway/connect-clients/): which clients sign in and which carry a key.
