# 호출 제한 및 동시 실행

요청 제한, 작업 제한 및 429 대처 방법.

출처: https://scifig.ai/ko/docs/api/rate-limits

## 제한

| 제한 | 값 | 적용 대상 |
| --- | --- | --- |
| 생성 요청 | 분당 20회 | 각 API 키 또는 OAuth 클라이언트와 계정의 조합. 모든 `POST` 엔드포인트에 공통 적용 |
| 생성 요청 | 분당 40회 | 각 계정, 모든 인증 정보에 공통 적용 |
| 조회 요청 | 분당 120회 | 각 API 키 또는 OAuth 클라이언트와 계정의 조합 |
| 실행 중인 작업 | 요금제별(`GET /credits` 참조) | 각 계정, 웹사이트와 공유 |
| 시간당 작업 수 | 최근 1시간 기준 200회 | 각 계정, 웹사이트와 공유 |
| 래스터 변환 | 하루 200회 | 각 계정 |
| 텍스트 감지 | 15분마다 20회 | 각 계정, 웹사이트와 공유 |
| 대기 시간 제한 | 30초 | 각 요청 |

## 429 대처 방법

- 인증과 범위 검사를 통과한 요청의 응답에는 가장 엄격한 요청 제한 구간의 `X-RateLimit-Limit`, `X-RateLimit-Remaining` 및 `X-RateLimit-Reset`이 포함됩니다. `401`과 `403 SCOPE_DENIED`에는 포함되지 않습니다. `429`에는 초 단위의 `Retry-After`가 포함됩니다.
- `429 CONCURRENCY_LIMITED`는 해당 계정에 이미 너무 많은 작업이 실행 중임을 뜻합니다. 완료된 작업은 집계되지 않습니다. `429 RATE_LIMITED`의 원인은 아래에 나열되어 있습니다.
- 최소한 `Retry-After`만큼 기다린 뒤 무작위 지연을 더한 지수 백오프를 적용하고, 같은 `Idempotency-Key`로 재시도하세요.
- 작업 한도는 계정 단위입니다. 키를 늘려도 실행 용량이 늘어나지 않습니다.

## 429 발생 원인

- 요청 수 초과: 생성은 인증 정보별 분당 20건, 계정별 40건, 조회는 인증 정보별 분당 120건입니다. `Retry-After`는 제한 구간 초기화까지의 시간이며, `details.reason`은 없습니다.
- 최근 1시간 동안 시작한 작업 수 초과: 계정별 최대 200건, 웹사이트와 공유. `Retry-After: 30`.
- 실행 중인 작업 수 초과: `429 CONCURRENCY_LIMITED`. 요금제별 한도를 웹사이트와 공유(`GET /credits` 참조). `Retry-After: 30`.
- 무료 PNG, PDF, TIFF 및 PPTX 변환의 일일 200회 한도를 소진했습니다. `details.reason = DAILY_CONVERSION_LIMIT`와 일일 제한 구간 초기화까지의 `Retry-After`를 반환합니다.
- 업로드 빈도 초과: `details.reason = UPLOAD_RATE_LIMITED`. `POST /files`의 이미지 및 마스크, 순서도 첨부 파일, 그래프 데이터에 웹사이트의 분당 업로드 한도를 적용합니다.
- 일일 업로드 수 초과: `details.reason = UPLOAD_DAILY_LIMIT_REACHED`. 순서도 첨부 파일과 그래프 데이터에 웹사이트의 일일 업로드 한도를 적용합니다.
- 텍스트 감지: 계정별 15분당 20회, 웹사이트와 공유.
