더빙된 동영상을 위한 립싱크 API

135개 이상의 언어 및 지역 옵션으로 더빙된 음성에 맞춰 입모양을 자연스럽게 일치시키세요. API를 통해 동영상을 더빙하고 립싱크를 적용한 뒤, 화면 속 화자가 새로운 언어로 말하는 최종 영상을 다운로드할 수 있습니다. 시작하기 전 얼굴 감지 검사가 먼저 진행되며, 립싱크는 편집 후 재제작을 포함하여 전체 영상이 생성될 때마다 더빙 비용과 별도로 청구됩니다.
무료 미리보기 1분 제공
화면에 여러 명의 얼굴이 나오는 경우
REST + Python SDK
check, preview, sync
OAuth 2.0
# 1. on a dubbed project: confirm the video has a face (runs once, usually automatically)
curl https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN"
#  "check_face_task_status": "done", "video_has_face": true

# 2. preview one free minute of lip-sync
curl -X PUT https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"is_multiple_speakers": true, "is_free_lipsync": true}'

# 3. lip-sync the full video - billed separately from dubbing
curl -X PUT https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"is_multiple_speakers": true, "is_free_lipsync": false}'
GET /v2/projects/{project_id}/lipsync
polling, 15s
# Poll until lipsync_task_status is done, then download lipsync_result_path
while :; do
  curl -s https://api.rask.ai/v2/projects/$ID/lipsync -H "Authorization: Bearer $TOKEN" \
    | jq '{lipsync_task_status, lipsync_task_progress, tasks_in_lipsync_queue}'
  sleep 15
done
전 세계 팀들이 사용하는
지원 기능

립싱크 API가 제공하는 모든 기능

더빙된 동영상에 립싱크를 추가해 보세요. 화면에 얼굴이 잘 나오는지 확인하고, 계정에서 제공하는 무료 미리보기 1분을 사용해 본 뒤 API로 진행 상황을 확인할 수 있습니다. 전체 영상 립싱크는 영상을 생성할 때마다 더빙과 별도로 청구됩니다.

번역된 영상에 립싱크 적용

지원되는 135개 이상의 언어 및 지역 옵션을 활용해, 프로젝트에서 번역된 영상의 더빙 음성과 입모양을 자연스럽게 일치시키세요.

자동 얼굴 감지

립싱크를 시작하기 전에 동영상에 최소 한 명의 얼굴이 있는지 확인하는 절차가 진행됩니다. 이 과정은 프로젝트당 한 번 단독으로 실행되므로, 사용 시간을 낭비하기 전에 결과를 미리 파악할 수 있습니다.

화면에 여러 얼굴이 있는 경우

인터뷰, 패널 토론, 다자간 대화의 경우 is_multiple_speakers를 true로 설정하세요. 화면에 한 번에 한 명의 얼굴만 나오는 경우 처리 속도를 높이기 위해 false로 설정하세요.

1분의 무료 미리보기 제공

모든 계정에 1분의 무료 립싱크 시간이 제공됩니다. 내 영상에 is_free_lipsync를 적용해 결과를 미리 확인한 후 전체 영상 동기화를 진행해 보세요.

생성 건별 별도 요금 청구

전체 영상 립싱크는 생성될 때마다 더빙 비용과 별도로 청구됩니다. 스크립트나 목소리를 수정한 후에는 프로젝트를 다시 더빙하고 새로운 립싱크 비용으로 새 버전을 생성할 수 있습니다.

대기열 순서 및 진행 상황

립싱크 정보 엔드포인트는 내 작업 앞에 대기 중인 작업 수와 0부터 100까지의 진행률을 반환하므로 사용자가 실제 진행 상황을 쉽게 확인할 수 있습니다.

얼굴과 잘 어울리는 목소리

립싱크는 복제된 목소리나 AI 목소리 프리셋 등 프로젝트에서 화자에게 사용된 모든 음성 위에서 작동합니다.

편집, 재더빙, 재동기화

텍스트, 타이밍, 목소리를 변경하고 프로젝트를 다시 더빙한 다음 새 버전에서 립싱크를 다시 실행하세요. 얼굴 감지 과정을 다시 거칠 필요가 없습니다.

제한 없는 확장

