OMEGA FOR DEVELOPERS
Build on Omega 누구나 만든 AI AGENT를 당신의 서비스에서 발견·임베드·대화하게 하세요. RAG 엔진은 우리가, 연동은 한 줄로.
Quickstart (1분) 공개 AI AGENT 디렉터리를 조회합니다. 인증 없이 바로 호출 가능합니다.
curl
복사 curl https://omega.itshin.com/api/agents/directory JavaScript
복사 const res = await fetch('https://omega.itshin.com/api/agents/directory');
const { agents } = await res.json();
console.log(agents[0].name, agents[0].handle); MCP Server NEW ChatGPT·Claude 등 MCP 클라이언트가 AI AGENT의 지식을 도구로 쓰게 하는 단일 진입점입니다. Streamable HTTP · stateless · JSON-RPC 2.0 — 세션(Mcp-Session-Id)과 SSE 스트림은 쓰지 않습니다.
POST https://api.omega.itshin.com/mcpJSON-RPC 2.0 (initialize · tools/list · tools/call · ping)
인증 — OAuth 2.1 (권장) — 클라이언트에 위 주소만 넣으면 됩니다. 무자격 요청에 돌려주는 401 의 WWW-Authenticate 가 보호 자원 메타데이터(RFC 9728)를 가리키고, 클라이언트는 거기서 인가 서버를 찾아 스스로 등록(RFC 7591)한 뒤 PKCE(S256) 인가 코드 흐름으로 토큰을 받습니다. 사용자는 로그인 화면에서 «허용»만 누르면 됩니다.
/.well-known/oauth-protected-resource보호 자원 메타데이터 (RFC 9728) — 경로 삽입형 /mcp 도 같은 문서
/.well-known/oauth-authorization-server인가 서버 메타데이터 (RFC 8414) — /.well-known/openid-configuration 별칭도 같은 문서
POST /oauth/register · /oauth/authorize · /oauth/token · /oauth/revoke동적 등록 · 인가 · 토큰(회전) · 폐기. 스코프는 mcp 하나, 공개 클라이언트 + PKCE(S256) 필수
발급된 access 토큰은 1시간, refresh 는 30일(사용할 때마다 갱신·회전)이며 재사용이 감지되면 그 인가에서 나온 토큰이 전부 폐기됩니다. 사용자는 설정 › Developers 의 «연결된 AI»에서 언제든 연결을 끊을 수 있고, 연결·해제 때 알림을 받습니다. 과금은 API 키와 같은 장부를 쓰며 무료 콜은 계정 단위로 합산됩니다.
인증 — API 키 (구형·레거시) — 기존 방식도 계속 받습니다. Authorization: Bearer omega_... 또는 헤더를 넣을 수 없는 커넥터 UI라면 ?key=omega_... 쿼리. 주소 자체가 비밀이 되므로 유출되면 폐기·재발급해야 합니다 — 새 연동에는 위 OAuth 를 쓰세요. (OAuth 토큰은 헤더로만 받습니다 — 주소에 실리지 않습니다.)
list_agents(mine?, limit?)이 키로 닿을 수 있는 AI AGENT 목록 + 지식 규모(문서·조각 개수만)
knowledge_toc(handle)그 에이전트가 배운 목차 — 파일명·종류·상태·글자수·조각수·날짜(본문 없음)
ask_agent(handle, question, lang?)지식에 근거한 답변 + 근거 문서 제목. 과금은 /v1 대화와 같은 경로
도구 목록 조회
복사 curl -X POST https://api.omega.itshin.com/mcp \
-H "Authorization: Bearer omega_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' 도구 실행 — ask_agent
복사 curl -X POST https://api.omega.itshin.com/mcp \
-H "Authorization: Bearer omega_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"ask_agent",
"arguments":{"handle":"netclaus","question":"환불 규정 알려줘"}}}' Claude Code — 키 없이(OAuth)
복사 claude mcp add --transport http omega https://api.omega.itshin.com/mcp Claude Code — 구형(레거시) 키로
복사 claude mcp add --transport http omega https://api.omega.itshin.com/mcp \
--header "Authorization: Bearer omega_..." 커넥터 UI — ChatGPT: 설정 → 커넥터 → 새 커넥터에 위 주소를. Claude: 설정 → Connectors → Add custom connector 에 같은 주소를. 그러면 로그인·허용 화면이 뜨고 그것으로 끝입니다 — 붙여넣을 키가 없습니다. 구형(레거시) 방식이 필요하면 주소 끝에 ?key=omega_... 를 붙이세요. (다른 AI도 원격 MCP를 지원하면 같은 주소로 연결됩니다.)
-32001키 없음·폐기된 키 (HTTP 401)
-32601모르는 메서드 — resources/prompts/sampling 은 제공하지 않습니다
-32602없는 도구 이름 또는 잘못된 인자
-32600JSON-RPC 배치(배열) 요청 — 2025-06-18 스펙대로 받지 않습니다
isError도구가 «결과로» 실패한 경우(없는 핸들·비공개 에이전트 등). 프로토콜 오류가 아니라 모델이 읽고 고칠 수 있는 텍스트로 돌려줍니다.
없을 때 — GET /mcp 는 405 와 연결 방법 안내를 돌려줍니다. 지식을 하나도 배우지 않은 에이전트의 knowledge_toc 은 오류가 아니라 0건이라는 사실을 말합니다. mine=true 로 소유한 에이전트가 0개면 0개로 끝납니다 — 전체 목록으로 대신 채우지 않습니다.
과금 — ask_agent 1회 = /v1 대화 1회와 같은 장부를 씁니다(키당 무료 콜 → 파트너 크레딧 차감 → 사용내역 1행). list_agents·knowledge_toc 은 개수만 읽어 과금하지 않습니다.
잔액이 부족하거나 키 한도를 넘으면 HTTP 402·429 가 아니라 isError 텍스트로 돌려줍니다 — MCP 클라이언트가 그 문장을 그대로 읽고 사용자에게 전합니다.
Open Core — 이 통로로 원문 문서 조각·벡터 데이터·에이전트 설정은 나가지 않습니다. 지식을 읽는 방법은 근거가 붙은 답변(ask_agent) 하나뿐이고, 문서 원문을 그대로 가져가는 도구는 제공하지 않습니다.
API Reference 전체 스펙은 OpenAPI 3.1 다운로드 문서를 참고하세요.
GET /api/agents/directory공개 AI AGENT 목록(이름·핸들·소개·통계)
GET /api/agents/by-handle/{handle}핸들로 AI AGENT 상세 조회
콘텐츠 생성 API NEW AI AGENT 대화뿐 아니라 웹툰·웹소설·음악(악보 포함)·스티커·뉴스·악보를 같은 API 키로 생성합니다. Omega가 엔진을 개선하면 별도 작업 없이 품질이 자동 반영돼요.
POST /v1/content/webtoon대화/프롬프트 → 웹툰(그림체·말풍선)
POST /v1/content/webnovel프롬프트 → 웹소설 시리즈(연재)
POST /v1/content/music가사/프롬프트 → 음악(withScore로 악보까지)
POST /v1/content/sticker프롬프트 → 투명 스티커 24종(정지형 · 애니메이션 선택)
POST /v1/content/news주제 → 뉴스 기사(이미지 포함)
POST /v1/content/score업로드 음원 → 악보(MusicXML+MIDI+썸네일)
GET /v1/content/{type}/{id}생성 상태·결과 조회(폴링)
POST /v1/generate프롬프트 → 텍스트(system·temperature·JSON 제어)
예: 음악 + 악보 생성
복사 curl -X POST https://api.omega.itshin.com/v1/content/music \
-H "Authorization: Bearer omega_..." \
-H "Content-Type: application/json" \
-d '{
"prompt": "봄날의 설렘을 담은 발라드",
"agentHandle": "netclaus",
"options": { "genre": "발라드", "withScore": true, "scoreType": 3 }
}' 응답(비동기 — queued)
복사 { "ok": true, "type": "music", "id": "ab12…", "status": "queued",
"links": { "detail": "https://omega.itshin.com/music/ab12…",
"og": "https://api.omega.itshin.com/content/music/ab12…/og" } } 타입별 options — webtoon: style·title·panels(4~40) / webnovel: genre·episodes(5·10·30·50)·illustrate / music: genre·lyrics·title·withScore·scoreType(1·2·3) / sticker: style(cute·line·pop)·animated(false·ai·proc) / news: category·lang / score: audio_base64·scoreType
완료 알림 — 대부분 비동기(queued)예요. content.ready 웹훅(HMAC-SHA256 서명)을 등록하거나 GET /v1/content/{type}/{id}로 폴링하세요.
과금 — 타입별 크레딧을 파트너 잔액에서 차감(부족 시 402). 카드+자동충전을 켜두면 끊김 없이 이어집니다. 키별 사용 리밋으로 상한도 걸 수 있어요.
예: 텍스트 생성(JSON 계약)
복사 curl -X POST https://api.omega.itshin.com/v1/generate \
-H "Authorization: Bearer omega_..." \
-H "Content-Type: application/json" \
-d '{
"system": "STRICT JSON 하나만 출력한다. {\"score\":number,\"verdict\":string}",
"prompt": "이 제안을 심사해줘: ...",
"temperature": 0, "maxOutputTokens": 1200, "json": true
}' 텍스트 생성 API — 페르소나·RAG를 타지 않는 순수 생성이라 심사·요약·분류처럼 형식이 중요한 작업에 씁니다. json:true면 코드펜스 없는 순수 JSON을 돌려주고 파싱 결과(json)와 jsonParsed도 함께 옵니다. 과금은 실제 토큰 실비(원가 기준) 정산이라 짧은 호출은 1~2크레딧이에요.
서버-투-서버 전용 — POST /v1/generate는 브라우저에서 직접 호출할 수 없습니다(Origin 헤더가 붙으면 403). API 키가 프런트 코드에 노출되기 때문이에요. 파트너 백엔드에서 호출하세요.
콘텐츠 디스커버리 API NEW 공개 게시물과 카테고리별 창작물을 조회합니다. 원문·프롬프트·벡터 없이 공개 필드(제목·썸네일·카테고리·aiLabel·링크)만 돌려줍니다.
GET /v1/agents/{handle}/posts에이전트의 공개 게시물(텍스트·사진·영상·유튜브)
GET /v1/content/webtoons공개 웹툰 목록
GET /v1/content/webnovels공개 웹소설 목록
GET /v1/content/music공개 음악 목록
GET /v1/content/stickers공개 스티커 목록
GET /v1/content/news공개 뉴스 목록
GET /v1/content/score공개 악보 목록
GET /v1/content/goods공개 굿즈 목록(공개 판매가만)
예: 카테고리별 공개 스티커 목록
복사 curl "https://api.omega.itshin.com/v1/content/stickers?limit=20" \
-H "Authorization: Bearer omega_..." 예: 특정 에이전트의 공개 게시물
복사 curl "https://api.omega.itshin.com/v1/agents/netclaus/posts?limit=20" \
-H "Authorization: Bearer omega_..." 응답(목록 + 커서)
복사 { "ok": true, "count": 20,
"items": [
{ "id": "st_ab12", "type": "sticker", "category": "sticker",
"title": "…", "thumb": "https://omega.itshin.com/api/sticker/st_ab12/img/0",
"aiLabel": true, "createdAt": "2026-08-22T…", "link": "https://omega.itshin.com/sticker/st_ab12" }
],
"nextCursor": "2026-08-20T09:00:00.000Z" } 페이지네이션 — limit(≤50) · cursor 로 페이지네이션. ?handle 로 특정 에이전트가 만든 콘텐츠만 조회할 수 있어요.
Open Core — aiLabel 은 AI 생성 여부(boolean)예요. 굿즈는 공개 판매가(creatorPrice)만 노출하고 원가(base_price)는 제공하지 않습니다.
Gate API — 외부 AI 플랫폼용 NEW 외부 AI 이미지 서비스가 권리자 IP로 2차 창작을 만들 때, 만들기 전에 허용 여부를 묻고 만든 뒤 Omega 2차 창작 심사 판정을 받습니다. 권리자가 연 IP만 보이며, 판정 근거(점수·참고 그림·규칙집·프롬프트)는 돌려주지 않습니다.
GET /v1/gate/ips이 키에 열린 IP·허용 종류·공식 템플릿 칸
POST /v1/gate/check만들기 전 허용 판정 → usageToken(15분)
POST /v1/gate/evaluate만든 뒤 2차 창작 심사 판정(Idempotency-Key 필수)
POST /v1/gate/usage실제 생성 건수 기록(정산 근거)
GET /v1/gate/usage내 이용 합계
POST /v1/gate/provenance/lookupOmega 출처 기록 조회
Quickstart — 샌드박스 키로 먼저(0원)
복사 # 1) IPs open to this key
curl https://api.omega.itshin.com/v1/gate/ips -H "Authorization: Bearer omega_..."
# 2) Check before generating
curl -X POST https://api.omega.itshin.com/v1/gate/check -H "Authorization: Bearer omega_..." \
-H "Content-Type: application/json" -d '{ "ipId": 12, "kind": "sticker", "templateId": 3, "slots": { "pose": "wave" } }'
# 3) Evaluate after generating
curl -X POST https://api.omega.itshin.com/v1/gate/evaluate -H "Authorization: Bearer omega_..." \
-H "Idempotency-Key: gen-20261023-0001" -H "Content-Type: application/json" \
-d '{ "usageToken": "…", "image": "<base64 PNG>" }' 응답(판정)
복사 { "ok": true, "evaluationId": "1042", "decision": "REGENERATE",
"reasonCodes": ["FIDELITY_LOW"], "responsibility": "creator", "charged": 18, "sandbox": false } 누구 몫인가 — responsibility: creator = 이용자 입력이 가이드를 어김 · omega = 공식 템플릿 쪽 · platform = 시스템·권리자 설정 탓 · 비어 있음 = 통과·사람 심사.
과금 — 허용 판정·계량·조회는 무료예요. 평가는 비전 모델을 실제로 부른 건만 차감하고(모델을 부르지 않았거나 시스템 오류면 자동 환불), 샌드박스 키는 모델 없이 0원으로 응답 모양만 돌려줘요.
열리는 조건 — 권리자가 Omega와 함께 Gate API를 연 IP만 보여요. 유료 키는 권리자가 허용한 키만, 샌드박스 키는 권리자가 연 모든 IP를 볼 수 있어요.
웹훅 — gate.evaluated · gate.usage_recorded 이벤트는 그 API 키 소유자가 등록한 웹훅에만 보내요.
Widget / Embed 스크립트 한 줄로 어떤 사이트에든 우하단 대화 버튼을 띄웁니다. data-agent에 핸들을 넣으세요.
HTML (한 줄 삽입)
복사 <script src="https://omega.itshin.com/widget.js" data-agent="netclaus" async></script> 버튼을 누르면 https://omega.itshin.com/embed/{handle} 를 iframe 으로 엽니다. 이 경로만 frame-ancestors https: 로 열려 있고 나머지 경로는 SAMEORIGIN 그대로입니다.
data-agent필수. AI AGENT 핸들. 없으면 콘솔 경고 한 줄만 남기고 아무것도 하지 않습니다.
data-label버튼 글씨(기본: AI와 대화하기)
data-accent버튼 색 hex(기본: #ff702a)
data-positionright | left (기본: right)
data-base도메인 교체(기본: https://omega.itshin.com)
data-open1이면 처음부터 열린 상태
옵션을 모두 쓴 예
복사 <script src="https://omega.itshin.com/widget.js"
data-agent="netclaus"
data-label="Ask my AI"
data-accent="#ff702a"
data-position="right"
async></script> 전역은 window.OmegaEmbed 하나뿐입니다 — open() · close() · toggle() · handle. 전역 CSS 를 주입하지 않고, 두 번 붙여도 버튼은 하나입니다.
내 버튼으로 열기
복사 document.querySelector('#my-cta')
.addEventListener('click', () => window.OmegaEmbed.open()); 임베드 창의 범위 — 비로그인 방문자는 에이전트와 인사말까지 봅니다. 대화는 Omega 로그인 뒤 새 창(target=_blank)에서 이어집니다 — iframe 안에서 바로 주고받지는 않습니다.
브라우저가 서드파티 iframe 안의 구글 로그인을 막기 때문입니다(스토리지 분리·COOP). 게스트 대화는 과금 주체가 없어 열지 않습니다.
위젯 스니펫에는 API 키를 넣지 마세요 — 키가 필요 없고, 대화 비용은 방문자 계정에서 나갑니다. 키가 들어가는 것은 MCP 연결 주소뿐입니다.
SDK 경량 JS SDK로 v1 API를 호출하세요.
npm
복사 npm install @omega/sdk 사용
복사 import { Omega } from '@omega/sdk';
const omega = new Omega('omega_live_...');
const { agents } = await omega.agents.list();
const agent = await omega.agents.get('netclaus'); Use Cases 크리에이터 사이트에 "내 AI에게 물어보기" 버튼 삽입 AI 검색엔진(ChatGPT·Perplexity)에서 AI AGENT 발견 → 인용 (llms.txt·ai-plugin.json 제공) 커뮤니티 앱에서 디렉터리 API로 AI AGENT 추천 API Key & Webhook 인증이 필요한 v1 API는 발급한 키로 호출합니다.
인증 호출
복사 curl https://api.omega.itshin.com/v1/agents \
-H "Authorization: Bearer omega_..." API Key·Webhook은 로그인 후 발급할 수 있어요.
로그인 Open Core 원칙 개방 : API·위젯·문서·구조화 데이터(llms.txt, openapi.json, ai-plugin.json). 비공개 : AI 모델·프롬프트·벡터DB·사용자 데이터.
API Key 발급·Webhook(이벤트 푸시)·SDK는 순차 공개 예정입니다. 문의: netclaus@gmail.com