KO ▾
API 키 받기

Character AI API: 세 줄로 클라이언트 전환

OpenAI 호환 API를 사용하여 몇 분 안에 채팅봇을 무검열 LLM에 연결하세요. 이 가이드는 설정 없이 기본 요청 및 스트리밍을 설정하는 방법을 안내합니다.

https://api.characteraiapi.com/v1

사전 준비 사항

코드를 작성하기 전에 characteraiapi.com에서 활성 계정이 필요합니다. API 키 가져오기 페이지를 방문하여 이메일과 비밀번호로만 가입하세요. 시작하려면 신용카드가 필요 없으며, 새 계정에는 7일 동안 유효한 $0.50의 무료 체험 크레딧이 제공됩니다. 등록하면 API 키가 즉시 표시됩니다. 이 키는 엔드포인트의 모든 요청을 인증하므로 안전하게 보관하세요. 개발 환경에 지원되는 언어 SDK도 설치해야 합니다. character ai api 엔드포인트는 표준 OpenAI 매개변수를 지원하므로 기존 OpenAI 호환 클라이언트는 최소한의 변경으로 작동할 수 있습니다.

SDK 설치

Python 프로젝트의 경우 pip를 사용하여 공식 OpenAI 패키지를 설치하세요. 이 라이브러리는 JSON 직렬화 및 HTTP 요청을 자동으로 처리합니다. Node.js 애플리케이션의 경우 npm을 사용하여 openai 패키지를 추가하세요. 두 라이브러리 모두 이 가이드의 뒷부분에서 설명하는 스트리밍 및 도구 호출 기능을 지원합니다. 실시간 토큰 스트리밍을 위한 Server-Sent Events(SSE)를 지원할 만큼 SDK 버전이 최신인지 확인하세요. SDK 대신 사용자 정의 HTTP 클라이언트를 사용하는 경우 OpenAI API 사양에 따라 JSON 페이로드 및 SSE 스트림 파싱을 수동으로 처리해야 합니다.

인증

모든 API 요청에는 Authorization 헤더에 API 키를 포함해야 합니다. Bearer YOUR_API_KEY 형식을 사용하세요. 모든 요청의 기본 URL은 https://api.characteraiapi.com/v1입니다. SDK를 사용하는 경우 base_url 구성을 이 값으로 설정하고 api_key 매개변수를 통해 키를 제공하세요. 키를 분실하거나 유출된 것으로 의심되는 경우 대시보드에서 재생성할 수 있습니다. 이전 키는 즉시 무효화됩니다. 계정당 활성 키는 하나만 허용됩니다. 표준 OpenAI 엔드포인트로의 요청은 404 또는 401 오류로 실패하므로 올바른 기본 URL을 사용하고 있는지 확인하세요.

기본 채팅 완료

핵심 기능은 /v1/chat/completions 엔드포인트를 통해 제공됩니다. uncensored 모델 이름과 메시지 기록을 사용하여 POST 요청을 보내세요. 모델은 합법적인 성인 콘텐츠에 대한 표준 콘텐츠 필터를 적용하지 않고 텍스트 출력을 반환합니다. 아래는 간단한 텍스트 완료 요청을 보여주는 curl 예제입니다.

curl https://api.characteraiapi.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
  }'

이 요청은 생성된 텍스트를 포함하는 완료 객체를 반환합니다. temperature과 같은 매개변수를 조정하여 무작위성을 제어하거나 max_tokens을 사용하여 출력 길이를 제한할 수 있습니다. 모델은 100,000개의 토큰 컨텍스트 창을 지원하여 단일 요청에서 상당한 대화 기록이나 긴 문서를 처리할 수 있습니다.

스트리밍 응답

더 나은 사용자 경험을 위해 요청에 stream: true을 설정하여 스트리밍을 활성화하세요. API는 생성되는 대로 부분 토큰 청크를 포함하는 Server-Sent Events(SSE)를 반환합니다. 이는 채팅봇 애플리케이션의 지각된 지연 시간을 줄입니다. 마지막 이벤트에서 최종 사용량 통계를 받으려면 stream_options 매개변수를 사용하세요. 스트리밍은 텍스트를 단어 단위로 표시하여 몰입감을 높이는 실시간 캐릭터 역할극에 특히 유용합니다. 클라이언트 코드가 각 청크를 순차적으로 파싱할 수 있도록 SSE 형식을 올바르게 처리해야 합니다.

stream = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Tell the story in second person."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

속도 제한 및 오류