요금 제한, 동시 작업 할당량, 키별 제한이 없습니다. 전체 동영상 카탈로그에 대한 립싱크 작업을 전송하면 대기열 순서를 통해 각 작업의 상태를 확인할 수 있습니다.
실행 화면 보기

더빙된 음성부터 자연스러운 입모양 맞춤까지

프랑스어, 독일어, 포르투갈어, 스페인어로 각각 더빙된 동일한 영상입니다. 이처럼 더빙된 프로젝트에서는 립싱크 기능이 새로운 음성에 맞춰 입술의 위치를 조정해 줍니다.
EN flag
En
FR flag
Fr
DE flag
De
PT flag
Pt
ES flag
Es
작업 흐름

더빙된 동영상을 립싱크 동영상으로 만드는 3단계

립싱크는 이미 더빙이 완료된 프로젝트에서 실행됩니다. 수정 후에 /generate 엔드포인트를 사용하여 다시 더빙한 다음, 입모양을 다시 맞춰보세요.
1

동영상 더빙하기

동영상 파일을 업로드하거나 공개 URL을 입력한 후, 목표 언어로 프로젝트를 만들고 완료될 때까지 기다리세요. 립싱크를 진행하려면 해당 프로젝트의 번역된 동영상이 필요합니다.

POST /v2/projects
2

얼굴 인식 확인하기

얼굴 확인 작업은 동영상에 최소 한 명 이상의 얼굴이 있는지 확인합니다. 보통 자동으로 시작되지만, 시작되지 않았다면 프로젝트에서 직접 한 번 실행해 주세요.

PUT /v2/projects/{id}/check_face
3

립싱크 실행 및 다운로드

립싱크 작업을 실행하고 진행 상황이 0에서 100까지 올라가는 것을 확인한 후, 결과 파일 경로에서 동영상을 다운로드하세요.

PUT /v2/projects/{id}/lipsync
처리 시간은 동영상 길이와 립싱크 대기열에 따라 달라집니다. 립싱크 정보 엔드포인트에서 내 앞에 대기 중인 작업 수가 몇 개인지 확인할 수 있습니다.
맞춤형 서비스

특별한 경우에 립싱크가 필요하신가요? 저희 팀에 문의하세요

더 빠른 처리 속도, 우선순위 처리, 맞춤형 전달 방식 등 기본 제공 목록에 없는 립싱크 연동 기능이 필요하다면 저희 팀이 고객의 요구사항과 가능한 옵션을 검토해 드립니다.

지원 언어 및 목소리

기본 목록에 없는 언어이나 목소리가 필요하신가요? 필요한 사항과 이용 가능한 옵션에 대해 저희 팀과 상담해 보세요.

전송 및 연동

웹훅, 자체 대기열 연동, S3 직접 전송, 맞춤형 엔드포인트를 지원합니다. 시스템에 맞는 방식을 알려주세요.

볼륨 및 처리량

배치 크기, 작업당 타겟 언어 수, 처리 우선순위는 고정된 제품 한계가 아니라 계약을 통해 조율할 수 있습니다.

보안 및 호스팅

데이터 보관, SSO 및 SAML, 보존 규칙 및 보안 검토 지원은 기업 온보딩 과정에서 처리됩니다.
사용 사례

누가 립싱크 API를 사용할까요?

동영상이 포함된 플랫폼

학습 관리 시스템(LMS) 및 고객 교육 플랫폼, 크리에이터 및 동영상 플랫폼, 웨비나 및 가상 이벤트 도구, 동영상 호스팅 및 워크플로우 SaaS, 디지털 채택 플랫폼, 라이브 쇼핑 등에서 활용됩니다. 사용자와 크리에이터가 이미 업로드한 동영상에 립싱크 더빙을 추가하여 번역된 발표자의 모습이 화면에서 자연스럽게 보이도록 만들고, 제품의 프리미엄 기능으로 활용해 보세요.

현지화 및 제작 대행사

더빙 서비스와 별도로 립싱크를 독립된 상품으로 제공해 보세요. 계정에 무료로 제공되는 미리보기 시간이 있다면 이를 활용해 결과를 먼저 확인해 볼 수 있습니다. 전체 동영상 립싱크 제작 및 검토 후 추가로 제작되는 분량을 고객 견적에 포함해 보세요.

