---
title: How do I add an integration that has no built-in card?
question: add custom integration endpoint API key documentation
area: integrations
surface: desktop
audience: beginner
keywords: [custom integration, API, endpoint, authentication, draft, needs key, generated skill, header, query]
related: [integrations-overview, connect-work-tools, check-integration-usage]
updated: 2026-09-09
visibility: public
---

# How do I add an integration that has no built-in card?

Use **Settings → Integrations → Add custom integration** to connect an API that has no built-in card. Save its address, authentication choice and usage documentation. This is different from adding an [MCP server](../mcp/what-are-custom-tools-mcp.md).

## Before you start

Use a service you trust and an account you are authorised to connect. Check its charges and give the credential only the permissions needed. API means a service's interface for software to call.

## Add the connection

1. Open **Settings → Integrations**, then **Add custom integration** under **Your custom integrations**.
2. Enter the service name, its identifier and **Base URL**.
3. Choose **Authentication** to match the service documentation. Enter the header or query parameter name when the form asks for one.
4. Paste the credential into **API key or token**, never into the documentation box.
5. Add **Agent documentation** describing supported requests, restrictions and examples without secrets. Add helpful **Links**.
6. Click **Add integration**.

Leaving the credential blank on a new authenticated integration saves a draft showing **Needs key**. Leaving it blank while editing an integration with a saved key keeps that key. Saving a draft is not proof that calls can authenticate.

## Check or remove it

Ask for a small read-only check after saving, not a purchase or destructive change. Use the card's edit or remove actions when needed. Removing the connection does not cancel your subscription with the provider.

## How do I know it worked?

The card has the expected address and authentication status, and a permitted read-only request succeeds. A masked-key label confirms storage, not the correctness of every endpoint or permission.
