API Endpoint 참조
모든 FourA API endpoint의 request 파라미터 및 response 형식에 대한 레퍼런스입니다.
Base URL
https://eu.api.foura.ai/api
인증
모든 request는 X-API-Key header에 API 키를 포함해야 합니다:
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method": "GET", "url": "https://example.com"}'
Dashboard에서 API key를 생성하고 관리하세요. Key는 pk_live_ 접두사를 사용합니다.
Response Headers
/api/*의 모든 response에는 두 개의 correlation header가 포함됩니다:
| Header | Value | 설명 |
|---|---|---|
X-FourA-Request-Id |
UUID | request에 할당된 고유 ID입니다. 4xx 및 5xx를 포함한 모든 response에서 반환됩니다. 시스템에 로깅하세요. |
X-FourA-Credits |
integer | 이 request에 소비된 크레딧입니다. 성공 및 실패 시 모두 반환됩니다(어느 쪽이든 작업은 수행됨). 청구 대상 결과는 Request Outcomes를 참조하세요. |
동일한 request ID가 Dashboard의 Activity Log(24시간 보관, key당 최근 200개)에서 request 및 response payload 미리보기를 식별합니다. 이를 통해 나중에 정확한 request를 검색하고 Activity에서 Playground로 직접 다시 실행할 수 있습니다. 지원팀에 문의할 때 이 ID를 포함하면 몇 초 안에 request를 정확히 찾을 수 있습니다.
$ curl -i -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"method": "GET", "url": "https://example.com"}'
HTTP/2 200
content-type: application/json
x-foura-request-id: 8f3e2a14-7b6c-4d1a-9e2f-5a3b8c1d4e7f
x-foura-credits: 2
...
전체 목록과 사용 팁은 Response Headers를 참조하십시오.
엔드포인트
MCP를 통해 이 엔드포인트들을 사용하시나요?
@fouradata/mcpserver는 4개의 모든 엔드포인트를 기본 MCP 도구(foura_auto,foura_single,foura_proxy,foura_browser)로 래핑하며 동일한 입력 형태와 함께 토큰 친화적인 대규모 응답 처리를 위한offload_large옵트인 기능을 제공합니다.
FourA는 서로 다른 시나리오에 최적화된 4개의 요청 엔드포인트를 제공합니다:
| 엔드포인트 | 추천 용도 |
|---|---|
POST /auto/ |
스마트 페치. URL을 전달하면 FourA가 작동 가능한 가장 저렴한 경로(다이렉트, 로테이팅 proxy 또는 브라우저)를 선택하고 호스트별 성공 사례를 기억합니다. |
POST /single/ |
빠른 HTTP 요청, 정적 페이지, API |
POST /proxy/ |
자동 proxy 로테이션, 선택적 대상 확인 가능 국가 범위 지정을 지원하는 보호된 사이트 |
POST /browser/ |
JavaScript로 렌더링된 페이지, SPA |
GET /profiles |
single 및 proxy을 위한 브라우저 프로필 카탈로그. 퍼블릭, API 키 불필요. |
각각을 언제 선택해야 하는지에 대한 자세한 설명은 엔드포인트 선택하기 및 스마트 페치 가이드를 참조하십시오.
대상 URL 제한
프라이빗, 루프백 또는 예약된 IP 범위(RFC 5735, RFC 6598, IPv6 예약 블록)로 해석되는 대상은 요청이 FourA를 떠나기 전에 400 오류와 함께 거부됩니다. 퍼블릭 호스트 이름과 IP만 전달됩니다.
{ "error": "Target <ip> resolves to a private/reserved IP" }
스마트 Fetch(자동)
POST /api/auto/
URL과 선택적 validate 규칙을 전달합니다. FourA는 비용을 인식하는 단계(저렴한 직접 프로브, 회전 proxy, 전체 브라우저)를 거치며 규칙이 허용하는 response를 반환하는 첫 번째 단계에서 중지합니다. 동일한 호스트에 반복해서 호출할 경우 웜(warm) 세션이 대신 재생되므로 두 번째 호출은 저렴합니다.
재시도 횟수, 풀 크기 또는 proxy 수를 조정할 필요가 없습니다. FourA가 호스트별로 이를 학습합니다.
Request 본문
| 매개변수 | 유형 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
url |
string | 예 | - | 대상 URL |
method |
string | 아니요 | "GET" |
HTTP 메서드 |
headers |
[string, string][] | 아니요 | - | [이름, 값] 쌍 형태의 사용자 지정 header |
data |
any | 아니요 | - | GET이 아닌 request를 위한 Request 본문 |
validate |
object | 아니요 | - | 성공 기준이며 단일 Request의 validate와 형태가 동일합니다(아래 참조). 챌린지 페이지와 콘텐츠를 구별할 수 있도록 실제 페이지의 형태를 auto에 알려줍니다. |
returnSession |
boolean | 아니요 | true |
/api/single/ 또는 /api/browser/을 통해 재생할 수 있도록 성공한 세션(proxy, cookies, userAgent)을 response에 포함합니다. |
forceProxy |
boolean | 아니요 | true |
항상 회전 proxy를 통해 라우팅합니다. 대상이 허용하는 경우 더 저렴한 직접 경로를 허용하려면 false를 설정합니다(일부 방어는 proxy 트래픽에 더 엄격함). |
timeout_ms |
integer | 아니요 | 120000 |
전체 호출에 대한 총 시간 예산(밀리초)입니다. 모든 하위 시도는 이 예산 내에서 실행됩니다. 최소 5000, 최대 180000. |
ignoreProxies |
string[] | 아니요 | - | 모든 하위 시도에서 피해야 할 proxy ID입니다. 이전 /api/auto/ 또는 /api/proxy/ response에서 반환된 ID를 사용합니다. |
followRedirects |
integer | 아니요 | 5 |
저렴한 단계에서 따를 최대 리디렉션 수입니다. 비활성화하려면 0를 설정합니다. 최대 20. |
Response
{
"status": 200,
"data": "<!doctype html>...",
"headers": [{"content-type": "text/html"}],
"meta": {
"rung": "cache",
"solved": false,
"attempts": 1,
"credits": 2
},
"session": {
"proxy": "A1B2C3",
"cookies": [{"name": "session", "value": "abc", "domain": "example.com"}],
"userAgent": "Mozilla/5.0..."
}
}
| 필드 | 유형 | 설명 |
|---|---|---|
status |
number | 대상의 HTTP 상태입니다. |
data |
string or object | 응답 본문입니다. |
headers |
array or object | 대상 응답 header입니다. Single 및 proxy rung은 홉별 header 객체의 배열을 반환하고, browser rung은 평면 객체를 반환합니다. |
meta.rung |
string | 응답을 전달한 래더 rung입니다. 다음 중 하나입니다: probe(저렴한 직접 request), proxy(순환 proxy), browser(전체 브라우저 렌더링), cache(웜 세션 재생) 또는 fail(허용된 응답을 생성한 rung이 없음). |
meta.solved |
boolean | 이 호출 중에 봇 챌린지가 해결되었는지 여부입니다. |
meta.attempts |
number | 성공 전 수행된 하위 시도 횟수입니다. |
meta.credits |
number | 이 호출에 사용된 총 크레딧입니다. X-FourA-Credits과 일치합니다. |
session.proxy |
string | 응답을 전달한 proxy의 인코딩된 ID입니다. Single 또는 Browser request에서 재사용할 수 있습니다. returnSession가 true일 때 나타납니다. |
session.cookies |
array | 성공한 시도의 cookie입니다. returnSession이 true일 때 나타납니다. |
session.userAgent |
string | 성공한 시도에 사용된 User-Agent입니다. returnSession이 true일 때 나타납니다. |
error |
string | 호출이 실패한 경우의 오류 메시지입니다. |
예제
curl -X POST https://eu.api.foura.ai/api/auto/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/product/42",
"validate": {"data": {"accept": ["Add to cart"]}}
}'
참고
- Auto는 코디네이터입니다. 내부적으로 Single, Proxy 또는 Browser를 호출하고 각 하위 호출에 API 키를 전달합니다. 각 하위 호출은 Activity Log에 나타나며, 외부
/api/auto/호출은 별도로 청구되는 행을 추가하지 않습니다. - 실제 페이지에만 포함된 하위 문자열과 함께
validate.data.accept를 전달하십시오. 이것이 없으면 Auto는 실제 200 상태와 200 상태로 반환된 챌린지 전면 광고를 구별할 수 없습니다. timeout_ms는 전체 호출을 제한합니다. 보호된 사이트에 대한 첫 콜드 요청은 수십 초가 걸릴 수 있으며, 재사용된 웜 세션은 보통 1초 이내에 완료됩니다.
Single Request
POST /api/single/
실제 브라우저를 구동하지 않고 실제 브라우저와 유사한 네트워크 특성을 가진 HTTP request를 보냅니다. 가장 빠른 endpoint입니다.
Request Body
| 매개변수 | 유형 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
method |
string | 예 | - | HTTP 메서드: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS |
url |
string | 예 | - | 대상 URL. URL 내 어디서든 {ts}를 사용하여 캐시 무효화를 위한 현재 타임스탬프를 삽입할 수 있습니다. |
headers |
[string, string][] | 아니요 | - | [이름, 값] 쌍으로 구성된 사용자 정의 header |
unblocker |
boolean | 아니요 | true |
실제 브라우저 header(User-Agent, Sec-Ch-Ua, Sec-Fetch-*, Accept-Encoding)를 전송합니다. 기본적으로 켜져 있습니다. 일반 클라이언트 서명을 보내려면 false를 설정하세요. |
timeout_ms |
number | 아니요 | 15000 | 전체 시간 초과(ms) (최대: 120000) |
connect_timeout_ms |
number | 아니요 | 5000 | 연결 시간 초과(ms) |
accept_timeout_ms |
number | 아니요 | 5000 | 수락 시간 초과(ms) (연결 수락을 대기하는 시간) |
server_response_timeout_ms |
number | 아니요 | 15000 | 서버 response 시간 초과(ms) (첫 바이트를 대기하는 시간) |
dns_cache_timeout_sec |
number | 아니요 | 120 | DNS 캐시 TTL(초) (최대: 240) |
followRedirects |
number | 아니요 | disabled | 따라갈 최대 리디렉션 수(0-20). 비활성화하려면 생략하세요. |
tryJsonData |
boolean | 아니요 | false | 가능할 경우 response body를 JSON으로 파싱 |
returnBuffer |
boolean | 아니요 | false | 디코딩된 문자열 대신 원시 버퍼 반환 |
data |
any | 아니요 | - | Request body (문자열 또는 객체, JSON으로 자동 직렬화됨) |
proxy |
string | 아니요 | - | 동일한 출구를 고정하기 위한 이전 response의 proxy ID입니다. 불투명 문자열을 그대로 전달하세요. 원시 proxy 주소는 400 Invalid proxy format과 함께 거부됩니다. |
browser |
string | 아니요 | Chrome | 제시할 브라우저: Chrome, Edge, Safari, Firefox, 또는 Tor. 브라우저 프로필을 참조하세요. |
os |
string | 아니요 | - | 제시할 운영체제: Windows, macOS, Android, 또는 iOS. 제품군 이름은 해당 버전을 모두 허용합니다. |
version |
string | 아니요 | newest | 카탈로그에 나열된 대로 제시할 브라우저 버전입니다. 여러 개가 일치할 경우 가장 최신 버전이 적용됩니다. |
profile |
string | 아니요 | - | 위의 세 필드 대신 GET /api/profiles의 정확한 프로필 ID입니다. |
validate |
object | 아니요 | - | Response 유효성 검사 규칙 (아래 참조) |
브라우저 프로필
기본적으로 request는 최신 Google Chrome을 제시합니다. 일부 대상은 특정 브라우저를 허용하고 다른 브라우저는 거부하므로, browser, os, version는 측정된 프로필의 카탈로그를 좁히고, profile은 ID로 하나를 선택합니다.
{
"method": "GET",
"url": "https://example.com",
"browser": "Firefox",
"os": "Windows"
}
규칙:
- 선택하려면
unblocker이 필요합니다(기본값 켜짐). unblocker가 꺼져 있으면 브라우저 header가 전송되지 않으므로 request가 불완전하게 적용되는 대신 거부됩니다. - 여러 프로필이 일치할 경우 가장 최신 버전이 우선합니다.
- 카탈로그에서 제공할 수 없는 조합은 사용 가능한 항목을 명시하는 오류를 반환합니다. request는 다른 브라우저로 전송되지 않습니다.
POST /proxy/의request객체 내에서도 동일한 4개의 필드를 사용할 수 있습니다.
GET /api/profiles는 전체 카탈로그를 반환하며 API 키가 필요하지 않습니다:
{
"profiles": [
{ "id": "...", "browser": "Chrome", "version": "...", "os": "...", "osFamily": "macOS" }
],
"default": "..."
}
osFamily은 picker를 빌드할 때 필터링할 값이며, os는 표시할 릴리스 이름을 유지합니다.
유효성 검사 규칙
validate 객체를 사용하여 성공 및 실패 조건을 정의할 수 있습니다. fail 조건이 일치하면 request는 실패로 처리됩니다. accept 조건이 설정된 경우, 일치하는 response만 성공으로 처리됩니다.
{
"validate": {
"status": { "accept": [200, 201], "fail": [403, 503] },
"headers": { "accept": {"content-type": "application/json"} },
"data": { "accept": ["product"], "fail": ["captcha", "blocked"] }
}
}
| 필드 | 타입 | 설명 |
|---|---|---|
validate.status.accept |
number[] | 허용할 HTTP 상태 코드 |
validate.status.fail |
number[] | 거부할 HTTP 상태 코드 |
validate.headers.accept |
object | 반드시 포함되어야 하는 Header 키-값 쌍 |
validate.headers.fail |
object | 실패를 유발하는 Header 키-값 쌍 |
validate.data.accept |
string[] | 응답 본문에 반드시 포함되어야 하는 문자열 |
validate.data.fail |
string[] | 실패를 유발하는 응답 본문의 문자열 |
예제
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"method": "GET",
"url": "https://example.com/products",
"timeout_ms": 10000
}'
응답:
{
"status": 200,
"headers": [{"result": {"version": "HTTP/2", "code": 200, "reason": ""}, "content-type": "text/html", "server": "nginx", "set-cookie": ["session=abc", "tracker=xyz"]}],
"data": "<!doctype html>...",
"total_time": 0.342,
"proxy": "A1B2C3"
}
대상이 본문을 가져오는 도중 봇 검사를 실행하면, 응답에 공급업체와 검사 통과 여부를 나타내는 defense 객체도 포함됩니다:
{
"status": 200,
"data": "<!doctype html>...",
"total_time": 3.61,
"defense": {
"vendor": "sgcaptcha",
"solved": true,
"present": ["sgcaptcha"],
"ms": 3412,
"cookie": "_I_=<clearance>"
}
}
| 필드 | 타입 | 설명 |
|---|---|---|
status |
number | 대상의 HTTP 상태 코드 |
headers |
array | 리디렉션 홉당 하나의 객체입니다. 각 객체는 상태 줄과 모든 response header가 포함된 result 필드를 가집니다. 다중 값 header(Set-Cookie, Link, WWW-Authenticate)는 문자열 배열로 반환됩니다. |
data |
string/object | Response 본문 (tryJsonData이 true인 경우 JSON) |
total_time |
number | 총 request 시간(초) |
proxy |
string | request가 통과한 proxy의 인코딩된 ID입니다(request에 proxy이 제공된 경우에만 해당). 후속 호출에서 이를 재사용하여 동일한 출구를 고정합니다. |
defense |
object | 대상이 이 request에 대해 봇 검사를 실행한 경우에만 존재합니다. defense.solved는 검사 통과 여부를 나타냅니다. 모든 필드와 전체 공급업체 목록은 Anti-Bot Defenses를 참조하십시오. |
error |
string | request 실패 시 에러 메시지 |
Proxy Request
POST /api/proxy/
실패 시 자동 재시도와 함께 교체되는 proxy를 통해 request를 라우팅합니다. 선택적으로 대상에 표시되는 출구 국가 집합으로 선택 범위를 지정합니다.
Request 본문
| 매개변수 | 타입 | 필수 | 기본값 | 설명 |
|---|---|---|---|---|
request |
object | 예 | - | 단일 request 본문(위의 단일 Request와 동일한 필드) |
timeout_ms |
number | 아니요 | 45000 | 모든 시도에 대한 전체 시간 제한(ms) (최대: 120000) |
maxTries |
number | 아니요 | 5 | 최대 proxy 교체 시도 횟수(최대: 90) |
ignoreProxies |
string[] | 아니요 | - | 교체에서 제외할 proxy ID(이전 response에서 반환된 ID 사용) |
exitCountries |
string[] | 아니요 | - | 대상에 표시되는 2자리 국가 코드의 엄격한 허용 목록입니다(예: ["CZ", "GB"]). 값은 공백이 제거되고 대문자로 변환되며 중복이 제거됩니다. 알 수 없는 출구가 있는 proxy는 제외되며 request는 요청하지 않은 국가로 대체되지 않습니다. |
exitCountries 범위 지정
선택은 일반적으로 약 10분 내에 새로 고쳐지는, 사용 가능한 최신 대상 표시 국가 메타데이터를 사용합니다. request 중의 실시간 지리적 위치 조회가 아닙니다. proxy 호스트 주소에서 서비스 제공 국가를 유추하지 마십시오.
현재 풀에 요청된 국가와 일치하는 항목이 없는 경우, response는 에러 봉투와 함께 HTTP 200을 반환합니다.
{
"error": "No eligible proxy found for exit countries: CZ, GB",
"code": "no_eligible_proxy",
"details": { "exitCountries": ["CZ", "GB"] },
"total": 0.084
}
요청된 scope를 유지하고 나중에 다시 시도하십시오. 워크플로우의 국가 요구사항이 명시적으로 변경될 때만 이를 변경하거나 확장하십시오.
예시
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 3,
"exitCountries": ["CZ", "GB"],
"request": {
"method": "GET",
"url": "https://example.com/prices"
}
}'
응답:
{
"status": 200,
"headers": [{"result": {"code": 200}, "content-type": "text/html", "set-cookie": ["a=1", "b=2"]}],
"data": "<!doctype html>...",
"total_time": 1.204,
"proxy": "A1B2C3",
"exitCountry": "CZ",
"total": 2.341
}
| 필드 | 타입 | 설명 |
|---|---|---|
proxy |
string | 사용된 proxy의 인코딩된 식별자입니다. Single 또는 Browser request에서 이를 proxy 필드로 전달하여 재사용하거나, ignoreProxies을 통해 다음 Proxy request에서 건너뛰십시오. |
exitCountry |
string | request를 처리한 proxy의 두 자리 타겟 표시 국가 코드입니다. request가 exitCountries를 설정한 경우에만 존재합니다. response를 신뢰하기 전에 요청한 코드 중 하나인지 항상 확인하십시오. |
total |
number | 외부 실제 소요 시간(초, float)입니다. proxy 선택, 재시도 및 성공한 시도를 포함합니다. total_time은 내부 request에만 해당합니다. total은 항상 total_time 이상입니다. |
error |
string | request 실패 시 나타나는 에러 메시지입니다. 범위 누락 시 code은 no_eligible_proxy이며 details.exitCountries은 정규화된 범위를 반환합니다. |
모든 Single Request response 필드도 포함되며, 그 중 defense가 있습니다. 봇 검사를 만난 proxy 시도는 Single과 동일한 방식으로 이를 보고합니다.
Browser Request
POST /api/browser/
Chrome 브라우저 인스턴스에서 URL을 엽니다. 페이지가 로드되고 JavaScript가 실행되며 완전히 렌더링된 HTML과 cookie 저장소를 얻습니다.
Request Body
| 파라미터 | 타입 | 필수 여부 | 기본값 | 설명 |
|---|---|---|---|---|
url |
string | 예 | - | 대상 URL |
headers |
object | 아니요 | - | 키-값 쌍 형태의 사용자 정의 header |
cookies |
array | 아니요 | - | 설정할 cookie: [{name, value, domain?}] |
userAgent |
string | 아니요 | - | 사용자 정의 User-Agent 문자열 |
unblocker |
boolean | 아니요 | true |
페이지 로드 중 일반적인 봇 챌린지(Cloudflare 통과, 유사한 게이트)를 자동으로 해결합니다. 기본적으로 켜져 있습니다. 챌린지 페이지를 포함하여 페이지가 반환하는 내용을 해결하지 않고 렌더링하려면 false을 설정하십시오. |
proxy |
string | 아니요 | - | 동일한 출구를 고정하기 위한 이전 response의 Proxy ID입니다. 불투명한 문자열을 있는 그대로 다시 전달하십시오. 원시 proxy 주소는 400 Invalid proxy format와 함께 거부됩니다. |
timeout_ms |
number | 아니요 | 30000 | 밀리초 단위의 페이지 로드 시간 초과(최대: 120000) |
checkStatus |
number | 아니요 | - | 예상되는 HTTP 상태(다를 경우 request 실패) |
checkText |
string | 아니요 | - | 렌더링된 페이지에 나타나야 하는 텍스트 |
예시
curl -X POST https://eu.api.foura.ai/api/browser/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/spa-app",
"timeout_ms": 15000,
"checkText": "product-list"
}'
응답:
{
"status": 200,
"headers": {"content-type": "text/html"},
"body": "<!doctype html>...",
"cookies": [{"name": "session", "value": "abc123", "domain": "example.com", "path": "/", "expires": 1735689600, "httpOnly": true, "secure": true, "sameSite": "Lax"}],
"userAgent": "Mozilla/5.0...",
"defenseSolved": true,
"defenses": {"present": ["cloudflare"], "cleared": ["cloudflare"]},
"proxy": "A1B2C3"
}
| 필드 | 유형 | 설명 |
|---|---|---|
status |
number | 대상의 HTTP 상태 코드 |
headers |
object | Response 헤더 |
body |
string 또는 object | 완전히 렌더링된 페이지 콘텐츠. content-type이 HTML인 경우 문자열 HTML; 페이지가 JSON을 반환하고 자동 파싱된 경우 객체입니다. |
cookies |
array | 페이지의 전체 cookie 객체. 각 cookie에는 name, value, domain, path, expires, httpOnly, secure, sameSite 및 기타 cookie 속성이 포함됩니다. |
userAgent |
string | 사용된 브라우저 User-Agent |
defenseSolved |
boolean | 봇 방어 시스템이 작동하고 이 호출에서 실제로 해결된 경우 true. 그렇지 않으면 존재하지 않습니다. 크레딧 15개 또는 30개 비용을 결정합니다. |
defenses |
object | present은(는) 페이지 로드 중 인식된 모든 공급업체를 나열하고, cleared은(는) 최종 페이지가 해결한 공급업체를 나열합니다. 공급업체는 present에 나타나지만 cleared에는 나타나지 않을 수 있습니다. 안티 봇 방어를 참조하십시오. |
proxy |
string | 요청이 통과한 proxy의 인코딩된 ID(요청에 proxy이(가) 제공된 경우에만 해당). 동일한 출구를 유지하려면 후속 호출에서 재사용하십시오. |
error |
string | 요청이 실패한 경우 오류 메시지 |
HTTP 상태 코드
| 코드 | 의미 |
|---|---|
| 200 | 요청 완료(대상 response는 내부 status 확인) |
| 400 | 잘못된 request 본문, 매개변수 또는 비공개/예약된 범위의 대상 IP |
| 401 | 누락되거나 잘못된 API 키 |
| 429 | rate limit 초과 |
| 500 | 내부 서버 오류 |
| 502 | Upstream unavailable. FourA가 엔진에 도달했지만 응답을 사용할 수 없습니다. 다시 시도하십시오. |
| 503 | 서비스가 일시적으로 비활성화되거나 용량이 가득 참, 또는 엔진이 다시 시작되는 동안 Backend service unavailable |
| 504 | Upstream timeout. 엔진이 이 요청의 시간 예산 내에 완료되지 않았습니다. timeout_ms을(를) 높이거나 다시 시도하십시오. |
다음 단계
- 스마트 페치(자동): FourA가 경로를 선택하도록 해야 할 때
- 올바른 Endpoint 선택: 단일, 프록시 또는 브라우저를 수동으로 선택해야 할 때
- 인증: API 키 관리
- 오류 처리: 오류를 원활하게 처리
- 안티 봇 방어:
defense필드를 읽고 해결 방법을 다시 실행 - Rate Limits: 요청 제한 이해
- 빠른 시작: 30초 안에 완료하는 첫 번째 요청