메인 콘텐츠로 건너뛰기
모든 태스크에는 크레딧 가격이 있습니다. 가격은 제출할 때 보류되고, 태스크가 완료되면 차감되고, 실패하면 해제됩니다. 동시에 대기하거나 실행할 수 있는 태스크 수는 요금제가 정합니다. 엔진과 가격의 실시간 목록은 공개 capabilities 엔드포인트를 호출하세요. API 키가 필요 없습니다.
엔진 하나만 보려면 ?taskType=GEMINI를 붙이세요. GOOGLE_AIO 같은 별칭도 받습니다. capabilities 조회를 참고하세요.

태스크별 크레딧

가격은 요금제와 관계없이 같고, 크레딧의 달러 가치가 요금제마다 다릅니다. 크레딧은 1.25처럼 소수점 둘째 자리까지 가질 수 있습니다.

Citation Analysis 계량

CITATION_ANALYSIS 태스크는 제출 시 20 + 12 × citations + 80 × ⌈answer characters ÷ 1,000⌉ 크레딧을 보류합니다. 완료되면 1 + ⌈input tokens ÷ 500⌉ + ⌈output tokens ÷ 100⌉ + 2 × source fetches를 차감하며 보류액을 넘지 않습니다. 나머지 보류액은 해제됩니다. Citation Analysis를 참고하세요.

보류, 차감, 해제

1

제출: 보류

태스크 가격(WEB_CRAWL, GEO_SCORE, CITATION_ANALYSIS는 최대값)이 사용 가능 잔액에서 보류액으로 옮겨집니다. 잔액이 부족하면 제출은 402 INSUFFICIENT_CREDITS를 반환합니다. 제출 응답의 credits는 0입니다.
2

완료: 차감

보류액에서 요금을 차감합니다. 종료된 태스크의 폴링과 webhook은 이를 creditsCharged로 보여줍니다.
3

실패: 해제

보류액이 잔액으로 돌아옵니다. 실패한 태스크의 비용은 0입니다.
새 계정은 가입 시 500 크레딧을 받습니다.

잔액 확인

GET /v1/credits는 계정의 크레딧을 반환합니다. 조회에는 크레딧이 들지 않으므로 배치를 보내기 전마다 확인해도 됩니다. 크레딧 잔액을 참고하세요.
  • remaining은 지금 쓸 수 있는 크레딧입니다. 이미 제출한 태스크의 가격은 reserved에 보류되어 있으니 다시 빼지 마세요.
  • perCycle은 요금제가 주기마다 지급하는 크레딧이고, cycleResetsAt은 현재 주기가 끝나는 시각입니다. 활성 요금제가 없으면 둘 다 null입니다.
  • topUpBalance는 remaining에 든 충전 크레딧과, 그중 가장 먼저 만료되는 날짜와 그날 만료되는 양을 알려 줍니다. 충전 크레딧이 없으면 null입니다. 충전 크레딧은 구매 후 3개월 동안 유지되고, 갱신 때 이월되며, 요금제 크레딧을 다 쓴 뒤에 사용됩니다.
하위 계정은 내 크레딧을 쓰므로 하위 계정 키는 403 SUB_ACCOUNT_FORBIDDEN을 받습니다. 하위 계정을 참고하세요.

사용량 확인

