> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.runtype.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.runtype.com/_mcp/server.

# Integrations overview

Integrations connect Runtype to other apps and services. This page lists every integration, where you connect it, whether it works without your own key, and how Agents and Flows use it.

## Where you connect an integration

You connect an integration in one of four places:

* **Settings > Integrations**: API keys and configurations for services such as Exa, Firecrawl, Weaviate, Daytona, and Resend. This screen also connects Google and Granola.
* **The tool picker**: GitHub and Linear. When you add a GitHub or Linear tool to an Agent or a prompt step and no credential exists, the picker opens a setup form. You can also connect Google from the picker.
* **A Slack Surface**: the Slack setup wizard installs the Slack app that the Slack tools use.
* **Settings > Models**: AI model provider keys. For details, see [Connecting AI model providers](/user-guide/integrations/connecting-ai-model-providers).

A connection applies to the organization that is active when you add it. To connect a service for a different organization, switch to that organization first.

## Apps that Agents act in

These integrations give an Agent tools that read or change data in another app. A Flow uses the same tools from a prompt step. None of them has its own Flow step, and none has a platform key.

The following table lists each app integration:

| Integration                                                               | Where you connect it                                          | What the tools do                                                                        |
| ------------------------------------------------------------------------- | ------------------------------------------------------------- | ---------------------------------------------------------------------------------------- |
| [GitHub](/user-guide/integrations/github-integration)                     | Tool picker, with a personal access token                     | Manage issues and pull requests, read files, search code, and commit to a branch         |
| [Google Workspace](/user-guide/integrations/google-workspace-integration) | **Settings > Integrations > Google**, or the tool picker      | Send, search, read, and draft Gmail messages, and create, read, and edit Docs and Sheets |
| Granola                                                                   | **Settings > Integrations > Granola**, with a Granola API key | Read meeting notes, transcripts, and folders                                             |
| [Linear](/user-guide/integrations/linear-integration)                     | Tool picker, with a Linear API key                            | Create, update, and find issues, and add comments                                        |
| [Slack](/user-guide/integrations/slack-integration)                       | A Slack Surface, or the Runtype API                           | Send messages, read channels, and ask people questions in Slack                          |

After you connect Granola, choose which Granola connection each Granola tool uses when you add the tool.

## Services with keys in Settings

These integrations provide web data, vector search, code execution, email, analytics, and tracing. You add them in **Settings > Integrations**, under the section named in the table.

A platform key lets you use a service without your own account. Runtype bills platform-key calls as platform usage. For how that works, see [Platform keys vs. BYOK](/user-guide/getting-started/platform-keys-vs-byok).

The following table lists each service, whether it has a platform key, and how Agents and Flows use it:

| Integration                                                  | Settings section                       | Platform key | In an Agent                          | In a Flow                                    |
| ------------------------------------------------------------ | -------------------------------------- | ------------ | ------------------------------------ | -------------------------------------------- |
| Cloudflare Browser Rendering                                 | **Web Scraping**                       | Yes          | **Browser** built-in tools           | **Crawl Website** step                       |
| [Firecrawl](/user-guide/integrations/firecrawl-web-scraping) | **Web Scraping**                       | Yes          | **Firecrawl** built-in tool          | **Fetch URL** step                           |
| [Massive](/user-guide/integrations/massive-web-render)       | **Web Scraping**                       | Yes          | **Massive Web Render** built-in tool | **Fetch URL** step                           |
| [Exa](/user-guide/integrations/exa-web-search)               | **Web Scraping**                       | Yes          | **Exa** built-in tool                | **AI Search** step                           |
| [Weaviate](/user-guide/integrations/weaviate-vector-search)  | **Vector Databases**                   | No           | **Semantic Search** built-in tool    | **Vector Search** and **Store Vector** steps |
| Cloudflare Vectorize                                         | **Vector Databases**                   | No           | **Semantic Search** built-in tool    | **Vector Search** and **Store Vector** steps |
| Daytona                                                      | **Code Execution**                     | Yes          | Custom Tools that run in Daytona     | **Run Code** step                            |
| Resend                                                       | **Email**                              | Yes          | **Send Email** built-in tool         | **Send Email** built-in tool                 |
| PostHog                                                      | **Analytics & Observability**          | No           | Not available                        | **Send Event** step                          |
| Orthogonal                                                   | **Orthogonal**                         | Yes          | Orthogonal marketplace APIs          | Orthogonal marketplace APIs                  |
| [Braintrust](/user-guide/integrations/braintrust-tracing)    | None. Connect it with the Runtype API. | No           | Traces of every model call           | Traces of every model call                   |

The **Massive** section appears only when Massive is enabled for your account. Without your own Resend key, **Send Email** sends from a Runtype sender address. To send from your own domain, add a Resend key.

For PostHog, Daytona, and Orthogonal setup, see [Integrations (PostHog, Weaviate, Daytona)](/user-guide/settings/integrations-posthog-weaviate-daytona). For the built-in tools, see [Built-in tools](/user-guide/tools/built-in-tools).

### Plan requirements

Adding your own key or configuration for a service in the preceding table requires bring your own key (BYOK), which is included in the Team plan and higher. Without BYOK, use the services that have a platform key. For plan details, see [Billing and plans](/user-guide/settings/billing-and-plans).

To remove your own key and go back to the platform key, click **Remove Key** in that service's section.

## Manage service keys with the API

The `/v1/integration-configs` endpoints save, check, and remove keys for PostHog, Daytona, Firecrawl, Massive, Exa, and Resend. The API key that you use needs the `INTEGRATIONS:WRITE` permission to save or remove a key, and `INTEGRATIONS:READ` to check status.

The following request saves an Exa key:

**`cURL`**

```bash title="cURL"
curl -X POST https://api.runtype.com/v1/integration-configs/exa \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "apiKey": "YOUR_EXA_API_KEY" }'
```

Replace the following:

* `YOUR_API_KEY`: your Runtype API key.
* `YOUR_EXA_API_KEY`: the API key from your Exa account.

To see which services have your own key, send a `GET` request to `/v1/integration-configs`. The response has a `true` or `false` value for each service. To remove a key, send a `DELETE` request to `/v1/integration-configs/PROVIDER`, where `PROVIDER` is the service name, such as `exa`.

## Other ways to connect services

Two other features connect Runtype to outside services:

* To call any MCP server from an Agent, see [MCP servers](/developer-guides/integrations/mcp-servers).
* To reach users in Slack, SMS, iMessage, and other channels, set up a Surface. For details, see [What are Surfaces?](/user-guide/products-surfaces/what-are-surfaces).

## Next steps

Continue with these guides:

* [Connecting AI model providers](/user-guide/integrations/connecting-ai-model-providers): add model provider keys.
* [Built-in tools](/user-guide/tools/built-in-tools): add integration tools to an Agent or a Flow.
* [Using prompt steps](/user-guide/flows/using-prompt-steps): give a prompt step app integration tools.
* [Setting up a Slack Surface](/user-guide/products-surfaces/setting-up-a-slack-surface): install the Slack app.