사내 자체 동영상 제작

글로벌 유통 및 전자상거래, 글로벌 프랜차이즈, 미디어 출판사, 기업 대학 등 다양한 분야에서 활용됩니다. 인물이 화면에 크게 나오는 마케팅, 교육, 임원진 메시지 동영상에서 립싱크 기능을 사용하면 어떤 시장에서든 번역된 음성이 화면 속 발표자의 입모양과 완벽하게 일치하게 됩니다.
고객 성공 사례

실제 팀, 가시적인 성과

Rask를 통해 동영상을 현지화한 기업들의 실제 수치와 이야기를 확인해 보세요.
화살표
화살표
코드

립싱크 API 코드 예시

이미 더빙이 완료된 프로젝트를 대상으로 언어별 전체 코드 예시를 제공합니다: 얼굴 확인, 립싱크 실행, 진행 상황 확인 및 결과 다운로드 과정을 확인해 보세요.
# pip install git+ssh://[email protected]/braskai/rask-sdk.git@main
import asyncio
from rask_sdk import clients, enums, schemas

PROJECT_ID = "..."   # a project with status merging_done

async def main():
    client = clients.RaskSDKClient(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)

    info = await client.get_lipsync_info(project_id=PROJECT_ID)
    if info.check_face_task_status is not enums.LipsyncStatus.DONE:
        await client.run_check_face_task(project_id=PROJECT_ID)
        while (info := await client.get_lipsync_info(project_id=PROJECT_ID)).check_face_task_status is not enums.LipsyncStatus.DONE:
            await asyncio.sleep(10)
    if not info.video_has_face:
        raise SystemExit("No face found - lip-sync is not available for this video")

    await client.run_lipsync_task(project_id=PROJECT_ID,
        data=schemas.LipsyncTaskData(is_multiple_speakers=True, is_free_lipsync=False))

    while (info := await client.get_lipsync_info(project_id=PROJECT_ID)).lipsync_task_status is not enums.LipsyncStatus.DONE:
        print(info.lipsync_task_progress, info.tasks_in_lipsync_queue)
        await asyncio.sleep(15)

    print(info.lipsync_result_path)

asyncio.run(main())
github.com/braskai/rask-sdk
async, typed models
import time, requests

AUTH = "https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token"
URL  = f"https://api.rask.ai/v2/projects/{PROJECT_ID}"   # a dubbed project

token = requests.post(AUTH, auth=(CLIENT_ID, CLIENT_SECRET),
                      data={"grant_type": "client_credentials"}).json()["access_token"]
h = {"Authorization": f"Bearer {token}"}

info = requests.get(f"{URL}/lipsync", headers=h).json()
if info["check_face_task_status"] != "done":
    requests.put(f"{URL}/check_face", headers=h)
    while (info := requests.get(f"{URL}/lipsync", headers=h).json())["check_face_task_status"] != "done":
        time.sleep(10)
assert info["video_has_face"], "No face found"

requests.put(f"{URL}/lipsync", headers=h,
             json={"is_multiple_speakers": True, "is_free_lipsync": False})

while (info := requests.get(f"{URL}/lipsync", headers=h).json())["lipsync_task_status"] not in ("done", "failed"):
    time.sleep(15)

print(info["lipsync_task_status"], info["lipsync_result_path"])
requests + polling
no SDK required
// no dependencies, Node 18+ global fetch - PROJECT_ID is a dubbed project
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
const auth = await fetch('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token', {
  method: 'POST',
  headers: { Authorization: 'Basic ' + btoa(`${CLIENT_ID}:${CLIENT_SECRET}`) },
  body: new URLSearchParams({ grant_type: 'client_credentials' }),
}).then((r) => r.json());
const h = { Authorization: `Bearer ${auth.access_token}`, 'Content-Type': 'application/json' };
const url = `https://api.rask.ai/v2/projects/${PROJECT_ID}`;
const info = () => fetch(`${url}/lipsync`, { headers: h }).then((r) => r.json());

