# 오토케 API

> 게시물 초안을 만들고 확인한 뒤, 연결된 소셜 미디어 채널에 바로 올리거나 원하는 시각에 예약할 수 있습니다.

## 5분 안에 시작하기

### 1. API 키 발급

1. [오토케 계정 페이지](https://autoke.ai/ko/account)에 로그인하십시오.
2. **API 키** 영역에서 **키 만들기**를 선택하십시오.
3. `ak_live_`로 시작하는 키를 복사해 안전한 곳에 보관하십시오.

전체 키는 발급 직후 한 번만 표시됩니다. API 키는 비밀번호처럼 다루고 브라우저 코드나 공개 저장소에 넣지 마십시오. API 키를 사용하려면 활성 구독이 필요합니다.

하위 사용자의 계정 화면에서 키를 만들면 해당 브랜드에 연결된 채널만 사용할 수 있습니다. 여러 브랜드를 운영한다면 브랜드마다 키를 구분하는 것이 안전합니다.

> **권장**
>
> API를 자동화해 연속 호출한다면 크레딧 부족으로 작업이 중단되지 않도록 [결제 및 크레딧](https://autoke.ai/ko/billing)에서 자동 충전을 켜는 것을 권장합니다. 자동 충전은 지원되는 계정에서 사용할 수 있습니다.

### 2. 첫 게시물 초안 생성

모든 요청에 API 키와 JSON 형식을 알리는 헤더를 추가하십시오.

```bash
curl https://autoke.ai/api/v3/generate-post \
  -H "Authorization: Bearer ak_live_your_key" \
  -H "Content-Type: application/json" \
  -d '{
	"instruction": "여름 한정 복숭아 에이드 출시 소식 써줘",
    "platforms": ["threads"],
    "language": "Korean"
  }'
```

성공하면 자동으로 게시되지 않은 초안이 반환됩니다. 내용을 확인하고 필요한 경우 수정하십시오.

```json
{
	"success": true,
	"data": {
		"content": "올해 복숭아 당도가 유난히 좋아서 드디어 에이드 시작했어.\n\n매일 아침마다 잘 익은 것만 골라서 직접 청 담그는 게 일이지만 그래도 이 맛은 포기 못 해.\n\n인공 시럽 하나도 안 쓰고 오직 과육으로만 맛을 냈어.",
		"timeSlot": "Lunch Break"
	}
}
```

위 응답은 같은 요청으로 실제 생성된 결과입니다. `timeSlot`은 게시물이 가장 잘 노출될 것으로 예상되는 시간대입니다.

### 3. 확인한 게시물 게시

- 지금 게시: `POST /api/v3/post-now`
- 원하는 시각에 예약: `POST /api/v3/schedule-post`

> **중요**
>
> 게시 요청 전에 오토케 계정에 대상 플랫폼 채널이 연결되어 있어야 합니다.

Instagram에는 이미지나 비디오가 필요합니다.

## 사용 가능한 기능

### 게시물 초안 만들기

`POST /api/v3/generate-post`

원하는 주제와 말투를 `instruction`에 자연어로 입력하십시오. 결과는 `data.content`로 반환되며 게시물 생성 크레딧 20개를 사용합니다.

### 게시물 이미지 만들기

`POST /api/v3/generate-image`

원하는 장면을 `prompt`에 설명하십시오. 기존 이미지를 수정하려면 `imageURLs`와 `mode: "edit"`를 함께 보낼 수 있습니다. 이미지 생성 크레딧 300개를 사용합니다.

### 프로필 소개 문구 만들기

`POST /api/v3/generate-bio`

원하는 방향을 `instruction`에 입력하거나 기존 문구를 `content`로 보내십시오. 브랜드명, 브랜드 설명, 플랫폼을 함께 보내면 더 알맞은 결과를 만들 수 있습니다. 크레딧 20개를 사용합니다.

### 바로 게시하거나 예약하기

`POST /api/v3/post-now` 또는 `POST /api/v3/schedule-post`

지원 플랫폼은 `x`, `facebook`, `instagram`, `threads`입니다. 응답의 `results`에서 플랫폼별 성공 여부를 확인할 수 있습니다.

## 오류 응답 확인하기

요청이 실패하면 HTTP 상태 코드와 함께 `success: false`가 반환됩니다. `error.code`는 HTTP 상태 코드와 같고, `error.message`에서 구체적인 원인을 확인할 수 있습니다.

```json
{
	"success": false,
	"error": {
		"code": 401,
		"message": "유효하지 않은 API 키입니다"
	}
}
```

- `400 잘못된 요청`: 필수 값이 없거나 형식이 올바르지 않습니다. 해당 작업의 요청 예시와 필수 필드를 확인하십시오.
- `401 인증 실패`: API 키가 빠졌거나 유효하지 않습니다. `Authorization: Bearer YOUR_API_KEY` 형식인지 확인하십시오.
- `402 크레딧 부족`: 생성에 필요한 크레딧이 부족합니다. 잔여 크레딧을 확인하고, 연속 호출에는 자동 충전 사용을 권장합니다.
- `403 구독 필요`: 현재 구독으로 API 키를 사용할 수 없습니다. 구독 상태를 확인하십시오.
- `500 서버 오류`: 서버에서 요청을 처리하지 못했습니다. 잠시 후 다시 시도하십시오.

예를 들어 생성에 필요한 크레딧이 부족하면 다음과 같은 `402` 응답이 반환됩니다.

```json
{
	"success": false,
	"error": {
		"code": 402,
		"message": "크레딧이 부족합니다"
	}
}
```

플랫폼 게시 요청은 HTTP 요청 자체가 성공해도 일부 플랫폼에서 실패할 수 있습니다. 이 경우 `results`의 각 항목을 확인하십시오.

```json
{
	"success": false,
	"results": [
		{
			"platform": "instagram",
			"success": false,
			"error": "No instagram channel found"
		}
	],
	"postIDs": []
}
```

## 더 자세히 보기

- [대화형 API 문서](https://autoke.ai/ko/api-docs)
- [OpenAPI 3.1 명세](https://autoke.ai/openapi/ko.json)
- [오토케 계정](https://autoke.ai/ko/account)
