인증 및 베이스 URL
nano banana api에 접근하려면 클라이언트를 https://api.nanobananaapis.com/v1로 설정하세요. Authorization 헤더에 유효한 API 키가 필요합니다. API 키 받기 페이지에서 이메일과 비밀번호로 가입하여 키를 즉시 받으세요. 키는 가입 직후 표시됩니다. 분실 시 대시보드에서 새 키를 생성하면 이전 키는 즉시 무효화됩니다.
모든 요청에 Bearer YOUR_API_KEY를 사용하세요. 모델 ID는 항상 uncensored입니다. 이 엔드포인트는 텍스트 입력과 출력을 처리합니다. 이미지, 오디오, 비디오를 생성하지 않습니다. 멀티모달 파이프라인에는 프롬프트 작성, 스크립트 생성 및 사후 처리에 이 API를 사용하세요.
첫 번째 요청
표준 채팅 완료 요청을 보내세요. API는 OpenAI 형식을 지원합니다. YOUR_API_KEY을 실제 키로 바꾸세요. 이 예제는 무검열 모델에 간단한 메시지를 전송합니다.
curl https://api.nanobananaapis.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."}]
}'응답에는 생성된 텍스트가 포함됩니다. 응답 본문에서 사용 토큰 수를 확인할 수 있습니다. 프롬프트와 완료의 컨텍스트 창은 총 100,000 토큰입니다. 페이로드를 8 MB 미만으로 유지하세요.
Python SDK 예제
공식 OpenAI Python SDK를 사용하세요. 베이스 URL을 nanobananaapis 엔드포인트로 설정하세요. API 키를 api_key로 전달하세요. 클라이언트는 요청을 자동으로 올바르게 포맷합니다. 이 방법은 이미지 또는 비디오 생성 서비스에 전송하기 전에 텍스트를 처리해야 하는 백엔드 스크립트에 이상적입니다.
from openai import OpenAI
client = OpenAI(base_url="https://api.nanobananaapis.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)SDK는 스트리밍 및 파싱을 처리합니다. 스트리밍 모드를 활성화하면 청크를 반복할 수 있습니다. 이 방법은 코드를 깔끔하게 유지하고 나중에 제공업체를 전환할 때 다른 OpenAI 서비스와 호환되도록 합니다.
Node SDK 예제
Node.js SDK도 유사하게 작동합니다. 베이스 URL과 키로 클라이언트를 초기화하세요. chat.completions.create 메서드를 호출하세요. 이는 스크립트를 동적으로 생성해야 하는 서버리스 함수나 웹 서버에 유용합니다.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nanobananaapis.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);오류를 적절히 처리하세요. 일반적인 오류로는 키가 유효하지 않거나 만료된 경우 인증 실패(401), 분당 300개 요청을 초과한 경우 속도 제한(429)이 있습니다. API 키는 계정에 연결되므로 환경 변수에서 보호하세요.
스트리밍 응답
요청에 stream: true을 설정하여 스트리밍을 활성화하세요. API는 서버 전송 이벤트(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)클라이언트 측에서 SSE 이벤트를 파싱하세요. 스트림은 모델이 생성을 완료하거나 컨텍스트 제한에 도달할 때 종료됩니다. 스트리밍은 사용자의 지각된 지연 시간을 줄입니다. 가격 책정에는 영향을 주지 않으며 토큰당 여전히 요금이 부과됩니다.
제한, 오류 및 모델
GET /v1/models를 통해 사용 가능한 모델을 확인하세요. 유일한 모델은 uncensored입니다. 속도 제한은 키당 분당 300개 요청입니다. 요청 본문은 8 MB 미만이어야 합니다. 가격은 입력 토큰 1M당 $0.25, 출력 토큰 1M당 $1.00입니다. 크레딧은 만료되지 않습니다. 부족할 경우 $10부터 충전할 수 있습니다. 오류: 키 오류 시 401, 크레딧 부족 시 402, 속도 제한 초과 시 429. SLA 또는 가동 시간 보장은 제공되지 않습니다. 이 모델은 미성년자가 포함된 성적인 콘텐츠는 차단합니다. 기타 합법적인 성인 또는 논쟁적인 주제에는 거부하지 않습니다.