let i = await info();
if (i.check_face_task_status !== 'done') {
  await fetch(`${url}/check_face`, { method: 'PUT', headers: h });
  while ((i = await info()).check_face_task_status !== 'done') await sleep(10000);
}
if (!i.video_has_face) throw new Error('No face found');

await fetch(`${url}/lipsync`, {
  method: 'PUT', headers: h,
  body: JSON.stringify({ is_multiple_speakers: true, is_free_lipsync: false }),
});

while (!['done', 'failed'].includes((i = await info()).lipsync_task_status)) {
  console.log(i.lipsync_task_progress, i.tasks_in_lipsync_queue);
  await sleep(15000);
}
console.log(i.lipsync_result_path);
fetch, Node 18+
plain HTTP
# 1. token (valid 1 hour - cache and reuse it)
TOKEN=$(curl -s -X POST https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token \
  -u "$CLIENT_ID:$CLIENT_SECRET" -d "grant_type=client_credentials" | jq -r .access_token)

# 2. face check on the dubbed project - start it only if it has not run yet
curl -s https://api.rask.ai/v2/projects/$ID/lipsync -H "Authorization: Bearer $TOKEN" \
  | jq '{check_face_task_status, video_has_face}'
curl -s -X PUT https://api.rask.ai/v2/projects/$ID/check_face -H "Authorization: Bearer $TOKEN"

# 3. run lip-sync (set is_free_lipsync to true for the free preview minute)
curl -s -X PUT https://api.rask.ai/v2/projects/$ID/lipsync \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"is_multiple_speakers": true, "is_free_lipsync": false}'

# 4. follow progress, then download the result
curl -s https://api.rask.ai/v2/projects/$ID/lipsync -H "Authorization: Bearer $TOKEN" \
  | jq '{lipsync_task_status, lipsync_task_progress, lipsync_result_path}'
PUT /v2/projects/{id}/lipsync
OAuth 2.0 client credentials
<?php
use GuzzleHttp\Client;

$http = new Client(['base_uri' => 'https://api.rask.ai']);
$json = fn($r) => json_decode($r->getBody(), true);
$auth = $json((new Client)->post('https://rask-prod.auth.us-east-2.amazoncognito.com/oauth2/token',
    ['auth' => [$clientId, $clientSecret], 'form_params' => ['grant_type' => 'client_credentials']]));
$h = ['Authorization' => 'Bearer ' . $auth['access_token']];
$info = fn() => $json($http->get("/v2/projects/$projectId/lipsync", ['headers' => $h]));

$i = $info();
if ($i['check_face_task_status'] !== 'done') {
    $http->put("/v2/projects/$projectId/check_face", ['headers' => $h]);
    while (($i = $info())['check_face_task_status'] !== 'done') sleep(10);
}
if (!$i['video_has_face']) exit('No face found');

$http->put("/v2/projects/$projectId/lipsync", ['headers' => $h,
    'json' => ['is_multiple_speakers' => true, 'is_free_lipsync' => false]]);

while (!in_array(($i = $info())['lipsync_task_status'], ['done', 'failed'])) sleep(15);
echo $i['lipsync_result_path'];
Guzzle 7
plain HTTP
공식 SDK는 Python입니다. Node, PHP, cURL 탭은 동일한 엔드포인트를 사용하는 일반적인 HTTP 예시입니다.
진행 상황

립싱크 작업의 진행 상황을 확인하는 방법

립싱크 정보 엔드포인트는 얼굴 확인 상태, 작업 상태, 대기열 순서, 그리고 0부터 100까지의 진행률을 알려줍니다. 세 가지 상태 그룹에만 주목하시면 됩니다.

성공, 여기서 중지

lipsync_task_status: done
lipsync_task_progress: 100
립싱크가 완료되었습니다. 다운로드 링크는 결과 경로에 있습니다.

진행 중, 계속 확인

check_face_task_status: started
lipsync_task_status: started
lipsync_task_progress: 0-99
tasks_in_lipsync_queue
진행률이 비어 있는(null) 동안에는 작업이 대기 중인 상태입니다: tasks_in_lipsync_queue 앞서 대기 중인 작업이 몇 개인지를 보여줍니다.

실패, 중단 및 보고

