> For the complete documentation index, see [llms.txt](https://docs.crew.you/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.crew.you/tools/api-integration.md).

# Custom API Integration

The API Call tool lets you connect Crew to any external service that has a REST API. This is Crew's most flexible tool — if a service has an API, you can connect it.

## How It Works

1. **Store your API credentials** in Settings
2. **Ask Crew** to call the API with natural language
3. Crew constructs the API request and returns the results

## Setting Up Credentials

Before using an external API, store your API key:

1. Go to **Settings**
2. Scroll to **API Credentials** (or configure them when installing a Marketplace skill that requires one)
3. Add your credential:
   * **Key name**: A label like `MY_SERVICE_API_KEY`
   * **Value**: Your actual API key

Credentials are encrypted and stored securely. When Crew makes API calls, it injects the credential using a `{{KEY_NAME}}` placeholder — the actual key is never exposed in conversation.

## Making API Calls

### Simple GET Request

> "Call the JSONPlaceholder API to get the first 5 posts: GET <https://jsonplaceholder.typicode.com/posts?\\_limit=5>"

### Authenticated Request

> "Check my Airtable base using my API key: GET <https://api.airtable.com/v0/appXXXXX/Table1> with Authorization: Bearer {{AIRTABLE\_API\_KEY}}"

### POST Request

> "Create a new task in my project management tool: POST <https://api.example.com/tasks> with body { "title": "Review proposal", "priority": "high" }"

## Supported HTTP Methods

* **GET** — Retrieve data
* **POST** — Create new resources
* **PUT** — Replace existing resources
* **PATCH** — Partially update resources
* **DELETE** — Remove resources

## Response Types

* **JSON** — Structured data (default)
* **Text** — Plain text responses
* **Binary** — File downloads

## Timeout

* Default: 30 seconds
* Maximum: 120 seconds

## Practical Examples

### Airtable Integration

> "Use my Airtable API key to list all records in the 'Projects' table and summarize the status of each project."

### Slack Webhook

> "Send a message to our team's Slack channel using this webhook URL: \[webhook URL]. Message: 'The weekly report is ready.'"

### Custom CRM

> "Check our CRM API for the latest deals: GET <https://api.ourcrm.com/deals?status=open> with my CRM API key."

### Weather Service

> "Use the OpenWeatherMap API to get the 5-day forecast for London."

### Combining APIs

> "Check the stock price using the financial API, then post the result to our Slack channel using the webhook."

## Plan Limits

| Plan  | Marketplace Tools (including API tools) |
| ----- | --------------------------------------- |
| Free  | 1                                       |
| Basic | 5                                       |
| Plus  | 15                                      |
| Pro   | Unlimited                               |

## Security

* Credentials are encrypted at rest (AES-256-GCM)
* API keys are never shown in conversation responses
* The `{{KEY_NAME}}` placeholder system ensures keys are only injected at execution time
* You can delete stored credentials at any time from Settings

## Tips

* **Start simple**: Test with a basic GET request before building complex workflows
* **Check API docs**: Make sure you know the endpoint format and required headers
* **Use with scheduled tasks**: Combine API calls with scheduled tasks for automated monitoring
* **Chain requests**: You can ask Crew to make multiple API calls in sequence — e.g., "Get data from API A, process it, then send the result to API B"
