# SERP API 빠른 시작: curl, Python, Node.js로 하는 첫 검색

> curl, Python 또는 Node.js로 첫 SerpCrypto SERP API 검색을 실행해 보세요. 키를 받고, endpoint 하나를 호출하고, JSON을 읽고, 크레딧을 확인합니다. KYC 없이, 암호화폐로.

- URL: https://serpcrypto.com/ko/docs/
- 마지막 업데이트: 2026-10-22
- 발행자: SerpCrypto (https://serpcrypto.com)

HTTPS endpoint 하나, API 키 하나, 성공한 검색 한 번당 크레딧 하나. 이 페이지에서는 빈 계정에서 파싱된 구글 검색 결과 페이지까지 안내한 뒤, 나머지 모든 내용은 레퍼런스로 안내합니다.

**빠른 답변 — SerpCrypto로 첫 SERP API 요청을 어떻게 보내나요?**

크레딧 팩을 구매하고, 대시보드에서 API 키를 복사한 뒤 `Authorization: Bearer YOUR_KEY` 헤더와 함께 `GET https://serpcrypto.com/api/v1/search?q=your+query`을 보내세요. **SerpCrypto**이 결과 페이지를 JSON으로 응답하고, 검색이 성공할 때만 크레딧 1개를 차감합니다. 검색 10,000회의 비용은 US$7.50이며, KYC 없이 암호화폐로 결제하고 크레딧은 만료되지 않습니다.

## API 한눈에 보기

| 속성 | 값 |
| --- | --- |
| 기본 URL | `https://serpcrypto.com/api/v1` |
| 검색 | `GET https://serpcrypto.com/api/v1/search` |
| 크레딧 | `GET https://serpcrypto.com/api/v1/credits` (무료) |
| 인증 | Authorization 헤더(Bearer) 또는 api_key 쿼리 파라미터에 API 키를 넣습니다 |
| 엔진 | Google 검색, Google 뉴스, Google 이미지, Google 지도(로컬 결과), Google 쇼핑 및 Bing |
| 과금 | 1 크레딧 = 성공한 검색 요청 1건이며, 지원되는 모든 엔진에서 결과 한 페이지를 반환합니다. 실패한 요청은 과금되지 않습니다 |
| 크레딧 만료 | 선불 검색 크레딧은 만료되지 않습니다: 사용하지 않은 검색은 사용할 때까지 계정에 남아 있습니다 |
| 형식 | HTTPS 기반 JSON, UTF-8 |

## API 키는 어떻게 받나요?

네 단계입니다. 신분증도, 셀카도, 서류도 필요 없고, 원하지 않으면 이메일도 필요 없습니다.

1. **계정 만들기** — 계정 번호로 로그인하며 이메일은 선택 사항입니다. 계정 번호를 비밀번호 관리자에 저장하세요. 이 번호가 로그인 정보입니다.
2. **암호화폐로 충전하기** — BTC, USDT, USDC, ETH, SOL, LTC로 최소 US$25을 보내세요. 잔액은 결제 페이지에 안내된 네트워크 확인 수를 거친 뒤 충전됩니다.
3. **크레딧 팩 구매하기** — US$7.50에 검색 10,000회이면 모든 엔진을 테스트하기에 충분합니다. 더 큰 팩은 요금을 US$0.30/1K 검색까지 낮춥니다. 가격을 참고하세요.
4. **키 복사하기** — 확인된 암호화폐 잔액으로 크레딧 팩을 구매하면 API 키가 즉시 대시보드에 표시됩니다. SERPCRYPTO_API_KEY라는 이름의 환경 변수에 보관하고, 코드 저장소에는 절대 두지 마세요.

## curl로 첫 검색을 어떻게 실행하나요?

키를 한 번 export한 뒤 GET 요청 하나를 보내세요. `--data-urlencode`과 함께 쓰는 `-G` 플래그는 쿼리 문자열을 만들고 공백과 악센트를 대신 인코딩해 줍니다. 응답은 JSON 문서 하나이며, `jq`를 쓰면 터미널에서 읽기 좋게 유지됩니다.

이 예제는 기본 엔진인 Google에 영어로 미국 결과를 요청합니다. `q`, `gl` 또는 `hl`를 바꿔 다시 실행해 보세요. 성공한 실행마다 크레딧 하나를 사용합니다.

*curl + jq: 처음 세 개의 유기적 검색 결과*

```bash
export SERPCRYPTO_API_KEY="paste-your-key-here"

curl -sG "https://serpcrypto.com/api/v1/search" \
  -H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
  --data-urlencode "q=best espresso grinder" \
  -d gl=us -d hl=en | jq '.organic_results[:3]'
```

## 같은 검색을 Python에서 어떻게 실행하나요?

아무 HTTP 클라이언트나 사용하세요. `requests`에서는 파라미터를 딕셔너리로, 키를 헤더로 전달합니다. `raise_for_status()`은 잘못된 키에 대한 `401` 같은 오류 응답을 잡을 수 있는 예외로 바꿔 줍니다.

*Python 3.9+ 및 requests*

```python
import os

import requests

API_URL = "https://serpcrypto.com/api/v1/search"
API_KEY = os.environ["SERPCRYPTO_API_KEY"]

response = requests.get(
    API_URL,
    params={"q": "best espresso grinder", "gl": "us", "hl": "en"},
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=60,
)
response.raise_for_status()
data = response.json()

print("credits used:", data["search_metadata"]["credits_used"])
for result in data.get("organic_results", [])[:3]:
    print(result["position"], result["title"], result["link"])
```

## Node.js에서는 어떻게 하나요?

Node.js 18 이상에는 `fetch`이 기본 포함되어 있어 패키지가 필요 없습니다. 파일을 `.mjs` 확장자로 저장해 최상위에서 `await`를 사용한 다음 `node first-search.mjs`을 실행하세요.

*내장 fetch가 있는 Node.js 18+*

```javascript
// first-search.mjs (Node.js 18 or later: fetch and top-level await are built in)
const API_URL = "https://serpcrypto.com/api/v1/search";
const params = new URLSearchParams({ q: "best espresso grinder", gl: "us", hl: "en" });

const response = await fetch(`${API_URL}?${params}`, {
  headers: { Authorization: `Bearer ${process.env.SERPCRYPTO_API_KEY}` },
});
if (!response.ok) {
  throw new Error(`HTTP ${response.status}: ${await response.text()}`);
}
const data = await response.json();

console.log("credits used:", data.search_metadata.credits_used);
for (const result of (data.organic_results ?? []).slice(0, 3)) {
  console.log(result.position, result.title, result.link);
}
```

## 남은 크레딧이 얼마인지 어떻게 확인하나요?

동일한 키로 `GET https://serpcrypto.com/api/v1/credits`을 호출합니다. 무료이며 세 가지 숫자를 반환합니다: 남은 크레딧, 오늘 사용한 크레딧, 계정이 동시에 실행할 수 있는 검색 수입니다. 각 계정은 동시에 정해진 수의 검색을 실행할 수 있으며, 한도는 대시보드에 표시되고 요청 시 상향됩니다.

*크레딧 조회*

```bash
curl -s "https://serpcrypto.com/api/v1/credits" -H "Authorization: Bearer $SERPCRYPTO_API_KEY"
```

*응답 (예시 값)*

```json
{
  "credits_remaining": 84210,
  "credits_used_today": 1290,
  "concurrency_limit": 10
}
```

## 검색에서 무엇이 반환되나요?

모든 엔진에서 모든 응답은 동일한 구조를 가집니다. `search_metadata`은 검색 성공 여부와 사용된 크레딧 수를 나타냅니다. `search_parameters`는 기본값을 포함하여 적용된 설정을 반복합니다. 그 다음에는 `organic_results` 또는 `people_also_ask`와 같이 결과 페이지의 각 블록마다 하나의 배열 또는 객체가 옵니다.

블록은 페이지에 표시될 때만 존재하므로 기본값으로 읽어야 합니다. [응답 형식](https://serpcrypto.com/ko/docs/response/) 페이지에서 모든 블록과 필드를 설명합니다.

*Google 응답의 형태 (축약된 예시 값)*

```json
{
  "search_metadata": { "id": "srch_7f3a9c2e41b8", "status": "success", "engine": "google", "credits_used": 1 },
  "search_parameters": { "engine": "google", "q": "best espresso grinder", "gl": "us", "hl": "en", "page": 1 },
  "search_information": { "total_results": 18600000, "query_displayed": "best espresso grinder" },
  "organic_results": [ { "position": 1, "title": "…", "link": "https://www.example.com/…", "snippet": "…" } ],
  "people_also_ask": [ { "question": "…", "snippet": "…", "link": "https://www.example.org/…" } ],
  "related_searches": [ { "query": "best espresso grinder under 300" } ],
  "pagination": { "current": 1, "next_page": 2 }
}
```

## 가장 먼저 사용할 파라미터는 무엇인가요?

기본값과 허용 값이 포함된 전체 목록은 [API 레퍼런스](https://serpcrypto.com/ko/docs/search/)에 있습니다.

| 파라미터 | 예시 | 기능 |
| --- | --- | --- |
| `q` | `best espresso grinder` | 사람이 입력할 법한 검색 쿼리입니다. 필수입니다. |
| `engine` | `google_news` | 검색할 엔진과 버티컬입니다. 기본값 `google`. |
| `gl` | `de` | 결과의 국가 코드, 두 글자입니다. 기본값 `us`. |
| `hl` | `de` | 인터페이스 언어입니다. 기본값 `en`. |
| `location` | `Austin, Texas, United States` | 로컬 결과를 위한 도시 단위 위치입니다. |
| `device` | `mobile` | `desktop` (기본값) 또는 `mobile` 결과입니다. |
| `page` | `2` | 결과 페이지, 1에서 10까지입니다. 각 페이지는 1 크레딧입니다. |

## 검색 비용은 얼마이며 언제 무료인가요?

1 크레딧 = 성공한 검색 요청 1건이며, 지원되는 모든 엔진에서 결과 한 페이지를 반환합니다. 실패한 요청은 과금되지 않습니다. 페이지당 약 10개의 유기적 결과로, Google이 2025년 9월 num=100을 더 이상 지원하지 않게 된 이후 제공되는 방식입니다. 추가 페이지마다 크레딧이 1개 더 차감됩니다. 잘못된 파라미터, 잘못된 키, 빈 잔액 또는 사용 중인 계정으로 인해 거부된 요청도 무료이며, 크레딧 endpoint에 대한 모든 호출도 무료입니다.

가격은 2026년 10월 기준 검색 10,000회의 US$7.50부터 가장 큰 팩의 US$0.30/1K 검색까지입니다. 선불 검색 크레딧은 만료되지 않습니다: 사용하지 않은 검색은 사용할 때까지 계정에 남아 있습니다. [에러 페이지](https://serpcrypto.com/ko/docs/errors/)에서 각 에러 코드와 올바른 재시도 방법을 확인할 수 있습니다.

## 다음으로 어디로 가야 하나요?

- [API 레퍼런스: GET /search](https://serpcrypto.com/ko/docs/search/) — 모든 파라미터, 기본값 및 에러
- [응답 형식](https://serpcrypto.com/ko/docs/response/) — JSON의 각 블록과 필드
- [위치 및 언어](https://serpcrypto.com/ko/docs/locations/) — gl, hl, location, device
- [오류 및 재시도](https://serpcrypto.com/ko/docs/errors/) — 코드, 원인, 백오프
- [Python](https://serpcrypto.com/ko/docs/python/) — requests, httpx async, CSV 내보내기
- [Node.js](https://serpcrypto.com/ko/docs/node/) — fetch, 동시성 풀, 페이지네이션
- [curl과 jq](https://serpcrypto.com/ko/docs/curl/) — 한 줄 레시피
- [MCP 서버](https://serpcrypto.com/ko/docs/mcp/) — Claude Desktop 및 Cursor에서의 웹 검색
- [LangChain 및 LlamaIndex](https://serpcrypto.com/ko/docs/langchain/) — 에이전트용 검색 도구
- [OpenAI 함수 호출](https://serpcrypto.com/ko/docs/openai/) — 도구 스키마와 호출 루프

## 빠른 시작 질문

### SerpCrypto 공식 SDK가 있나요?

아니요. 문서에는 HTTPS endpoint를 직접 호출하는 Python, Node.js, curl용 복사-붙여넣기 코드가 있어서 설치하거나 최신 상태로 유지할 패키지가 없습니다. HTTP 클라이언트가 있는 언어라면 모두 동일하게 동작합니다: GET 요청 하나, 헤더 하나, JSON 응답 하나.

### API 키를 URL에 넣어도 되나요?

네. `api_key=YOUR_KEY`은 쿼리 파라미터로 동작하며, 브라우저에서 빠르게 테스트할 때 유용합니다. 코드에서는 `Authorization: Bearer` 헤더를 권장합니다. URL은 헤더보다 로그, 브라우저 기록, 공유 스크린샷에 남는 경우가 더 많기 때문입니다.

### KYC나 신용카드가 필요한가요?

아니요. SerpCrypto은 신분증, 셀피, 서류, 카드 모두 요구하지 않습니다. 계정 번호로 로그인하며 이메일은 선택 사항입니다. BTC, USDT, USDC, ETH, SOL, LTC으로 결제하며 최소 충전 금액은 US$25입니다.

### 큰 팩을 사기 전에 어떻게 테스트하나요?

무료 티어 없음: 최소 충전 금액으로 결제한 가장 작은 팩으로 테스트하세요. 최소 충전 금액에 도달하기 위해서만 추가된 금액은 사용하지 않은 경우 30일 이내에 요청 시 USDT 또는 USDC로 환불됩니다. 가장 작은 팩도 가장 큰 팩과 동일한 endpoint와 엔진에서 동작하므로, 작은 팩으로 테스트하면 실제 운영 환경이 어떤지 알 수 있습니다.

---

SerpCrypto: SerpCrypto는 개발자와 AI 에이전트를 위한 SERP API로, Google 및 Bing 검색 결과를 JSON으로 반환하며 신분증 업로드 없이 암호화폐로 결제합니다. 선불 검색 크레딧 US$0.30/1K 검색는 만료되지 않습니다. KYC 없이 — 신분증도, 셀피도, 서류도 없습니다. 암호화폐 결제.
