빠른 답변
SerpCrypto SERP API 응답에는 무엇이 들어 있나요?
각 SerpCrypto 응답은 하나의 JSON 객체입니다: search_metadata(status, engine, 사용된 크레딧), search_parameters(적용된 설정), search_information, 그다음 organic_results, ai_overview, people_also_ask, local_results 같은 결과 페이지의 각 부분별 블록입니다. 없는 부분은 그냥 빠집니다. 1페이지에 크레딧 1, US$0.30/1K 검색부터; 암호화폐로 결제하며 KYC 없이 이용할 수 있습니다.
전체 Google 응답은 어떻게 생겼나요?
아래 예제는 영국에서 standing desk을 검색한 것으로, 배열당 항목 하나로 줄였습니다. 실제 응답에는 약 10개의 organic 결과와 해당 검색 쿼리, 위치, 기기에 대해 페이지에 표시된 다른 모든 블록이 포함됩니다.
{
"search_metadata": {
"id": "srch_2b81d0c6fa47",
"status": "success",
"engine": "google",
"created_at": "2026-10-22T10:02:31Z",
"credits_used": 1
},
"search_parameters": {
"engine": "google",
"q": "standing desk",
"gl": "gb",
"hl": "en",
"google_domain": "google.co.uk",
"device": "desktop",
"page": 1
},
"search_information": { "total_results": 52400000, "query_displayed": "standing desk" },
"ai_overview": {
"text": "A standing desk lets you work while standing or sitting…",
"references": [
{ "index": 1, "title": "How to choose a standing desk", "link": "https://www.example.co.uk/guide", "source": "Example Guide" }
]
},
"ads": [
{ "position": 1, "block": "top", "title": "Electric Standing Desks", "link": "https://shop.example.com/desks", "displayed_link": "shop.example.com", "description": "Free delivery on…" }
],
"organic_results": [
{
"position": 1,
"title": "Best standing desks 2026, tested",
"link": "https://www.example.co.uk/best-standing-desks",
"displayed_link": "www.example.co.uk › reviews",
"snippet": "We tested 14 electric and manual desks…",
"date": "12 Oct 2026",
"sitelinks": [ { "title": "Budget picks", "link": "https://www.example.co.uk/best-standing-desks#budget" } ]
}
],
"people_also_ask": [
{ "question": "Is it healthy to stand all day at a desk?", "snippet": "…", "title": "Standing at work", "link": "https://www.example.org/standing" }
],
"shopping_results": [
{ "position": 1, "title": "Example Desk Pro 140 cm", "price": "£299.00", "source": "Example Store", "link": "https://shop.example.com/desk-pro" }
],
"related_searches": [ { "query": "standing desk electric" }, { "query": "standing desk converter" } ],
"pagination": { "current": 1, "next_page": 2 }
}응답에서 일부 블록이 빠진 이유는 무엇인가요?
결과 페이지에 표시되지 않았기 때문입니다. Google은 검색 쿼리, 장소, 기기에 따라 광고, AI Overview, local pack, top stories를 표시할지 결정합니다. SerpCrypto은 페이지에 표시된 것을 반환하고 나머지는 빈 placeholder를 보내지 않고 빠뜨립니다.
아래 Python 코드처럼 모든 블록을 기본값과 함께 읽으세요. 같은 규칙이 블록 안에도 적용됩니다: date이나 sitelinks 같은 optional field는 해당 필드가 있는 결과에만 나타납니다.
data = response.json()
# A block is present only when the results page shows it: read with a default.
overview = data.get("ai_overview") or {}
organic = data.get("organic_results", [])
questions = [item["question"] for item in data.get("people_also_ask", [])]
if overview:
print("AI Overview sources:", [ref["link"] for ref in overview.get("references", [])])
print(len(organic), "organic results,", len(questions), "questions")search_metadata에는 무엇이 들어 있나요?
| 필드 | 유형 | 설명 |
|---|---|---|
id | string | 검색의 식별자입니다. 지원팀에 문의할 때 인용하세요. |
status | string | 200 응답의 success. |
engine | string | 검색을 실행한 엔진입니다. |
created_at | string | 검색 시각으로, UTC 기준 ISO 8601 형식입니다. |
credits_used | integer | 이 검색에 사용된 크레딧: 성공 시 1. |
search_parameters와 search_information은 무엇인가요?
결과와 함께 search_parameters을 저장하세요. 어떤 국가, 언어, 장소, 기기에서 나온 순위인지 정확히 기록됩니다.
| 필드 | 유형 | 설명 |
|---|---|---|
search_parameters | object | 적용된 파라미터에 기본값을 채운 결과: engine, q, gl, hl, location, google_domain, device, page 및 전송하신 나머지 값입니다. |
search_information.total_results | integer | 엔진이 표시한 결과 개수입니다. 엔진이 개수를 표시한 경우에만 제공됩니다. 정확한 수치가 아닌 추정치입니다. |
search_information.query_displayed | string | 결과 페이지에 표시된 그대로의 검색 쿼리입니다. |
organic_results에는 어떤 필드가 있나요?
자연 검색 결과는 광고가 아닌 웹 결과입니다. Bing에서는 organic_results의 형태가 같습니다.
| 필드 | 유형 | 설명 |
|---|---|---|
position | integer | 이 페이지의 이 블록에서 결과 순서이며, 1부터 시작합니다. |
title | string | 파란 링크 제목입니다. |
link | string | 결과의 URL입니다. |
displayed_link | string | 제목 아래에 표시된 URL 또는 breadcrumb입니다. |
snippet | string | 제목 아래에 표시된 텍스트입니다. |
date | string | 스니펫 옆에 표시된 날짜이며, 페이지에 적힌 그대로입니다. 선택 사항입니다. |
sitelinks | array | 결과 아래에 표시된 추가 링크이며, 각각 title과 link을 가집니다. 선택 사항입니다. |
AI Overview는 어떻게 반환되나요?
ai_overview은 Google이 해당 검색 쿼리와 장소에 대해 AI Overview를 표시할 때만 존재합니다. 많은 검색 쿼리에는 AI Overview가 없습니다.
| 필드 | 유형 | 설명 |
|---|---|---|
ai_overview.text | string | 페이지에 표시된 그대로의 AI Overview 텍스트입니다. |
ai_overview.references[].index | integer | 개요 내 출처의 순서입니다. |
ai_overview.references[].title | string | 인용된 페이지의 제목입니다. |
ai_overview.references[].link | string | 인용된 페이지의 URL입니다. |
ai_overview.references[].source | string | 표시된 그대로의 사이트 이름입니다. |
ads와 people_also_ask에는 무엇이 들어 있나요?
| 필드 | 유형 | 설명 |
|---|---|---|
ads[].position | integer | 해당 블록 내 순서입니다. |
ads[].block | string | 페이지의 top 또는 bottom입니다. |
ads[].title, link, displayed_link | string | 광고의 헤드라인, 랜딩 URL, 표시 URL입니다. |
ads[].description | string | 광고 문구입니다. |
people_also_ask[].question | string | 표시된 그대로의 질문입니다. |
people_also_ask[].snippet | string | 질문을 열었을 때 표시되는 답변 텍스트입니다. |
people_also_ask[].title, link | string | 답변의 출처가 되는 페이지의 제목과 URL입니다. |
그 밖에 어떤 Google 블록이 나타날 수 있나요?
| 블록 | 필드 | 무엇인가요 |
|---|---|---|
local_results | position, title, address, rating, reviews, type | 로컬 팩: 장소 의도가 있는 검색 쿼리에 대해 지도 위에 표시되는 업체입니다. |
knowledge_graph | title, type, description, source.name, source.link | 인물, 장소, 회사, 사물에 대한 지식 패널입니다. |
top_stories | title, link, source, date | 캐러셀 형태로 표시되는 뉴스 기사입니다. |
inline_videos | title, link, source, duration | 웹 검색 결과 안에 표시되는 동영상 결과입니다. |
shopping_results | position, title, price, source, link | 웹 검색 결과 안에 표시되는 상품 목록입니다. |
related_searches | query | 페이지 하단에 제안되는 검색어입니다. |
pagination | current, next_page | 현재 페이지 번호와 다음 페이지(있는 경우)입니다. |
다른 엔진들은 무엇을 반환하나요?
각 버티컬은 같은 프레임을 유지하면서 자체 배열을 추가합니다. Google Maps에서 local_results은 웹 검색의 로컬 팩보다 더 풍부합니다.
engine | 기본 배열 | 필드 |
|---|---|---|
google_news | news_results | position, title, link, source, date, snippet, thumbnail |
google_images | images_results | position, title, original, original_width, original_height, thumbnail, source, link |
google_maps | local_results | position, title, place_id, address, phone, website, rating, reviews, type, hours, gps_coordinates.latitude, gps_coordinates.longitude |
google_shopping | shopping_results | position, title, price, extracted_price, currency, source, link, delivery, rating, reviews |
bing | organic_results, related_searches | 구글 유기적 검색 결과와 같은 필드입니다 |
가격, 평점, 날짜는 어떤 형식으로 표기되나요?
페이지가 텍스트로 쓴 값은 페이지가 사용한 형식을 그대로 유지합니다. price은 £299.00처럼 통화 기호가 붙은 문자열이고, Google Shopping은 extracted_price를 숫자로, currency을 코드로 추가합니다. rating는 숫자, reviews는 정수입니다. date 같은 날짜는 12 Oct 2026이나 3 days ago처럼 페이지에 쓰인 그대로 유지되므로, 타임스탬프가 필요하면 직접 코드에서 파싱하세요.
여러 페이지에 걸친 전체 순위는 어떻게 만드나요?
각 결과와 함께 페이지 번호를 저장하세요. position는 한 페이지 안에서 해당 블록 내의 순서를 알려주고, search_parameters.page은 그 페이지가 몇 번째인지 알려줍니다. 페이지당 약 10개의 유기적 결과로, Google이 2025년 9월 num=100을 더 이상 지원하지 않게 된 이후 제공되는 방식입니다. 추가 페이지마다 크레딧이 1개 더 차감됩니다.
순위 추적을 위해 대부분의 팀은 키워드와 날짜별로 link, position, page, gl, location, device, created_at을 보관합니다. 그러면 순위를 차트로 그리고 지역이나 기기별 변화를 설명하기에 충분합니다. 전체 방법은 순위 추적을 참조하세요.
응답 형식 관련 질문
필드 이름은 안정적인가요?
버전 1 내에서는 그렇습니다. 새 블록이나 필드가 추가될 수 있으니 모르는 키는 무시하세요. 필드를 제거하거나 이름을 바꾸려면 경로에 /api/v2/ 같은 새 버전이 함께 붙습니다.
페이지의 원본 HTML을 받을 수 있나요?
아니요. 버전 1은 파싱된 JSON만 반환합니다. 파싱된 블록은 대부분의 도구가 필요로 하는 것을 담습니다: 검색 결과, 광고, 질문, AI Overview, 로컬 팩, 지식 패널.
total_results이 제가 센 값과 다른 이유는 무엇인가요?
이 값은 엔진이 표시하는 추정치이며, 페이지를 넘겨 실제로 볼 수 있는 결과 개수가 아닙니다. 페이지는 그 숫자보다 훨씬 일찍 끝나므로, 다음 페이지가 있는지는 pagination.next_page으로 확인하세요.
유기적 결과가 없는 응답도 크레딧이 차감되나요?
검색이 성공했다면 네: 빈 페이지도 결과입니다. 오류만 무료입니다. 1 크레딧 = 성공한 검색 요청 1건이며, 지원되는 모든 엔진에서 결과 한 페이지를 반환합니다. 실패한 요청은 과금되지 않습니다.