API 호출이 실패하면 errorId: 1이 반환되고, errorCode에 오류 코드가, errorDescription에 설명 문구가 담겨요. 오류를 반환한 요청은 포인트를 차감하지 않아요. 작업을 만드는 단계에서 난 오류는 차감하지 않고, 작업 생성 후 인식에 실패하거나 시간이 초과된 경우에는 포인트가 자동으로 환불돼요.
{ "errorId": 1, "errorCode": "ERROR_ZERO_BALANCE", "errorDescription": "帐户余额不足"}처리 원칙
섹션 제목: “처리 원칙”- 파라미터 오류(요청 형식, 키, 작업 유형, 사이트 파라미터, 이미지)는 다시 보내도 결과가 같아요. 먼저 요청을 고치세요.
- 인식 실패와 시간 초과(
ERROR_CAPTCHA_UNSOLVABLE,ERROR_TASK_TIMEOUT)는 작업을 새로 만들어서 다시 시도할 수 있어요. - 오류가 나면 해당
taskId의 폴링을 멈추세요. 같은 요청을 그대로 빠르게 반복해서 보내지 마세요. - “자동 일시 중지에 포함”으로 표시된 오류는 같은
clientKey에서 1분 안에 100번 발생하면 작업 생성이 5분 동안 일시 중지돼요. “캐시”로 표시된 오류는 횟수에 포함되지 않지만, 캐시 기간에는 같은 요청에 원래 오류가 그대로 반환돼요. 자세한 내용은 동시 작업 수 제한과 자동 일시 중지를 참고하세요.
전체 오류 코드
섹션 제목: “전체 오류 코드”요청 형식
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_REQUIRED_FIELDS | 필수 필드가 없거나(예: clientKey, 또는 작업 유형에 필요한 websiteURL, websiteKey) 요청 본문이 JSON이 아니에요 | 작업 유형 페이지의 파라미터 표를 보고 빠진 필드를 추가하세요. POST로 JSON을 보내고 Content-Type: application/json을 포함하세요 |
ERROR_REQUEST_FORMATS자동 일시 중지에 포함 | 요청 본문이 올바른 JSON이 아니에요 | 문자열을 직접 이어 붙이지 말고 JSON 라이브러리로 요청 본문을 만드세요. JSON에는 // 주석을 넣을 수 없어요 |
ERROR_TASK_ABSENT자동 일시 중지에 포함 | createTask를 호출할 때 task 필드가 없어요 | 작업 파라미터를 task 객체에 넣으세요. Python requests에서는 data=data가 아니라 json=data를 사용하세요 |
ERROR_TASK_NOT_SUPPORTED자동 일시 중지에 포함 | task.type의 철자가 틀렸거나 해당 유형이 종료되었어요 | "작업 유형 및 가격"에서 유형 이름을 복사하세요. 대소문자를 구분해요 |
ERROR_PAGE_NOT_FOUND | 요청한 경로가 존재하지 않아요 | 엔드포인트 주소를 확인하세요. 예: https://api.yescaptcha.com/createTask. 메서드 이름은 대소문자를 구분해요 |
ERROR_BAD_REQUEST | 요청을 처리할 수 없어요. 주로 HTTP 메서드가 잘못되었거나(POST 대신 GET 사용) 파라미터 값이 올바르지 않을 때 발생해요 | POST로 JSON을 보내고, 파라미터의 타입과 값을 확인하세요 |
ERROR_ILLEGAL_PARAMETERS | 파라미터 값이 올바르지 않아요. Cloudflare 챌린지 페이지에서 흔히 발생해요. websiteURL이 http:// / https://로 시작하는 공개 URL이 아니거나, postData가 객체가 아니거나, requiredCookies가 문자열 배열이 아닌 경우예요(createTask에서 반환되며 포인트는 차감되지 않아요). 또는 프록시를 통해 대상 도메인을 확인할 수 없는 경우예요(getTaskResult에서 반환되며 포인트는 자동으로 환불돼요) | 작업 유형 페이지의 파라미터 표를 보고 값을 수정하세요. 도메인을 확인할 수 없다면 URL 철자와 프록시가 해당 사이트에 접속할 수 있는지 확인하세요 |
계정 및 잔액
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_KEY_DOES_NOT_EXIST자동 일시 중지에 포함 | clientKey가 존재하지 않아요. 복사할 때 문자가 추가되거나 빠졌거나, 대시보드에서 키를 재설정했을 수 있어요 | yescaptcha.com 대시보드에서 키를 다시 복사하세요. 공백이나 줄바꿈이 없어야 해요 |
ERROR_KEY_EXPIRED자동 일시 중지에 포함 | clientKey가 만료되었어요(createTask와 getBalance에서 반환되며, 포인트는 차감되지 않아요). 두 가지 경우가 있어요. 오랫동안 사용하지 않아 계정 보안을 위해 시스템이 만료 시간을 설정한 경우(만료 전에 이메일로 알려 드려요), 또는 이 clientKey에 설정한 만료 시간이 지난 경우예요 | yescaptcha.com 대시보드에 로그인하세요. 오랫동안 사용하지 않아 만료된 경우 새 clientKey를 생성하세요. 잔액은 새 clientKey로 자동 이동해요. 만료 시간을 설정한 경우에는 만료 시간을 변경하거나 다른 clientKey를 사용하세요. 그런 다음 프로그램의 clientKey를 새 값으로 업데이트하세요 |
ERROR_KEY_IP_NOT_ALLOWED | 이 clientKey에는 IP 허용 목록이 설정되어 있는데, 요청을 보낸 IP가 목록에 없어요 (createTask와 getBalance에서 반환돼요. 포인트는 차감되지 않으며, 자동 일시 중지 횟수에도 포함되지 않아요) | yescaptcha.com 대시보드에 로그인해서 요청을 보내는 기기의 공인 IP를 이 clientKey의 허용 목록에 추가하거나, 다른 clientKey를 사용하세요. 여러 기기에서 API를 호출한다면 각 기기의 공인 IP를 모두 추가해야 해요 (여기서 말하는 IP는 YesCaptcha API를 호출하는 IP이며, 작업 파라미터의 프록시와는 관계없어요) |
ERROR_KEY_QUOTA_EXCEEDED | 이 clientKey에는 사용 한도가 설정되어 있는데, 현재 기간에 남은 한도가 이번 작업의 포인트 차감액보다 적어요 (createTask에서 반환돼요. 포인트는 차감되지 않으며, 자동 일시 중지 횟수에도 포함되지 않아요). 한도는 실제로 차감된 포인트를 기준으로 계산하며, 인식 실패나 시간 초과로 환불된 포인트는 한도에도 다시 반영돼요 | yescaptcha.com 대시보드에 로그인해서 이 clientKey의 한도를 늘리거나, 다음 기간까지 기다리거나(베이징 시간 기준으로 매일, 매주 월요일 또는 매월 1일에 초기화돼요. 일회성 한도는 초기화되지 않아요), 다른 clientKey를 사용하세요. getBalance로 이 clientKey의 남은 한도(keyQuotaRemaining)를 확인할 수 있어요 |
ERROR_ZERO_BALANCE | 잔액이 부족해요. 작업을 만들려면 잔액이 10포인트보다 많아야 해요 | 충전한 뒤 다시 시도하세요. getBalance로 잔액을 확인할 수 있어요 |
동시 작업 및 일시 중지
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_THREADS_MAXIMUM경우에 따라 자동 일시 중지에 포함 | 이 계정에서 이 유형의 작업이 동시에 너무 많이 처리 중이에요. 응답의 limit은 현재 한도예요. 이 요청은 처리되지 않았고 포인트도 차감되지 않았어요 | 이미 보낸 요청이 반환될 때까지 기다린 뒤 새 요청을 보내거나, 1~2초 기다렸다가 다시 시도하세요. 프로그램에서 동시에 결과를 기다리는 요청 수를 제한하세요 |
ERROR_IP_BLOCKED_5MIN | 이 clientKey에서 짧은 시간에 오류가 너무 많이 발생해 작업 생성이 자동으로 일시 중지되었어요. 응답의 retryAfter는 남은 시간(초)이고 blockReason은 일시 중지를 일으킨 오류 코드예요 | blockReason에 따라 요청을 수정하고 retryAfter초 동안 기다리세요. 일시 중지 중에 요청을 보내도 시간이 늘어나지 않아요 |
ERROR_NO_SLOT_AVAILABLE | 인식 서비스가 일시적으로 과부하 상태예요. createTask에서 반환된 경우 포인트가 차감되지 않아요. 대기열에서 너무 오래 기다린 작업은 getTaskResult에서도 이 오류가 반환되며, 포인트가 자동으로 환불돼요 | 몇 초 기다린 뒤 작업을 다시 생성하세요 |
작업 및 결과
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_TASKID_INVALID자동 일시 중지에 포함 | taskId가 존재하지 않거나, 만료되었거나(결과는 약 10분간 보관돼요), 다른 clientKey로 생성되었거나, 다른 엔드포인트에서 생성되었어요 | 이 작업의 폴링을 중단하세요. 작업을 생성한 것과 같은 엔드포인트와 같은 clientKey로 조회하세요 |
ERROR_TASK_TIMEOUT | 작업이 제한 시간(보통 110초) 안에 완료되지 않았어요. 포인트는 자동으로 환불됐어요 | 작업을 새로 생성하세요. 계속 시간 초과가 발생하면 같은 캡차에 대한 다른 작업 유형을 사용해 보세요 |
ERROR_CAPTCHA_UNSOLVABLE | 이번에는 캡차를 인식하지 못했어요. 포인트는 환불됐어요. 자동 일시 중지 횟수에는 포함되지 않아요 | 작업을 새로 생성하세요. 계속 실패하면 websiteURL, websiteKey 등의 파라미터를 확인하거나 같은 캡차에 대한 다른 작업 유형을 사용해 보세요 |
ERROR_SETTLEMENT_FAILED자동 일시 중지에 포함 | 정산 시점에 잔액이 부족해서 결과가 반환되지 않았어요 | 충전한 뒤 작업을 새로 생성하세요 |
ERROR_NO_SUCH_CAPCHA_ID | 작업이 더 이상 유효하지 않아요 | 이 작업의 폴링을 중단하고 새로 생성하세요 |
ERROR_RECAPTCHA_TIMEOUT | 캡차 인식 시간이 초과되었어요. 포인트는 환불됐어요 | 작업을 새로 생성하세요 |
대상 웹사이트 파라미터
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_RECAPTCHA_INVALID_SITEKEY캐시됨, 일시 중지에 포함되지 않음 | websiteKey가 유효하지 않아요 | 페이지에서 sitekey를 다시 찾으세요(파라미터 찾기 가이드 참고). 동일한 요청은 캐시 기간 동안 이 오류를 바로 반환하며, 응답에 cached: true가 포함돼요 |
ERROR_RECAPTCHA_INVALID_DOMAIN캐시됨, 일시 중지에 포함되지 않음 | websiteURL의 도메인이 websiteKey와 일치하지 않아요 | websiteURL에는 캡차가 표시되는 페이지의 주소를 입력하세요 |
ERROR_INVALID_KEY_TYPE캐시됨, 일시 중지에 포함되지 않음 | sitekey가 다른 종류의 캡차에 속해요. 예를 들어 v3 키를 v2 작업 유형에 사용한 경우예요 | 먼저 캡차 유형을 확인한 뒤("캡차 유형 판별" 참고) 알맞은 작업 유형을 선택하세요. 보이지 않는 v2는 isInvisible을 설정하세요 |
ERROR_DOMAIN_NOT_ALLOWED캐시됨, 일시 중지에 포함되지 않음 | 이 사이트는 지원되지 않아요 | 같은 캡차에 대한 다른 작업 유형을 사용해 보거나 고객 지원에 문의하세요 |
ERROR_HIGH_DEMAND_DOMAIN자동 일시 중지에 포함 | 이 사이트는 지원되지 않아요 | 이 사이트의 작업 전송을 중단하고 고객 지원에 문의하세요 |
ERROR_FAILED_LOADING_WIDGET | 입력한 파라미터로 캡차를 불러올 수 없어요 | websiteURL과 websiteKey를 확인하세요. 자체 프록시를 사용하는 작업 유형은 프록시가 대상 사이트에 접속할 수 있는지 확인하세요 |
이미지
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_ZERO_CAPTCHA_FILESIZE자동 일시 중지에 포함 | 이미지가 비어 있거나 너무 작아요 | Base64 데이터가 완전한지, data:image/...;base64, 접두사가 없는지 확인하세요 |
ERROR_TOO_BIG_CAPTCHA_FILESIZE자동 일시 중지에 포함 | 이미지가 너무 커요 | 이미지를 압축하거나 크기를 줄이세요. 전체 요청 본문은 6 MB를 넘을 수 없어요 |
ERROR_IMAGE_TYPE_NOT_SUPPORTED자동 일시 중지에 포함 | 이미지 형식이 지원되지 않거나, 이 작업 유형에서 처리할 수 없는 이미지예요. 한 번만 발생해도 키가 30분 동안 일시 중지돼요 | JPG 또는 PNG를 사용하고 이미지가 작업 유형과 맞는지 확인하세요. 예를 들어 reCAPTCHA 이미지 인식은 100x100, 300x300 또는 450x450 크기가 필요해요 |
ERROR_ILLEGAL_IMAGE자동 일시 중지에 포함 | 이미지 크기가 이 작업 유형의 요구 사항에 맞지 않아요 | 작업 유형 페이지의 설명에 따라 이미지 크기를 조정하세요 |
ERROR_PARSE_IMAGE_FAIL | 이미지를 디코딩할 수 없어요. Base64가 잘렸거나 접두사가 붙어 있는 경우가 많아요 | Base64 인코딩을 확인하고 data: 접두사와 줄바꿈을 제거하세요 |
ERROR_UNKNOWN_QUESTION | question이 잘못되었거나, 이 질문이 아직 지원되지 않아요 | 작업 유형 페이지의 질문 목록과 대조해 확인하세요. 지원되지 않는 질문은 고객 지원에 문의하세요. 새로운 질문은 보통 영업일 기준 3일 이내에 지원돼요 |
ERROR_UNKNOW_450x450_QUESTION | 이 질문은 아직 4x4(450x450) 이미지를 지원하지 않아요 | 페이지에서 챌린지를 새로 고쳐 다른 질문을 받으세요 |
프록시
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_PROXY_CONNECT_REFUSED | 프록시가 연결을 거부했어요 | 프록시 주소, 포트, 프로토콜을 확인하고 외부 연결을 허용하는지 확인하세요(127.0.0.1 같은 로컬 주소는 사용할 수 없어요) |
ERROR_PROXY_CONNECT_TIMEOUT | 프록시 연결 시간이 초과되었어요 | 더 안정적인 프록시를 사용하세요 |
ERROR_PROXY_READ_TIMEOUT | 프록시를 통한 데이터 읽기 시간이 초과되었어요 | 더 빠른 프록시를 사용하세요 |
ERROR_PROXY_BANNED | 프록시를 사용할 수 없거나, 프록시 IP가 대상 사이트에서 차단되었어요 | 다른 프록시를 사용하세요 |
ERROR_PROXY_INCORRECT | 프록시 파라미터 형식이 올바르지 않아요 | proxyType, proxyAddress, proxyPort(또는 proxy 문자열)의 형식을 확인하세요 |
ERROR_PROXY_TRANSPARENT | 프록시가 투명 프록시라서 실제 IP가 노출돼요 | 익명(엘리트) 프록시로 바꾸세요 |
ERROR_PROXY_NOT_AUTHORISED | 프록시 사용자 이름 또는 비밀번호가 올바르지 않아요 | proxyLogin과 proxyPassword(또는 proxy 문자열에 포함된 인증 정보)를 확인하세요 |
ERROR_PROXY_TLS_ERROR | 프록시와의 TLS 핸드셰이크에 실패했어요. proxyType이 잘못된 경우가 많아요(예: http 프록시에 https를 설정한 경우) | 프록시 프로토콜을 확인하세요 |
ERROR_PROXY_CONNECTION_FAILED | 프록시 서버에 연결할 수 없어요 | 프록시 주소와 포트를 확인하고 프록시가 정상 작동하는지 확인하세요 |
서버
| 오류 코드 | 의미 | 해결 방법 |
|---|---|---|
ERROR_SERVICE_UNAVALIABLE | 서비스를 일시적으로 사용할 수 없어요(코드 철자는 UNAVALIABLE이에요) | 잠시 후 다시 시도하세요. 계속 발생하면 고객 지원에 문의하세요 |
ERROR_INTERNAL_SERVER_ERROR | 서버 내부 오류가 발생했어요 | 잠시 후 다시 시도하세요. 계속 발생하면 taskId와 함께 고객 지원에 문의하세요 |
ERROR_UNKNOWN | 분류되지 않은 오류예요 | 잠시 후 다시 시도하세요. 계속 발생하면 taskId와 함께 고객 지원에 문의하세요 |
추가 필드
섹션 제목: “추가 필드”일부 오류의 응답에는 추가 필드가 포함돼요.
| 필드 | 나타나는 곳 | 설명 |
|---|---|---|
retryAfter |
ERROR_IP_BLOCKED_5MIN, 캐시된 오류 |
더 기다려야 하는 시간(초) |
blockReason |
ERROR_IP_BLOCKED_5MIN |
일시 중지를 일으킨 오류 코드 |
blockDetail |
ERROR_IP_BLOCKED_5MIN |
일시 중지를 일으킨 요청의 유형, URL, sitekey. 원인을 찾을 때 활용하세요 |
cached |
캐시된 오류 | true이면 캐시된 결과이고 실제로 인식하지 않았다는 뜻이에요 |
badRequest |
캐시된 오류 | 캐시에 걸린 파라미터 |
limit |
ERROR_THREADS_MAXIMUM |
현재 동시 작업 수 상한 |
errorDescription의 언어 규칙은 요청과 응답을 참고하세요.
© YesCaptcha