# GEO/AEO 가시성을 위해 AI 답변 엔진에 쿼리합니다.

**API:** Data API

**Endpoint:** `POST /v1/beta/oxylabs/ai-search`

**Tags:** Oxylabs

source google_search 또는 google_ai_mode와 기타 문서화된 요청 필드를 사용해 동기식 AI 지원 검색을 실행합니다. 이 엔드포인트는 chatgpt, gemini, perplexity를 동기 소스로 허용하지 않습니다.

### 가격 참고

- 과금 기준: 성공한 요청당 고정 원가 기준.
- 참고 요청 추정치: USD 0.00145.
- 참고 고객 배수: 1.45. 정산된 고객 금액에 다시 적용하지 마세요.

참고용 메타데이터일 뿐이며, 계정 견적 또는 보장된 가격 또는 지출 한도가 아닙니다. 리소스 크레딧은 Felo 크레딧이 아닙니다. 최종 청구는 Felo 청구 기록을 따릅니다.

## Base URL

- `https://openapi.felo.ai`

## Authentication

- `FeloBearerAuth` (http bearer, bearer format Felo API Key)
- `FeloApiKey` (apiKey in header `X-API-Key`)

## Request body

Required: **yes**

### application/json

Schema:

```json
{
  "type": "object",
  "description": "Google 답변 엔진용 패스스루 본문입니다. `source`가 엔진을 선택하며, `query`, `render`, `parse`, `geo_location`은 Google 소스가 기대하는 매개변수입니다. 추가 업스트림 매개변수는 그대로 전달됩니다.",
  "additionalProperties": true,
  "properties": {
    "source": {
      "type": "string",
      "enum": [
        "google_search",
        "google_ai_mode"
      ],
      "description": "쿼리할 Google AI 답변 엔진입니다. `google_search`는 Google AI Overviews를, `google_ai_mode`는 Google AI Mode를 반환합니다. ChatGPT/Gemini/Perplexity에는 대신 비동기 엔드포인트 `post_oxylabs_llm`을 사용하세요.",
      "example": "google_search"
    },
    "query": {
      "type": "string",
      "description": "검색 쿼리입니다. `google_search` 및 `google_ai_mode`에 필요합니다.",
      "example": "best noise cancelling headphones 2026"
    },
    "render": {
      "type": "string",
      "enum": [
        "html"
      ],
      "description": "`google_search` 및 `google_ai_mode`의 경우 파싱 전에 페이지를 렌더링하려면 \"html\"로 설정하세요.",
      "example": "html"
    },
    "parse": {
      "type": "boolean",
      "description": "원시 출력 대신 구조화된 파싱 결과를 반환합니다. 모든 소스에 권장됩니다.",
      "example": true
    },
    "geo_location": {
      "type": "string",
      "description": "쿼리의 국가 수준 지리적 위치입니다(예: \"United States\").",
      "example": "United States"
    }
  },
  "required": [
    "source"
  ]
}
```

Example:

```json
{
  "source": "google_ai_mode",
  "query": "best noise cancelling headphones 2026",
  "parse": true,
  "render": "html",
  "geo_location": "United States"
}
```

## Responses

### 200 — 쿼리가 성공적으로 완료되었습니다. `results[]`에는 쿼리당 결과 하나가 들어 있습니다. `content` 내부의 파싱된 형태는 소스에 따라 다릅니다(속성 설명 참조). 아래 예시는 `google_search`(Google AI 개요) 형태입니다.

Headers:
- `X-Request-Id` (string) — Felo 지원팀에 문의할 때 포함할 요청 식별자입니다.

**application/json**

Schema: object

```json
{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "description": "쿼리당 하나의 항목입니다. Realtime 단일 쿼리는 과금 단위인 결과 하나를 정확히 반환합니다.",
      "items": {
        "type": "object",
        "properties": {
          "content": {
            "type": "object",
            "description": "파싱된 답변 페이로드입니다. 구조는 Google 소스에 따라 다릅니다:\n- `google_search` → `content.results.ai_overviews[]`; `answer_text` 및 `references[]{source, url}`(아래 참조).\n- `google_ai_mode` → `content.citations[]{text, urls[]}`.",
            "properties": {
              "results": {
                "type": "object",
                "description": "Google 유형의 파싱된 결과 컨테이너입니다.",
                "properties": {
                  "ai_overviews": {
                    "type": "array",
                    "description": "쿼리에 대해 반환된 Google AI Overviews입니다.",
                    "items": {
                      "type": "object",
                      "properties": {
                        "answer_text": {
                          "type": "array",
                          "description": "AI가 생성한 답변으로, 인라인 참조를 포함할 수 있는 조각으로 분할됩니다.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "fragments": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "references": {
                                      "type": "array",
                                      "items": {}
                                    }
                                  }
                                }
                              }
                            }
                          }
                        },
                        "references": {
                          "type": "array",
                          "description": "이 개요에 인용된 소스입니다.",
                          "items": {
                            "type": "object",
                            "properties": {
                              "source": {
                                "type": "string"
                              },
                              "url": {
                                "type": "string"
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```

### 400 — 요청을 처리할 수 없습니다. 요청 매개변수를 확인하세요.

### 401 — 유효한 Felo API 키가 필요합니다.

### 402 — 청구 요건이 충족되지 않아 요청을 진행할 수 없습니다.

### 403 — 이 계정에는 이 작업을 수행할 권한이 없습니다.

### 429 — 요청 또는 지출 한도에 도달했습니다.

### 502 — 서비스가 요청을 완료할 수 없습니다.

### 503 — API 또는 청구 서비스를 일시적으로 사용할 수 없습니다.

### 504 — 요청을 처리하는 동안 서비스 시간이 초과되었습니다.

### default — 오류 응답. 업스트림 패스스루 응답은 공급자 형식을 사용할 수 있습니다.

**application/json**

Schema:

```json
{}
```
