# 개발자

> REST API, TypeScript SDK, CLI로 Nodaro 기반 제품을 만드세요. API 토큰이나 OAuth로 인증하고, OpenAPI로 클라이언트를 생성하고, MCP로 AI 에이전트를 연결합니다.

Source: https://nodaro.ai/ko/docs/developers

Nodaro는 **REST 우선**으로 만들어졌습니다. Nodaro 편집기, TypeScript SDK, CLI는 모두 같은 HTTP API와 통신하므로, Nodaro에서 하는 모든 일은 Bearer 토큰과 JSON 요청으로 자동화할 수 있습니다. 이 섹션은 그 API와 클라이언트, 인증 방법, 그리고 Nodaro를 내 제품 안에 넣는 방법을 설명합니다. AI 어시스턴트는 [MCP 서버](https://nodaro.ai/docs/mcp)를 통해 같은 워크플로와 모델에 접근합니다.

## 세 가지 사용 방법
| 방법 | 설치 | 용도 |
| --- | --- | --- |
| [REST API](https://nodaro.ai/docs/developers/api) | 필요 없음: `https://app.nodaro.ai/v1/`로 HTTPS 요청을 보내세요 | 모든 언어, 모든 플랫폼 |
| [TypeScript SDK](https://nodaro.ai/docs/developers/sdk) | `npm install @nodaro/sdk` | Node, 브라우저, React Native, 엣지 런타임의 타입이 지정된 코드 |
| [CLI](https://nodaro.ai/docs/developers/cli) | `npm install -g @nodaro/cli` 또는 독립 실행형 바이너리 | 터미널, cron 작업, CI 파이프라인 |

SDK는 `fetch`와 `URL`을 사용하므로 Node.js 20 이상, 브라우저, React Native, 그리고 Cloudflare Workers, Deno, Bun에서 작동합니다. CLI는 SDK를 감싼 얇은 래퍼입니다. CLI가 하는 일은 SDK도 모두 할 수 있습니다.

저장된 워크플로를 실행하는 같은 호출을 세 가지 방법으로 보여 줍니다.

**curl**

```bash
curl -s -X POST https://app.nodaro.ai/v1/workflows/8c2d7f1e-3a4b-4c5d-9e6f-7a8b9c0d1e2f/run \
  -H "Authorization: Bearer $NODARO_API_KEY"
# {"executionId":"3f9e2b1a-…","status":"pending"}
```

**TypeScript SDK**

```ts

const client = createClient({
baseUrl: 'https://app.nodaro.ai',
auth: new StaticTokenAuth(process.env.NODARO_API_KEY!),
})

const { executionId } = await client.workflows.run('8c2d7f1e-3a4b-4c5d-9e6f-7a8b9c0d1e2f')
```

**CLI**

```bash
nodaro auth login --token "$NODARO_API_KEY"
nodaro workflows run 8c2d7f1e-3a4b-4c5d-9e6f-7a8b9c0d1e2f --watch
```

세 가지는 어디서나 같은 방식으로 작동합니다.

- **무엇이든 실행합니다.** 저장된 [워크플로](https://nodaro.ai/docs/developers/api/workflows), 게시된 [앱](https://nodaro.ai/docs/developers/embed/miniapps), 또는 단일 [노드](https://nodaro.ai/docs/developers/api/nodes)를 `POST /v1/<node-type>`으로 실행할 수 있으며, 워크플로를 만들 필요가 없습니다.
- **결과를 폴링합니다.** 생성에는 몇 초에서 몇 분이 걸리므로, 실행은 즉시 ID를 반환하고, 그 [작업](https://nodaro.ai/docs/developers/api/jobs)이나 [실행](https://nodaro.ai/docs/developers/api/executions)을 폴링합니다. SDK와 CLI는 대신 기다려 줄 수 있습니다.
- **토큰 없이 살펴봅니다.** `GET /v1/nodes`와 `GET /v1/models`는 모든 노드와 모델을 설정, 크레딧 가격과 함께 나열합니다.

## 인증
| 자격 증명 | 형식 | 사용할 때 |
| --- | --- | --- |
| 개인 API 토큰 | `ndr_…` | 내 서버, 스크립트, CI 작업이 내 계정으로 Nodaro를 호출할 때. **설정 › API 토큰**에서 만드세요. |
| OAuth 액세스 토큰 | `ndr_app_…` | 내 제품이 사용자의 동의를 받아 사용자 자신의 Nodaro 계정에서 워크플로를 실행할 때. |
| 세션 JWT | JWT | 셀프 호스팅 Community Edition을 직접 운영할 때. |

API 토큰은 Nodaro Cloud와 Business 에디션에서 사용할 수 있습니다. 셀프 호스팅 설치도 OAuth 없이 개인 API 토큰으로 생성을 Nodaro Cloud에서 실행할 수 있습니다. [인증](https://nodaro.ai/docs/developers/api/authentication)과 [OAuth 앱](https://nodaro.ai/docs/developers/oauth)을 읽어 보세요.

## OpenAPI 사양
서버는 API 핵심 부분의 OpenAPI 3.1 사양을 `https://app.nodaro.ai/v1/openapi.json`에 게시합니다. 이 사양으로 Go, Rust, Python 또는 다른 언어의 타입이 지정된 클라이언트를 생성하세요. [OpenAPI 사양](https://nodaro.ai/docs/developers/api/openapi)을 참조하세요.

## AI 에이전트용
- **MCP.** Claude, ChatGPT, Cursor 및 다른 MCP 클라이언트에 `https://mcp.nodaro.ai/mcp`를 사용자 지정 커넥터로 추가하세요. 어시스턴트는 내 Nodaro 계정으로 로그인하고, 미디어를 생성하고, 워크플로를 만들고 실행하고, 캐릭터와 다른 에셋을 관리하는 도구를 얻습니다. [MCP](https://nodaro.ai/docs/mcp)를 참조하세요.
- **에이전트 스킬.** 스킬 파일은 Claude Code, Cursor 같은 코딩 어시스턴트에게 SDK 사용법과 OAuth 앱을 만드는 방법을 가르칩니다. [에이전트 스킬](https://nodaro.ai/docs/developers/agent-skills)을 참조하세요.

## 내 제품에 Nodaro 넣기
- **앱을 임베드합니다.** 게시된 Nodaro 앱을 내 웹 인터페이스나 모바일 인터페이스에서 실행하세요. [임베드](https://nodaro.ai/docs/developers/embed)를 참조하세요.
- **피커를 직접 만듭니다.** **크리에이티브 컨트롤** 카탈로그는 `@nodaro/prompts`에 데이터로 들어 있으므로, 내 앱에서도 같은 선택지를 제공하고 같은 프롬프트를 작성할 수 있습니다. [피커 카탈로그](https://nodaro.ai/docs/developers/picker-catalogs)를 참조하세요.
- **내 ID 공급자로 사용자를 로그인시킵니다.** [SSO](https://nodaro.ai/docs/developers/sso)를 참조하세요.
- **자체 지갑으로 청구합니다.** 배포 환경은 각 고객의 지출을 자체 지갑으로 승인할 수 있습니다. [외부 지갑](https://nodaro.ai/docs/developers/external-wallet)을 참조하세요.

## 개발자 문서 살펴보기
  - [REST API](https://nodaro.ai/docs/developers/api): 
HTTPS로 워크플로와 노드를 실행하고, 작업을 폴링하고, 미디어를 업로드하고, 에셋을 관리합니다.
  
  - [TypeScript SDK](https://nodaro.ai/docs/developers/sdk): 
@nodaro/sdk: Node, 브라우저, 엣지 런타임용 타입이 지정된 메서드, 타입이 지정된 오류, 폴링 도우미입니다.
  
  - [CLI](https://nodaro.ai/docs/developers/cli): 
@nodaro/cli: 터미널이나 CI 작업에서 워크플로, 앱, 단일 노드를 실행합니다.
  
  - [OAuth 앱](https://nodaro.ai/docs/developers/oauth): 
사용자가 범위가 지정된 토큰으로 자신의 Nodaro 계정을 내 제품에 연결하게 합니다.
  
  - [SSO](https://nodaro.ai/docs/developers/sso): 
신뢰할 수 있는 ID 공급자가 내 Nodaro 설치에 사용자를 로그인시키게 합니다.
  
  - [피커 카탈로그](https://nodaro.ai/docs/developers/picker-catalogs): 
게시된 카탈로그로 내 앱에 크리에이티브 컨트롤 피커를 만듭니다.
  
  - [임베드](https://nodaro.ai/docs/developers/embed): 
내 인터페이스에서 게시된 앱을 실행하거나, 대화형 3D 미리보기를 임베드합니다.
  
  - [외부 지갑](https://nodaro.ai/docs/developers/external-wallet): 
배포 환경의 자체 지갑으로 각 고객의 지출을 승인합니다.
  
  - [에이전트 스킬](https://nodaro.ai/docs/developers/agent-skills): 
코딩 어시스턴트에게 SDK 사용법과 OAuth 앱 만드는 방법을 가르치는 스킬 파일입니다.

## 자주 묻는 질문

### Nodaro에 API가 있나요?

네. https://app.nodaro.ai/v1/의 Nodaro REST API는 워크플로와 단일 노드를 실행하고, 작업 상태를 알려 주고, 내 미디어를 저장하고, 캐릭터와 다른 에셋을 관리합니다. JSON과 Bearer 토큰을 사용하며, 셀프 호스팅 설치에서도 같은 API가 작동합니다.

### Nodaro API용 공식 SDK가 있나요?

네, TypeScript와 JavaScript용 @nodaro/sdk가 있습니다. Node.js 20 이상에서 작동하며, 브라우저, React Native, Cloudflare Workers, Deno, Bun을 포함해 전역 fetch와 URL이 있는 모든 런타임에서 작동합니다.

### AI 에이전트는 Nodaro를 어떻게 사용하나요?

https://mcp.nodaro.ai/mcp의 Nodaro MCP 서버를 통해 사용합니다. Claude, ChatGPT, Cursor 같은 어시스턴트가 내 Nodaro 계정으로 로그인한 다음 미디어를 생성하고, 워크플로를 만들고 실행할 수 있습니다.

### 셀프 호스팅 Community Edition에서도 API를 사용할 수 있나요?

네. Community Edition 설치는 같은 엔드포인트를 제공하며, 로그인한 세션의 JWT로 인증합니다. API 토큰에는 Business 에디션이나 Nodaro Cloud가 필요하고, 크레딧은 Nodaro Cloud에만 있습니다.

### API 토큰과 OAuth 중 무엇을 써야 하나요?

내 서버가 내 계정으로 Nodaro를 호출할 때는 개인 API 토큰을 사용하세요. 제품을 만들고 각 사용자가 자신의 Nodaro 계정을 그 제품에 연결할 때는 OAuth를 사용하세요.
