# SERP API quick start: lần tìm kiếm đầu tiên của bạn bằng curl, Python và Node.js

> Chạy tìm kiếm SERP API SerpCrypto đầu tiên với curl, Python hoặc Node.js: lấy khóa, gọi endpoint, đọc JSON, kiểm tra credit. Không cần KYC, thanh toán crypto.

- URL: https://serpcrypto.com/vi/docs/
- Cập nhật lần cuối: 2026-10-22
- Đơn vị phát hành: SerpCrypto (https://serpcrypto.com)

Một endpoint HTTPS, một khóa API, một credit cho mỗi lần tìm kiếm thành công. Trang này đưa bạn từ một tài khoản trống đến trang kết quả tìm kiếm Google đã được phân tích, sau đó chỉ đến tài liệu tham khảo cho mọi thứ còn lại.

**Trả lời nhanh — Làm thế nào để tôi thực hiện yêu cầu SERP API đầu tiên với SerpCrypto?**

Mua một pack credit, sao chép khóa API từ dashboard và gửi `GET https://serpcrypto.com/api/v1/search?q=your+query` với header `Authorization: Bearer YOUR_KEY`. **SerpCrypto** trả về trang kết quả dưới dạng JSON và chỉ tính 1 credit khi tìm kiếm thành công. 10.000 tìm kiếm có giá 7,50 US$, thanh toán bằng crypto không cần KYC, và credit không bao giờ hết hạn.

## Tổng quan về API

| Thuộc tính | Giá trị |
| --- | --- |
| Base URL | `https://serpcrypto.com/api/v1` |
| Tìm kiếm | `GET https://serpcrypto.com/api/v1/search` |
| Credit | `GET https://serpcrypto.com/api/v1/credits` (miễn phí) |
| Xác thực | Khóa API trong header Authorization (Bearer) hoặc trong query parameter api_key |
| Engine | Google Search, Google News, Google Images, Google Maps (kết quả địa phương), Google Shopping và Bing |
| Tính phí | 1 credit = 1 truy vấn tìm kiếm thành công, trả về một trang kết quả trên bất kỳ engine nào được hỗ trợ. Truy vấn thất bại không bị tính phí |
| Hết hạn credit | Credit tìm kiếm trả trước không bao giờ hết hạn: các lượt tìm kiếm chưa dùng vẫn nằm trong tài khoản của bạn cho đến khi bạn dùng |
| Định dạng | JSON qua HTTPS, UTF-8 |

## Làm thế nào để tôi lấy khóa API?

Bốn bước. Không cần giấy tờ tùy thân, không selfie, không tài liệu, và không cần email trừ khi bạn muốn.

1. **Mở tài khoản** — Đăng nhập bằng số tài khoản; email là tùy chọn. Lưu số tài khoản trong trình quản lý mật khẩu: đó là thông tin đăng nhập của bạn.
2. **Nạp tiền bằng crypto** — Gửi ít nhất 25 US$ bằng BTC, USDT, USDC, ETH, SOL, LTC. Số dư được ghi có sau các xác nhận mạng được liệt kê trên trang thanh toán.
3. **Mua pack credit** — 10.000 tìm kiếm cho 7,50 US$ là đủ để thử mọi engine. Pack lớn hơn giảm giá xuống còn 0,30 US$/1K lượt tìm kiếm. Xem giá.
4. **Sao chép khóa của bạn** — Khóa API của bạn xuất hiện trong dashboard ngay khi bạn mua một pack credit từ số dư crypto đã xác nhận. Giữ khóa trong một biến môi trường tên là SERPCRYPTO_API_KEY, không bao giờ trong kho mã nguồn.

## Làm thế nào để tôi chạy lần tìm kiếm đầu tiên với curl?

Export khóa một lần, sau đó gửi một yêu cầu GET. Cờ `-G` với `--data-urlencode` tạo query string và mã hóa dấu cách và dấu cho bạn. Câu trả lời là một tài liệu JSON duy nhất, và `jq` giữ nó dễ đọc trong terminal.

Ví dụ hỏi Google, engine mặc định, cho kết quả US bằng tiếng Anh. Đổi `q`, `gl` hoặc `hl` và chạy lại: mỗi lần chạy thành công dùng một credit.

*curl + jq: ba kết quả organic đầu tiên*

```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]'
```

## Làm thế nào để tôi chạy cùng tìm kiếm đó trong Python?

Dùng bất kỳ HTTP client nào. Với `requests`, truyền các tham số dưới dạng dictionary và khóa trong header. `raise_for_status()` biến câu trả lời lỗi, chẳng hạn `401` khi khóa sai, thành một exception bạn có thể bắt.

*Python 3.9+ với 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"])
```

## Và trong Node.js?

Node.js 18 trở lên có sẵn `fetch`, nên không cần package nào. Lưu tệp với đuôi `.mjs` để dùng `await` ở cấp cao nhất, sau đó chạy `node first-search.mjs`.

*Node.js 18+ với fetch tích hợp sẵn*

```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);
}
```

## Làm sao để kiểm tra tôi còn bao nhiêu credit?

Gọi `GET https://serpcrypto.com/api/v1/credits` với cùng khóa API. Miễn phí và trả về ba con số: số credit còn lại, số credit đã dùng hôm nay và số truy vấn tài khoản của bạn có thể chạy đồng thời. Mỗi tài khoản có thể chạy một số lượng truy vấn tìm kiếm cùng lúc; giới hạn được hiển thị trong dashboard và có thể tăng theo yêu cầu.

