> 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/ko/tools/api-integration.md).

# 커스텀 API 연동

API Call 도구를 사용하면 REST API가 있는 모든 외부 서비스에 Crew를 연결할 수 있습니다. Crew의 가장 유연한 도구로, API가 있는 서비스라면 무엇이든 연동 가능합니다.

## 동작 방식

1. 설정에 **API 자격증명 저장**
2. 자연어로 **Crew에게 API 호출 요청**
3. Crew가 API 요청을 구성하고 결과를 반환

## 자격증명 설정

외부 API를 사용하기 전에 API 키를 저장하세요:

1. **설정**으로 이동
2. **API 자격증명** 섹션으로 스크롤 (또는 API 키가 필요한 마켓플레이스 스킬 설치 시 설정)
3. 자격증명 추가:
   * **키 이름**: `MY_SERVICE_API_KEY` 같은 라벨
   * **값**: 실제 API 키

자격증명은 암호화되어 안전하게 저장됩니다. Crew가 API를 호출할 때 `{{KEY_NAME}}` 플레이스홀더로 자격증명을 주입하므로, 실제 키는 대화에 절대 노출되지 않습니다.

## API 호출하기

### 간단한 GET 요청

> "JSONPlaceholder API에서 처음 5개 글 가져와 줘: GET <https://jsonplaceholder.typicode.com/posts?\\_limit=5>"

### 인증 요청

> "내 API 키로 Airtable 베이스 확인해 줘: GET <https://api.airtable.com/v0/appXXXXX/Table1> Authorization: Bearer {{AIRTABLE\_API\_KEY}}"

### POST 요청

> "프로젝트 관리 도구에 새 작업 만들어 줘: POST <https://api.example.com/tasks> 본문 { "title": "제안서 검토", "priority": "high" }"

## 지원 HTTP 메서드

* **GET** — 데이터 조회
* **POST** — 새 리소스 생성
* **PUT** — 기존 리소스 대체
* **PATCH** — 부분 업데이트
* **DELETE** — 리소스 삭제

## 응답 유형

* **JSON** — 구조화된 데이터 (기본)
* **Text** — 일반 텍스트 응답
* **Binary** — 파일 다운로드

## 타임아웃

* 기본: 30초
* 최대: 120초

## 실전 예시

### Airtable 연동

> "내 Airtable API 키로 '프로젝트' 테이블의 모든 레코드를 가져와서 각 프로젝트 상태를 요약해 줘."

### Slack Webhook

> "팀 Slack 채널에 이 웹훅 URL로 메시지 보내 줘: \[webhook URL]. 메시지: '주간 보고서가 준비됐습니다.'"

### 커스텀 CRM

> "CRM API로 최신 거래 확인해 줘: GET <https://api.ourcrm.com/deals?status=open> 내 CRM API 키 사용해서."

### 날씨 서비스

> "OpenWeatherMap API로 서울 5일간 날씨 예보 가져와 줘."

### API 조합

> "금융 API로 삼성전자 주가 확인하고, 결과를 Slack 채널 웹훅으로 보내 줘."

## 요금제 제한

| 요금제   | 마켓플레이스 도구 (API 도구 포함) |
| ----- | --------------------- |
| Free  | 1                     |
| Basic | 5                     |
| Plus  | 15                    |
| Pro   | 무제한                   |

## 보안

* 자격증명은 AES-256-GCM으로 암호화되어 저장
* API 키는 대화 응답에 절대 표시되지 않음
* `{{KEY_NAME}}` 플레이스홀더 시스템으로 실행 시에만 키가 주입됨
* 저장된 자격증명은 설정에서 언제든 삭제 가능

## 팁

* **간단한 것부터 시작**: 복잡한 워크플로우 전에 기본 GET 요청으로 테스트하세요
* **API 문서 확인**: 엔드포인트 형식과 필수 헤더를 미리 파악하세요
* **예약 작업과 함께**: API 호출과 예약 작업을 결합해서 자동화된 모니터링을 구축하세요
* **연쇄 요청**: "API A에서 데이터 가져와서 처리한 후, 결과를 API B로 보내 줘" 같은 순차적 호출도 가능합니다