lipsync_task_status: failed
check_face_task_status: failed
video_has_face: false
사람의 얼굴이 보이지 않는 동영상은 립싱크를 적용할 수 없습니다. 작업이 실패한 경우, 다음 정보와 함께 project_id.
Lip-sync task, as GET /lipsync reports it
GET /v2/projects/{project_id}/lipsync
check face     check_face_task_status  done     video_has_face  true
queued         lipsync_task_status     started  tasks_in_lipsync_queue  2
processing     lipsync_task_progress   0 → 50 → 100
complete       lipsync_task_status     done
               lipsync_result_path     https://...

또는 상태 확인 과정을 완전히 건너뛰세요

웹훅 엔드포인트를 지정하면 모든 상태 전환이 POST 요청으로 전송되므로 큐가 변경 즉시 반응할 수 있습니다. 웹훅 전달은 엔터프라이즈 온보딩의 일부입니다.
문서 읽기
preserveAspectRatio="xMidYMid meet" aria-hidden="true" role="img">
결과물

입모양 싱크가 맞는 영상, 더빙 및 자막

lipsync_result_path에서 생성된 영상을 다운로드하세요. 프로젝트에는 입모양 싱크가 적용되지 않은 더빙 영상, SRT 및 VTT 형식의 번역된 자막이 포함되며, 이용 중인 요금제에 따라 번역된 음성이 별도의 오디오 트랙으로 제공됩니다.
항목
형식
설명
lipsync_result_path
MP4
바로 게시할 수 있는 입모양 싱크 영상
voiceover
WAV
직접 편집할 수 있는 번역된 음성만 포함된 파일
translated_audio
WAV
번역된 음성과 원래의 배경음악이 섞인 오디오
translation_srt_path
.srt
번역된 언어의 자막
translation_vtt_path
.vtt
웹 플레이어용 WebVTT 자막
translated_video
MP4
비교를 위해 입모양 싱크가 적용되지 않은 더빙 영상
제어

더빙을 수정하고 업데이트된 입모양 싱크 버전을 생성하세요.

텍스트, 타이밍 또는 목소리를 변경한 후 수정된 구간을 다시 더빙하고 업데이트된 영상의 입모양 싱크를 생성하세요. 재더빙 및 전체 영상 입모양 싱크 생성은 각각 별도로 과금됩니다.

문장 단위 편집

문장 단위 편집
대본의 개별 구간을 편집하고 변경된 대사를 다시 더빙하세요. 입모양을 수정하려면 전체 영상의 새로운 입모양 싱크를 생성해야 하며, 이는 별도로 과금됩니다.
대본과 문장 불러오기
원본 텍스트를 수정하면 자동으로 다시 번역됩니다.
번역된 텍스트를 직접 수정하여 원하는 표현을 유지하세요.
타임스탬프 조정, 문장 추가 및 삭제
화자에게 연결된 목소리 변경하기

용어집

용어집
용어집을 추가하여 모든 더빙에서 브랜드 이름과 전문 용어가 일관되게 발음되도록 하고, 입모양 싱크도 그에 맞춰 생성되도록 하세요.

용어집 하나는 한 쌍의 언어에 적용되며 해당 목표 언어의 모든 지역별 변형에 공통으로 적용되므로 하나의 스페인어 용어집으로 es-mx 및 es-es 모두 커버할 수 있습니다. 프로젝트 기록은 glossary_version유지되므로 나중에 수정하더라도 완료된 작업이 예기치 않게 변경되지 않습니다.
입력

지원되는 파일 형식

7가지 영상 형식 중 하나를 업로드하거나 공개 URL을 입력하세요. 오디오 전용 파일에는 화면에 얼굴이 나오지 않으므로 입모양 싱크는 영상 파일에만 적용됩니다.

동영상

7가지 형식
.mp4
.mov
.mkv
.avi
.webm
.m4v
.3gp

오디오

4가지 형식
.mp3
.wav
.flac
.m4a

작업 전 메타데이터 확인

미디어 엔드포인트는 재생 시간, 파일 크기, 영상 코덱, 프레임 레이트, 해상도, 오디오 코덱, 샘플 레이트 및 채널 레이아웃을 반환합니다. 더빙과 입모양 싱크는 모두 영상 길이를 기준으로 분당 과금되므로, 사전에 파일을 확인하고 비용을 예상해 보세요.
보안 및 규정 준수