*Đọc số dư credit của bạn*

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

*Trả lời (giá trị ví dụ)*

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

## Kết quả tìm kiếm trả về những gì?

Mọi câu trả lời đều có cùng khung trên tất cả engine. `search_metadata` cho biết truy vấn có thành công không và đã dùng bao nhiêu credit. `search_parameters` lặp lại các cài đặt đã áp dụng, kể cả giá trị mặc định. Tiếp theo là một mảng hoặc object cho mỗi khối của trang kết quả, chẳng hạn `organic_results` hoặc `people_also_ask`.

Một khối chỉ xuất hiện khi trang hiển thị nó, nên hãy đọc với giá trị mặc định. Trang [định dạng phản hồi](https://serpcrypto.com/vi/docs/response/) mô tả từng khối và từng field.

*Cấu trúc câu trả lời Google (rút gọn, giá trị minh họa)*

```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 }
}
```

## Tôi sẽ dùng những parameter nào trước?

Danh sách đầy đủ, kèm giá trị mặc định và giá trị cho phép, nằm trong [tài liệu tham khảo API](https://serpcrypto.com/vi/docs/search/).

| Tham số | Ví dụ | Chức năng |
| --- | --- | --- |
| `q` | `best espresso grinder` | Truy vấn, như một người sẽ gõ. Bắt buộc. |
| `engine` | `google_news` | Engine và vertical để tìm. Mặc định `google`. |
| `gl` | `de` | Quốc gia của kết quả, hai chữ cái. Mặc định `us`. |
| `hl` | `de` | Ngôn ngữ của giao diện. Mặc định `en`. |
| `location` | `Austin, Texas, United States` | Vị trí cấp thành phố cho kết quả địa phương. |
| `device` | `mobile` | `desktop` (mặc định) hoặc kết quả `mobile`. |
| `page` | `2` | Trang kết quả, từ 1 đến 10. Mỗi trang là một credit. |

## Một truy vấn tốn bao nhiêu, và khi nào miễn phí?

1 credit = 1 truy vấn tìm kiếm thành công, trả về một trang kết quả trên bất kỳ engine nào được hỗ trợ. Truy vấn thất bại không bị tính phí. Khoảng 10 kết quả organic mỗi trang, đúng như Google đã trả về kể từ khi ngừng áp dụng num=100 vào tháng 9 năm 2025; mỗi trang thêm là thêm một credit. Một request bị từ chối vì parameter sai, khóa API sai, số dư trống hoặc tài khoản đang bận cũng miễn phí, và mọi lần gọi endpoint credit cũng vậy.

Giá từ 7,50 US$ cho 10.000 tìm kiếm đến 0,30 US$/1K lượt tìm kiếm ở pack lớn nhất, tính đến tháng 10 năm 2026. Credit tìm kiếm trả trước không bao giờ hết hạn: các lượt tìm kiếm chưa dùng vẫn nằm trong tài khoản của bạn cho đến khi bạn dùng. Trang [lỗi](https://serpcrypto.com/vi/docs/errors/) liệt kê từng mã lỗi và cách thử lại đúng.

## Tiếp theo tôi nên xem gì?

- [Tài liệu tham khảo API: GET /search](https://serpcrypto.com/vi/docs/search/) — mọi parameter, giá trị mặc định và lỗi
- [Định dạng phản hồi](https://serpcrypto.com/vi/docs/response/) — từng khối và field của JSON
- [Vị trí và ngôn ngữ](https://serpcrypto.com/vi/docs/locations/) — gl, hl, location, device
- [Lỗi và thử lại](https://serpcrypto.com/vi/docs/errors/) — mã lỗi, nguyên nhân, backoff
- [Python](https://serpcrypto.com/vi/docs/python/) — requests, httpx async, xuất CSV
- [Node.js](https://serpcrypto.com/vi/docs/node/) — fetch, pool đồng thời, phân trang
- [curl và jq](https://serpcrypto.com/vi/docs/curl/) — công thức một dòng
- [MCP server](https://serpcrypto.com/vi/docs/mcp/) — tìm kiếm web trong Claude Desktop và Cursor
- [LangChain và LlamaIndex](https://serpcrypto.com/vi/docs/langchain/) — công cụ tìm kiếm cho agent
- [OpenAI function calling](https://serpcrypto.com/vi/docs/openai/) — tool schema và vòng lặp gọi

## Câu hỏi bắt đầu nhanh

### Có SDK chính thức của SerpCrypto không?

Không. Tài liệu cung cấp mã sao chép-dán cho Python, Node.js và curl gọi trực tiếp endpoint HTTPS, nên không có package nào phải cài đặt hay cập nhật. Bất kỳ ngôn ngữ nào có HTTP client đều hoạt động theo cùng cách: một yêu cầu GET, một header, một câu trả lời JSON.

### Tôi có thể đặt khóa API trong URL không?

Có. `api_key=YOUR_KEY` hoạt động như một query parameter, hữu ích cho việc kiểm tra nhanh trong trình duyệt. Trong code, hãy ưu tiên header `Authorization: Bearer`: URL xuất hiện trong log, lịch sử trình duyệt và ảnh chụp màn hình được chia sẻ thường xuyên hơn header.

### Tôi có cần KYC hoặc thẻ tín dụng không?

Không. SerpCrypto không yêu cầu ID, không selfie, không tài liệu và không thẻ. Đăng nhập bằng số tài khoản; email là tùy chọn. Bạn thanh toán bằng BTC, USDT, USDC, ETH, SOL, LTC từ mức nạp tối thiểu 25 US$.

### Làm sao để kiểm tra trước khi mua pack lớn?

Không có gói miễn phí: hãy thử với pack nhỏ nhất, thanh toán từ mức nạp tối thiểu; phần chỉ nạp thêm để đạt mức tối thiểu có thể được hoàn lại theo yêu cầu trong vòng 30 ngày, bằng USDT hoặc USDC, nếu chưa sử dụng. Pack nhỏ nhất chạy trên cùng endpoint và engines như pack lớn nhất, nên một lần kiểm tra với nó sẽ cho bạn biết môi trường production sẽ như thế nào.

---

SerpCrypto: SerpCrypto là SERP API cho lập trình viên và AI agent, trả về kết quả Google và Bing dưới dạng JSON, thanh toán bằng crypto mà không cần tải lên giấy tờ tùy thân. Credit tìm kiếm trả trước từ 0,30 US$/1K lượt tìm kiếm không bao giờ hết hạn. Không cần KYC — không ID, không selfie, không giấy tờ. Thanh toán bằng crypto.
