> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect an integration

> Connect projects to external services, OAuth providers, channels, and storage.

Connect an integration when project work needs an external service or tool.

## Steps

1. Choose the service in the [integration catalog](/cloud/integration-catalog).
2. Connect OAuth when the service needs user or workspace authorization.
3. For API key, basic auth, and client-credentials integrations, set the environment variables named in the integration's setup guide (for example `STRIPE_SECRET_KEY`).
4. For experimental integrations, set `VERYFRONT_EXPERIMENTAL_INTEGRATIONS` to `all` or to a comma-separated list of integration names.
5. Enable the tools, channels, or storage surfaces the project needs.
6. Test the integration from the project.
7. Review access when project ownership changes.

## Set credential environment variables

Credential-based integrations (API key, basic auth, client credentials) read their secrets from the project's environment variables. The integration's setup guide names the exact keys.

Set variables per environment in Studio under the project's environment settings, or with [Create Environment Variable](/cloud/rest/api-reference/environment-variables/create-environment-variable):

`POST /projects/{project_reference}/environment-variables?environment_id={environment_id}`

```bash title="Terminal" theme={null}
curl -X POST "https://api.veryfront.com/projects/my-project/environment-variables?environment_id=$ENVIRONMENT_ID" \
  -H "Authorization: Bearer $VERYFRONT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "key": "STRIPE_SECRET_KEY", "value": "sk_live_..." }'
```

For local development, put the same keys in the project's `.env` file. See [Configuration](/code/guides/configuration) for how the framework reads them and [Projects and configuration](/cloud/projects-and-configuration) for environments.

## Try it with REST

List available integrations:

`GET /integrations`

```bash title="Terminal" theme={null}
curl https://api.veryfront.com/integrations \
  -H "Authorization: Bearer $VERYFRONT_API_KEY"
```

List connected OAuth accounts:

`GET /integrations/user-connections`

```bash title="Terminal" theme={null}
curl https://api.veryfront.com/integrations/user-connections \
  -H "Authorization: Bearer $VERYFRONT_API_KEY"
```

## API surfaces

| Surface | Start here                                                                                                                                                                                                                                        |
| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| REST    | [Integrations](/cloud/rest/api-reference/integrations/list-integrations), [Project Integrations](/cloud/rest/api-reference/project-integrations/list-project-integrations), [OAuth](/cloud/rest/api-reference/oauth/create-oauth-connect-session) |
| GraphQL | [Integrations](/cloud/graphql/operations/integrations/queries/integrations), [User OAuth Connected Integrations](/cloud/graphql/operations/oauth/queries/useroauthconnectedintegrations)                                                          |
| MCP     | [List Integrations](/cloud/mcp/tools/list-integrations), [List User OAuth Integrations](/cloud/mcp/tools/list-user-oauth-integrations)                                                                                                            |

## Verify

Confirm the integration appears in the project.

Run a small read-only tool call before using the integration in production work. Tools that change external state are marked as write tools; start with a read.

If a credential-based integration fails, confirm the environment variable names match the integration's setup guide exactly.

## Integration surfaces

| Surface          | Use it for                                   |
| ---------------- | -------------------------------------------- |
| Integration      | Service connected to a project.              |
| OAuth connection | User or workspace authorization.             |
| Tool             | Callable action exposed by the service.      |
| Channel          | Messaging surface connected to project work. |
| External storage | Files managed outside Veryfront.             |

## API reference

| API                       | Use                                                                     |
| ------------------------- | ----------------------------------------------------------------------- |
| [REST](/cloud/rest)       | Integrations, integration tools, OAuth, channels, and external storage. |
| [GraphQL](/cloud/graphql) | Integration, OAuth, channel, and storage views.                         |
| [MCP](/cloud/mcp)         | Integration, OAuth, channel, and storage tools.                         |