안전하게 보호되는 얼굴 및 목소리 데이터

Brask Inc는 SOC 2 Type II 인증을 취득하고 GDPR을 준수하며, 신뢰 센터에서 실시간 보안 상태를 공개합니다. 얼굴과 목소리가 포함된 영상은 안전한 AI 환경에서 처리됩니다.

인증

SOC 2 Type II
GDPR
CAI 및 C2PA 회원사

암호화

전송 중 TLS 1.2 암호화
저장 시 AES-256 암호화
SSE-S3 관리형 키
최소 12개월마다 키 갱신

회원님의 콘텐츠

폐쇄형 AI 환경
일반 모델 학습에 절대 사용되지 않음
전체 내보내기 가능, 종속성 없음

액세스

SSO 및 SAML
역할 기반 접근 제어
OAuth 2.0 클라이언트 자격 증명

기업

데이터 보관 지역 선택 옵션
맞춤형 SLA
전담 계정 관리자

음성 권리

사용 권한이 포함된 합성 목소리
동의 기반 목소리 복제
AI 안전 제어 및 사람의 관리
비교

직접 구축하는 입모양 싱크 파이프라인과 Rask API 비교

독립형 입모양 싱크 API를 사용하려면 타겟 언어로 된 완성된 오디오 트랙이 필요합니다. 하지만 Rask는 하나의 프로젝트에서 더빙 트랙 생성과 입모양 싱크를 모두 처리합니다. 두 가지 방식으로 제작된 동일한 결과물을 확인해 보세요.
필요한 기능
Rask API
부품들을 조립하는 방식
싱크를 맞추기 위한 번역된 오디오 트랙
동일한 프로젝트에서 생성됨
먼저 진행되는 전사, 번역 및 음성 공급업체 단계
결제 전 얼굴 확인
프로젝트당 한 번 자동 실행
직접 구현하는 얼굴 감지 단계
화면에 여러 얼굴이 있는 경우
is_multiple_speakers: true
직접 구축하고 조정하는 얼굴별 추적
전체 실행 전 미리보기
계정당 1분 무료 제공
테스트 실행 시마다 비용이 청구됩니다
스크립트 수정 후 다시 싱크 맞추기
전체 동영상 싱크를 새로 생성하는 작업으로, 별도 과금됩니다
전체 파일에 대해 요금이 다시 청구됩니다
배경음악 및 효과음
새로운 목소리로 유지됨
사용자가 직접 구축하는 오디오 분리 단계
.srt 및 .vtt 형식의 자막
포함됨
자체 타이밍 데이터를 기반으로 생성
대기열 확인
대기열 위치 및 진행률(0-100)
제공업체가 지원하는 기능
사용량 제한
없음
가장 엄격한 서비스 업체의 기준 적용
결제
전체 동영상 싱크 생성당
실행당, 제공업체당
자주 묻는 질문

싱크 API: 자주 묻는 질문

원하시는 내용을 찾지 못하셨나요? 영업팀에 문의해 주세요.

싱크 API가 있나요?

더빙을 거치지 않고 동영상에 바로 싱크를 맞출 수 있나요?

제가 직접 녹음한 오디오 트랙으로 싱크를 맞출 수 있나요?

API를 통해 이미지나 프롬프트로 말하는 아바타를 생성할 수 있나요?

동영상에 싱크를 적용하려면 어떤 조건이 필요한가요?

싱크 이용 요금은 어떻게 청구되나요?

입모양 맞추기를 무료로 미리 볼 수 있나요?

여러 명의 화자가 나오는 영상에서도 입모양 맞추기가 되나요?

입모양 맞추기 진행 상황은 어떻게 확인하나요?

입모양 맞추기는 얼마나 걸리나요?

더빙을 수정한 후에는 어떻게 되나요?

입모양 맞추기 작업이 실패하면 어떻게 해야 하나요?

API 접근 권한과 API 키는 어떻게 발급받나요?

단 하루 만에 더블링을 시작해 보세요

오늘 첫 요청을 보내보시고, 대량 이용 조건이나 흔하지 않은 언어가 필요할 때 저희에게 문의해 주세요.