전체 글

FourA Digest: 2026년 9월 4일 - 9월 11일

모든 플랜 거절 응답에 원인이 된 제한이 명시되며, proxy 포트는 키의 타겟팅 설정을 기억하고, 모든 플랜에 Browser 및 CAPTCHA 해결 기능이 기본 포함됩니다.

주요 변경 사항

대상 사이트의 거부인지 플랜 제한인지 구분하기 어려우셨나요? 이제 플랜 제한으로 인해 거부된 모든 요청의 원인이 단일 헤더로 반환되며, Auto 및 Playground에서도 해당 값을 확인합니다. 프록시 포트는 키 기반의 타겟팅 설정을 기억하도록 개선되었으며, 브라우저 렌더링 및 CAPTCHA 해결 기능이 Free 플랜을 포함한 모든 플랜에 기본 제공됩니다.

새로운 기능

거부 주체를 명시하는 응답 헤더

플랜 제한으로 인해 요청이 거부되면, 응답에 X-FourA-Limit 헤더가 포함되어 원인을 구체적으로 표시합니다 (plan_limit_credits, plan_limit_rate, plan_limit_browser_daily 및 기타 4종). 응답 본문 역시 계정에 적용된 제한 수치와 함께 reason에 해당 코드를 반환합니다. FourA의 공유 플랫폼 레벨 제한은 이 헤더를 설정하지 않으므로, 헤더의 존재 여부만으로 FourA 시스템 부하가 아닌 계정 자체의 제한으로 인한 거부임을 즉시 확인할 수 있습니다.

import requests

r = requests.post(
    "https://api.foura.ai/api/single",
    headers={"X-API-Key": "pk_live_..."},
    json={"url": "https://example.com/data"},
)
limit = r.headers.get("X-FourA-Limit")
if limit:
    print("my plan stopped this:", limit, r.json()["error"])

계정의 모든 제한은 이제 사용 중인 플랜을 기준으로 적용되며, Usage & Limits에서 이번 기간의 사용 현황과 함께 각 제한 항목을 확인할 수 있습니다. rate limits 레퍼런스에는 7가지 코드 전체와 잠시 대기하면 해결되는 코드가 정리되어 있습니다.

Auto는 동일한 코드를 읽고 그에 맞춰 동작합니다. 특정 단계 하나를 차단하는 제한(예: 일일 브라우저 허용량)이 발생해도 나머지 단계는 계속 작동하며, 플랜에 의해 거부된 요청에 대해 이미 시도한 출구 노드의 탓으로 돌리지 않습니다. 크레딧, 대역폭, 또는 플랜에 포함되지 않은 제품처럼 계정 자체가 소진되었음을 의미하는 제한이 발생하면, 다른 모든 경로를 먼저 시도하는 대신 즉시 단계를 중단하고 거부 사유를 반환합니다. 이 중 어느 것도 Auto의 목적을 바꾸지는 않습니다. 작동하는 단계를 찾게 한 다음, 반환된 세션을 /api/single 또는 /api/browser에서 재생하여 해당 경로로 트래픽을 집중시키면 됩니다.

Playground에서는 이를 명확한 텍스트로 보여줍니다. 응답 위의 한 줄에 페이지를 처리한 수단(해당 호스트에 이미 보유 중이던 세션, 일반 request, rotating proxy, 또는 실제 브라우저)과 함께 챌린지 해결 여부, 성공한 시도 회차, 발생 비용이 표시됩니다. 플랜에 의해 request가 중단된 경우 해당 줄은 "Stopped by your plan, not by the site"로 시작하며 해당 제한 항목을 명시합니다.

프록시 포트, 베타

프록시 포트를 사용하면 프록시 URL을 지원하는 모든 클라이언트가 API 호출 없이 당사의 출구 노드를 통해 트래픽을 전송할 수 있습니다. 현재 베타 상태입니다. 프록시 포트를 통한 트래픽은 아직 청구되지 않으며, 가동 시간 보장이 제공되지 않고, 옵션 이름이 변경될 수 있습니다.

