Base URL
인증
모든 요청에Authorization: Bearer <token> 헤더가 필요해요. 토큰은 대시보드 설정에서 발급한 워크스페이스(organization_id) API 키를 쓰세요.
컨벤션
- snake_case: 요청·응답 필드는 기본으로 snake_case를 써요.
agent.data와flow.nodes[].data아래는 에이전트 설정과 노드별 설정을 그대로 담으려고 일부 camelCase를 유지해요. - 플로우 작성과 검증: 플로우 에이전트 그래프는
flow필드로 작성하고, 저장하기 전에POST /agents/validate-flow로 검증할 수 있어요.flow_data는 기존 빌더 호환용 필드라 새 통합에서는 쓰지 않는 편이 좋아요. 작성법은 API로 플로우 작성 및 검증에 있어요. - 밀리초 타임스탬프:
_at으로 끝나는 타임스탬프 필드는 unix milliseconds예요. - 커서 페이지네이션: list 엔드포인트는
cursor와limit(1~100)을 써요. 다음 페이지는 응답의next_cursor를 그대로 다시 넘기세요. - 명시적 식별자: 응답 객체 자신의 ID는
id예요. 다른 리소스 참조는agent_id,call_id처럼 이름을 밝혀 써요. - 에러 엔벨로프: 모든 실패 응답은
{ "error": { "code", "message", "details" } }꼴이에요. 제어 흐름은code로 나누세요. - Rate limit: 모든 v3 엔드포인트는 워크스페이스 단위 rate limit(초당 5회, 분당 120회)을 함께 써요. 넘으면
429와RATE_LIMIT_EXCEEDED코드를 돌려줘요. - 음성 런타임: 새로 만들 때
agent.data.runtime을 생략하거나{ "type": "pipeline" }으로 보내면 기존 파이프라인을 써요. 수정할 때runtime을 생략하면 지금 런타임을 유지해요. GPT-Live, Grok Voice, Gemini Live는 지금type: "single_prompt"에서만 지원하고 플로우 에이전트에서는 거부돼요. 작성 규칙은 실시간 음성 런타임 API 작성에 있어요. - 대시보드 용어 대응: 대시보드의 대량 발신은 API에서
campaign이고, 문자 대량 발신은sms_batch예요. 경로·필드·이벤트 이름은 영문 그대로 써요.
주요 리소스
- 에이전트: 음성 에이전트(single prompt, flow)와 버전을 만들고 수정하고 게시해요.
- 모델: 에이전트에 쓸 수 있는 LLM과 음성 모델을 조회하고 관리해요.
- 도구: 에이전트가 호출할 API 도구를 만들고 실행 설정을 관리해요.
- 지식 베이스: 에이전트가 참조할 지식 베이스와 원본 문서를 관리해요.
- 스키마:
agent.data, 플로우와 도구의 공개 JSON Schema를 조회해요. - 전화번호: 번호 구매·등록, 에이전트 매핑, SIP 트렁크를 관리해요.
- 통화·대량 발신·SMS: 통화 한 건과 대량 발신(
campaign)을 실행하고 조회해요. SMS는 발신·수신 목록과 단건 상세를 조회해요. - 고객·메모리: 고객 식별자와 고객 속성, 대화에서 추출한 메모리를 관리해요.
- 알림: 통화 지표를 감시할 알림 규칙과 인시던트를 관리해요.
스키마 레지스트리
v3는 에이전트 작성에 필요한 JSON Schema를 API와 OpenAPI로 열어 둬요. 클라이언트는 스키마를 하드코딩하지 않고 지금 계약을 확인해 쓸 수 있어요.GET /schemas: 쓸 수 있는 스키마 목록(agent-schema,flow-schema,tool-schema등)을 조회해요.GET /schemas/{namespace}/{schema_type}: 특정 스키마 본문을 조회해요.GET /schemas?category=agent-authoring&include_schema=true: 에이전트 작성에 필요한 레지스트리 스키마를 함께 조회해요.
에이전트 data 수정
PATCH /agents/{agent_id}에는 GET /agents/{agent_id}?version=current에서 확인한 head_revision을 expected_head_revision으로 넘기세요. 플로우 그래프를 바꿀 때는 같은 응답의 flow_revision도 expected_flow_revision으로 보내세요. 오래된 revision은 REVISION_CONFLICT로 거부되니, 클라이언트가 최신 상태를 자동으로 다시 읽어 그대로 재시도(blind retry)하지 않게 하세요.
data는 부분 수정 payload예요. 생략한 하위 설정은 기존 값을 유지하고, 일반 객체는 한 단계 병합하며 배열은 통째로 바꿔요. data.runtime, data.manuals, data.presetDynamicVariables는 원자적으로 통째로 바꿔요. data.builtInTools를 넣으면 기본 도구 배열도 통째로 바꿔요.
builtInTools생략: 기존 기본 도구 유지builtInTools: []: 기본 도구 전체 제거builtInTools: null: 잘못된 요청runtime생략: 지금 런타임 유지runtime전송: 런타임 객체 전체 교체manuals전송: 에이전트 소유 메뉴얼 맵 전체 교체
/manuals API는 없어요. 메뉴얼을 읽거나 고치려면 /agents/{agent_id}/manuals 하위 경로를 쓰세요.
아래처럼 기본값이 아닌 tool-level 설정은 기존 도구 객체에서 유지해야 해요.
프롬프트만 바꿀 때는
builtInTools를 보내지 않거나, GET /agents/{agent_id}에서 받은 도구 객체를 그대로 두고 필요한 필드만 바꾸세요.
정확한 필드 구조는 GET /schemas/tool-schema/{schema_type}로 확인하세요.
네이티브 실시간 런타임
GPT-Live, Grok Voice, Gemini Live의 음성 설정은data.runtime.voice에 둬요. 기존 파이프라인의 data.voice·data.stt·data.parallelSTT와 현재 스키마에서 호환되지 않는 speech preference를 네이티브 실시간 요청에 복사하지 마세요. data.speech 전체를 짐작으로 지우지 말고 현재 agent schema를 따르세요. 새 네이티브 실시간 에이전트를 만들 때는 고를 수 있는 data.llm.model이 필요하고, chatLlm 필드나 data.llm의 암묵적인 모델 매핑은 쓰지 않아요.
GPT-Live, Grok Voice, Gemini Live는 유효한 data.speech.isAllowInterruption 값이 true여야 해요. 만들 때 값을 생략하면 기본값 true를 쓰지만, PATCH에서 생략하면 지금 값을 유지해요. 그래서 기존 값이 false인 에이전트를 전환할 때는 true를 명시하세요. API는 이 값을 자동으로 바꾸지 않아요.
세 런타임은 type: "single_prompt" 전용이에요. 기존 type: "flow" 에이전트는 pipeline 런타임을 쓰고, 자동으로 변환하거나 마이그레이션하지 않아요. flow.nodes[].data.llm은 기존 플로우 설정으로 보존하지만 네이티브 실시간 기능으로 해석하지 않아요.
새 에이전트를 만들 때 data.runtime을 생략하거나 type: "pipeline"으로 보내면 기존 파이프라인 동작을 써요. PATCH에서 runtime을 생략하면 지금 런타임을 유지해요. 파이프라인으로 되돌릴 때는 runtime: { "type": "pipeline" }과 함께 stt, voice를 명시하세요.
세 네이티브 실시간 런타임은 provider 전용 model과 음성을 명시해야 해요. GPT-Live는 빌트인이나 커스텀 음성을, Grok Voice와 Gemini Live는 빌트인 음성만 받아요. Grok Voice는 grok-voice-think-fast-2.0, Gemini Live는 초기 1.8.1 호환 계약의 gemini-2.5-flash-native-audio-preview-12-2025를 써요. Gemini 3.1과 3.8은 지원하지 않아요. Grok Voice와 Gemini Live는 custom 음성을 거부해요. custom 참조는 새 GPT-Live 커스텀 음성에만 쓰고, 기존 pipeline 음성은 그대로 유지해요. GPT-Live custom reference만으로 OpenAI 권한·프로비저닝이나 품질 검증을 마친 것은 아니에요.
관련 문서
- 전화: API로 통화 한 건 걸기
- 대량 발신: CSV·Excel로 여러 건을 한 번에 발신하기
- API로 플로우 작성 및 검증:
flow필드로 플로우 에이전트를 작성하고 검증하기 - 실시간 음성 런타임 API 작성: GPT-Live, Grok Voice, Gemini Live 런타임 고르기