GET /v1/usage는 UTC 날짜 범위 동안 계정에 청구된 크레딧을 일, 엔진, API 키별로 나눠 반환합니다. 조회에는 크레딧이 들지 않습니다. 크레딧 사용량을 참고하세요.
  • from과 to는 UTC 날짜이고 두 날짜가 모두 포함됩니다. 기본값은 이번 UTC 달의 첫날과 오늘이며, 범위는 최대 366일입니다.
  • groupBy는 day, engine, key를 쉼표로 이어 받고 기본값은 day,engine입니다. 행에는 고른 기준의 필드가 담기고, 청구가 없는 조합은 행이 없습니다. 맨 위의 credits와 tasks는 모든 행의 합입니다.
  • groupBy=key는 크레딧을 쓴 주체를 보여 줍니다. API 키로 보낸 태스크는 "source": "api"이고 키의 id, keyPrefix, name, subAccountId가 든 apiKey가 붙습니다. API 키가 없는 사용은 source가 monitor(모니터 실행), playground, dashboard 중 하나이고 apiKey는 null입니다.
  • 사용량은 태스크에 청구된 크레딧을 합산하며, 실패한 태스크는 0입니다. 모니터의 경쟁사 분석은 태스크 없이 청구되므로 잔액은 줄지만 사용량에는 나타나지 않습니다.
  • 하위 계정의 태스크도 내 사용량에 들어가며, apiKey.subAccountId가 키를 가진 하위 계정을 알려 줍니다. 하위 계정 하나는 GET /v1/sub-accounts/{id}/usage로 읽습니다. 하위 계정 키는 403 SUB_ACCOUNT_FORBIDDEN을 받습니다.

대기열 확인

GET /v1/async/status는 계정에서 대기 중이거나 실행 중인 태스크와, 그 태스크가 계산되는 동시 실행 한도를 함께 반환합니다. 조회에는 크레딧이 들지 않습니다. 대기열 상태를 참고하세요.
  • concurrency.used는 queuedTasks와 processingTasks의 합이며, 요금제의 동시 실행 한도가 합쳐서 세는 두 값입니다. max가 그 한도이므로 max - used가 새 태스크를 넣을 수 있는 여유입니다.
  • priorityBreakdown은 대기 중인 태스크를 제출할 때 보낸 priority별로, 높은 값부터 나열합니다.
  • 집계에는 한도를 함께 쓰는 하위 계정의 태스크도 들어갑니다. 하위 계정 키는 403 SUB_ACCOUNT_FORBIDDEN을 받고, 자기 태스크 수는 GET /stats로 읽습니다.

요금제

요금제 비교는 요금 페이지에 있습니다.

요금제 동시 실행 한도

동시 실행 한도는 계정의 QUEUED와 PROCESSING 태스크를 합쳐 셉니다. 제출 속도에 대한 한도가 아닙니다. 한도를 넘게 되는 제출은 details.limit, details.active, Retry-After와 함께 429 PLAN_CONCURRENCY_LIMIT를 반환합니다. 계약으로 계정에 다른 한도를 둘 수 있고, 상위 계정은 하위 계정의 한도를 정할 수 있습니다.

키별·하위 계정별 한도

키의 일일 한도는 태스크에 필요한 보류액을 셉니다. 그래서 사용량 + 가격이 한도를 넘게 되면 태스크가 거부됩니다.

요청 속도와 백프레셔

엣지의 429는 API 앞단에서 나오므로 JSON 오류 봉투도 Retry-After도 없습니다. 이를 받으면 지수 백오프로 기다리세요. 태스크 제출 엔드포인트의 429와 503에는 Retry-After 헤더(초)가 붙습니다. 코드와 재시도 안내는 오류에 있습니다.

대량 제출 속도 조절

1

루프 대신 배치

항목 500개짜리 POST /v1/async/task/batch 한 번은 엣지 한도에서 요청 하나로 셉니다. 동시 실행 한도보다 많다면 POST /v1/batches를 쓰세요. 서버가 여유가 생기는 대로 항목을 내보냅니다. 배치와 그리드를 참고하세요.
2

Retry-After 준수

거부된 태스크를 다시 제출하기 전에 Retry-After의 초만큼 기다리세요. 같은 idempotencyKey를 다시 쓰면 재시도가 중복을 만들지 않습니다.
3

의존 작업은 순서대로

실행 순서는 보장되지 않습니다. 결과에 의존하는 작업은 앞 태스크가 완료된 뒤에 제출하세요.
4

개수 확인

GET /v1/async/status는 대기 중이거나 실행 중인 태스크를 요금제 한도와 함께 반환하므로 한도 아래로 유지할 수 있습니다. GET /stats는 최근 24시간 동안 끝난 태스크 수를 더해 줍니다.