이번 주 업데이트를 통해 선택 항목이 더 명확해졌습니다. 플랜에 기본 포함된 자체 출구 노드인 shared network, 또는 플랜의 프리미엄 트래픽에서 차감되는 가정용 IP인 residential network 중 선택할 수 있습니다. Shared network에서 request를 처리할 수 없을 때 residential로 fallback하는 기능은 별도의 스위치로 제공되며 기본값은 꺼져 있습니다. 저희가 이 옵션을 기본으로 켜두는 것은 고객의 허용량을 임의로 소진하는 것과 같기 때문입니다.

타겟팅은 이제 credential에 저장됩니다. 프록시 사용자에 국가, 지역, 도시 또는 디바이스를 저장하면 해당 계정으로 연결되는 모든 연결이 그에 맞춰 응답합니다. 따라서 연결 문자열은 기본 credential과 변경하려는 값만으로 간소화됩니다. 단, 해당 단일 연결에서는 username에 직접 지정한 값이 항상 우선 적용되며, any를 통해 저장된 값을 되돌릴 수 있습니다. 예를 들어 -city-any은 특정 도시가 기억된 키에서 국가 전체를 요청합니다.

주소별로 브라우저 프로필을 실행하시나요? 필요한 고정 IP 주소 수를 설정하면 페이지에 각 세션 이름이 포함된 라인이 하나씩 나열됩니다. 대상 사이트에서 기존 세션이 차단되었을 때 New names를 통해 새 세트를 받을 수 있으며, 각 라인은 URL 형식 또는 대부분의 프록시 관리자가 가져오는 형식인 host:port:user:pass 형태로 제공됩니다. 전체 username 문법은 프록시 포트 문서에서 확인할 수 있습니다.

모든 플랜에서 방어된 페이지 지원

브라우저 렌더링과 CAPTCHA 해결은 Free를 포함한 모든 플랜에 기본 제공되며, 한도만 다릅니다. Free 및 Developer 플랜에도 프리미엄 출구 트래픽이 일부 포함되어 있으므로, 결제하기 전에 직접 지정한 URL에서 방어된 페이지가 반환되는지 확인할 수 있습니다.

Proxy Finder의 프리미엄 출구는 대상 사이트를 구분하지 않습니다. 어떤 대상이든 exitClass: premium을 전송하면 플랜의 프리미엄 트래픽(및 잔여량)만으로 결정됩니다.

입력한 정보를 그대로 반영하는 결제 시스템

Billing Details에 저장된 회사명, VAT 번호 및 국가는 인보이스에 인쇄되며, 결제 및 갱신 시 VAT 처리 방식을 결정하는 기준이 됩니다. 결제 양식에 다른 내용을 입력하면 해당 결제 건에 한해 해당 필드만 덮어씁니다.

서명된 계약의 일환으로 플랜이 설정된 경우, 이제 Plan & Usage에서 Confirm 버튼과 함께 해당 플랜을 제공합니다. 월간 또는 연간을 선택하고 카드를 등록하면 일할 계산 없이 전체 기간 금액이 선불로 결제됩니다.

Plan & Usage의 크레딧 옆에는 대역폭용 카드와 프리미엄 트래픽용 카드 2개가 추가되어, 플랜 기본 제공량 및 추가 구매량을 기준으로 현재 사용량을 보여줍니다. 해당 유형의 충전 상품을 구매할 수 있는 경우, 해당 카드에 Buy 버튼이 표시됩니다. 자세한 내용은 결제 가이드에서 다룹니다.

내부 구현 세부사항

분당 rate limit는 다음 분으로 넘어가기 직전까지 해당 1분 동안 전송된 트래픽을 정확히 계산합니다. Dashboard 테이블은 노트북 화면에 맞춰 표시되며, 모바일 기기에서는 너비가 넓은 테이블이 자체 프레임 내에서 가로로 스크롤됩니다. 블로그 테이블도 좁은 화면에서 동일한 방식으로 스크롤됩니다. 조직 페이지를 열면 대기 중인 초대 목록이 즉시 표시됩니다.

명확히 파악할 수 있는 거부 응답이어야 대응 계획을 세울 수 있습니다. 다음번에 작업이 중단되면 단 하나의 header를 통해 1초를 대기해야 하는지, 자정(UTC)까지 대기해야 하는지, 아니면 플랜을 확인해야 하는지 바로 알 수 있습니다.