API는 키당 분당 300개의 요청 제한을 시행합니다. 이를 초과하면 429 Too Many Requests 오류가 발생합니다. 요청 본문은 8 MB로 제한됩니다. 일반적인 오류로는 유효하지 않거나 누락된 키에 대한 401 오류와 선불 크레딧이 고갈된 경우 402 오류가 있습니다. 크립토(USDT 또는 USDC)를 사용하여 $10부터 충전할 수 있으며, 더 큰 예치금에는 보너스 크레딧이 제공됩니다. 일부 제공업체와 달리 숨겨진 수수료나 구독 잠금이 없으며, 소비한 토큰에 대해서만 지불합니다. 가격은 투명합니다: 입력 토큰 100만 개당 $0.25, 출력 토큰 100만 개당 $1.00. 오류 처리 로직이 429 오류 발생 시 지수 백오프로 재시도하도록 확인하세요.

from openai import OpenAI

client = OpenAI(base_url="https://api.characteraiapi.com/v1", api_key="YOUR_KEY")

resp = client.chat.completions.create(
    model="uncensored",
    messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)

Node.js

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.characteraiapi.com/v1", apiKey: process.env.API_KEY });

const resp = await client.chat.completions.create({
  model: "uncensored",
  messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);

API 사양

크레딧을 구매하기 전에 확인할 수 있도록 API의 실제 한도와 기능을 한곳에 정리했습니다.

항목내용
형식OpenAI 호환: 어떤 OpenAI SDK든 base URL과 키만 바꾸면 동작
엔드포인트POST /v1/chat/completions · GET /v1/models
인증Authorization: Bearer YOUR_KEY
Base URLhttps://api.characteraiapi.com/v1
모델 IDuncensored
JSON 모드response_format: {"type": "json_object"}
최대 출력100,000 토큰 윈도우의 남은 만큼; max_tokens는 선택 사항(별도 상한 없음)
파라미터temperature, top_p, stop, seed, presence_penalty, frequency_penalty
컨텍스트 창100,000 토큰 (입력 + 출력)
스트리밍지원 — SSE, 마지막 청크에 토큰 사용량 포함
함수 호출지원 — tools, tool_choice; 응답에 tool_calls (스트리밍 포함), 결과는 role: tool로 전송
요청 크기최대 8 MB
응답 헤더X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency
동시 요청키당 동시 8개
속도 제한키당 분당 300회
유효기간유료 크레딧은 만료되지 않으며 구독 없음
보너스$50 이상 +5%, $100 이상 +10%
충전USDT (TRC20) 또는 USDC (Base), $10~$500 사이 원하는 정수 금액
가격입력 100만 토큰당 $0.25 · 출력 100만 토큰당 $1.00
과금선불 크레딧에서 실제 사용량만큼 차감, 오류·거부는 무료
무료 체험$0.50, 7일, 카드 불필요 · 체험 키: 동시 요청 2건, 분당 60건. 첫 충전 후 전체 한도(8건, 300건) 적용
키계정당 활성 키 1개, 새 키를 만들면 이전 키는 무효
로그인Google 또는 이메일과 비밀번호
콘텐츠성인 콘텐츠 허용, 미성년자가 관련된 성적 콘텐츠는 거부

오류 코드

오류는 고정된 type을 가진 JSON으로 반환되며, 실패하거나 거부된 요청은 과금되지 않습니다.

코드유형의미
400bad_request잘못된 JSON, 빈 메시지, 잘못된 파라미터 또는 컨텍스트 초과
401missing_key · invalid_key · key_revoked키 없음·잘못됨·새 키로 교체됨
402no_credit잔액 없음 — 충전하면 즉시 재개
403content_blocked미성년자 관련 성적 콘텐츠 — 거부, 과금 없음
404not_found알 수 없는 엔드포인트
413request_too_large본문 8 MB 초과
429rate_limited · concurrency분당 300회 또는 동시 8개 초과 — 잠시 후 재시도
503upstream_busy모델 혼잡 — 몇 초 후 재시도

질문과 답변

이것이 공식 Character.ai API인가요?

아닙니다. characteraiapi.com에서 호스팅되는 독립적인 서비스입니다. 자체 무검열 모델을 제공하며 Character.AI나 기타 주요 LLM 벤더와 제휴 관계가 아닙니다.

모델은 이미지 또는 오디오 생성을 지원하나요?

아니요. 이 API는 텍스트 전용입니다. 텍스트 입력을 받아 텍스트 출력을 반환합니다. 임베딩, 파인튜닝, 멀티모달 입력/출력을 지원하지 않습니다.

'무검열'은 어떻게 정의되나요?

모델은 합법적인 성인, 픽션, 논쟁적인 주제를 거부하지 않습니다. 미성년자가 포함된 성적 콘텐츠만 차단하며, 이는 모든 요청에 적용되는 하드 제한입니다.

키는 양식 하나만 작성하면 받을 수 있습니다

계정을 생성하고 키를 복사한 후 기본 URL을 변경하세요. 설정은 이것으로 끝입니다.

API 키 받기