# API là gì? Giải thích dễ hiểu cho người làm kinh doanh muốn tự động hoá

URL: https://opcaios.org/blog/api-la-gi
Ngày: 2026-10-22
Cập nhật: 2026-10-22
Tác giả: Lê Quốc Nghĩa
Chuyên mục: Hướng dẫn

API (Application Programming Interface) là "cửa giao tiếp" để hai phần mềm nói chuyện với nhau mà không cần con người ngồi giữa: phần mềm bán hàng gửi đơn sang phần mềm kế toán, ngân hàng báo tiền về cho website, ứng dụng của bạn gọi ChatGPT hay Claude để viết nội dung. Hiểu API là bước đầu để tự động hoá công việc, vì gần như mọi công cụ tự động hoá — n8n, Make, Zapier, AI agent — đều chạy trên API. Bài này giải thích API bằng ngôn ngữ đời thường, kèm ví dụ thật từ chính website opcaios.org.

![Sơ đồ API: ứng dụng gửi yêu cầu, máy chủ trả kết quả JSON](https://opcaios.org/images/blog/api-la-gi/so-do-api.webp)
*Một lần gọi API: ứng dụng gửi yêu cầu kèm khoá, máy chủ kiểm tra rồi trả kết quả. Sơ đồ: OPCAIOS.*

## API là gì?

Hãy hình dung một nhà hàng. Bạn (khách) không vào bếp tự nấu; bạn gọi món qua **người phục vụ**, người phục vụ mang yêu cầu vào bếp và mang món ra. Bạn không cần biết bếp nấu thế nào, chỉ cần gọi đúng món trong thực đơn.

API là người phục vụ đó:

- **Khách** là phần mềm cần dữ liệu hoặc cần làm một việc (ứng dụng của bạn, một quy trình n8n, một AI agent).
- **Bếp** là hệ thống đang giữ dữ liệu hoặc khả năng (ngân hàng, phần mềm bán hàng, mô hình AI).
- **Thực đơn** là tài liệu API: liệt kê những yêu cầu được phép, cần gửi gì và sẽ nhận về gì.

Nhờ API, mỗi phần mềm giữ kín cách làm bên trong, nhưng vẫn mở ra một cửa có quy tắc rõ ràng cho phần mềm khác dùng.

## Một lần gọi API gồm những gì?

Phần lớn API ngày nay là **web API** chạy trên HTTP — cùng giao thức trình duyệt dùng để mở trang web. Một lần gọi gồm:

| Thành phần | Ý nghĩa | Ví dụ |
|---|---|---|
| **Endpoint** | Địa chỉ của "món" bạn gọi | `https://opcaios.org/api/v1/posts` |
| **Method** | Bạn muốn làm gì | `GET` lấy dữ liệu, `POST` tạo mới, `PATCH` sửa, `DELETE` xoá |
| **Header** | Thông tin đi kèm, quan trọng nhất là khoá xác thực | `Authorization: Bearer <khoá>` |
| **Body** | Dữ liệu gửi lên (khi tạo hoặc sửa) | `{"fullName": "Nguyễn Văn A", "phone": "09…"}` |
| **Response** | Kết quả trả về, thường ở dạng JSON, kèm mã trạng thái | `200` thành công, `401` thiếu khoá, `429` gọi quá nhiều |

**JSON** là định dạng dữ liệu dạng "tên: giá trị" mà cả người lẫn máy đều đọc được. Ví dụ khi gọi API của opcaios.org mà không gửi khoá, máy chủ trả về mã `401` cùng nội dung:

```json
{"success": false, "error": "Thiếu token. Tạo token trong Admin → Cài đặt → API token."}
```

### Khoá API (API key, token)

Khoá API giống thẻ ra vào: máy chủ nhìn khoá để biết ai đang gọi và được làm gì. Có khoá chỉ đọc, có khoá được ghi. Ai cầm khoá là có quyền như chủ khoá, nên khoá API phải được giữ như mật khẩu.

### Giới hạn số lần gọi (rate limit)

Hầu hết API giới hạn số lần gọi trong một khoảng thời gian để máy chủ không bị quá tải. Ví dụ API của opcaios.org cho mỗi khoá tối đa 120 lần mỗi phút; vượt quá sẽ nhận mã `429` và phải thử lại sau.

## API khác webhook thế nào?

- **API:** bạn chủ động hỏi — "có đơn hàng mới không?". Hỏi liên tục thì tốn công, hỏi thưa thì chậm.
- **Webhook:** hệ thống kia chủ động báo — "vừa có đơn mới đây". Bạn đưa cho họ một địa chỉ, khi có sự kiện họ gửi dữ liệu tới địa chỉ đó.

Ví dụ thật: khi khách chuyển khoản mua khoá học trên opcaios.org, **SePay** (dịch vụ theo dõi giao dịch ngân hàng) gửi webhook tới website. Website kiểm tra khoá bí mật trong yêu cầu, khớp nội dung chuyển khoản với mã đơn, mở khoá học cho khách và báo tin cho chủ site — không ai phải ngồi soát sao kê. Website trả lời `200` để SePay biết đã nhận, không gửi lại nữa.

## API được dùng ở đâu trong công việc hằng ngày?

- **Thanh toán:** cổng thanh toán và dịch vụ theo dõi chuyển khoản báo đơn đã trả tiền qua webhook.
- **Bán hàng và chăm sóc khách:** form trên website gửi khách tiềm năng vào CRM; CRM gửi tin nhắn qua API của Zalo OA hoặc email.
- **Quảng cáo và báo cáo:** lấy số liệu chi tiêu từ Meta Ads, Google Ads về Google Sheets mỗi sáng.
- **AI:** ứng dụng gọi API của OpenAI, Anthropic, Google để viết, tóm tắt, phân loại. Phần lớn API AI tính tiền theo lượng chữ (token) gửi đi và nhận về.

## Không biết lập trình có dùng được API không?

Được. Các công cụ tự động hoá kéo thả làm phần kỹ thuật cho bạn:

- **[n8n](https://opcaios.org/tien-ich/n8n):** mã nguồn mở, tự cài được trên máy chủ riêng, có node "HTTP Request" để gọi bất kỳ API nào.
- **[Make](https://opcaios.org/tien-ich/make)** và **[Zapier](https://opcaios.org/tien-ich/zapier):** dịch vụ trực tuyến, có sẵn hàng nghìn kết nối dựng sẵn.

Cách làm chung: chọn sự kiện kích hoạt (có form mới, có webhook tới, đến 8 giờ sáng), thêm bước gọi API, dán endpoint và khoá, ghép dữ liệu bằng chuột. Với API chưa có kết nối dựng sẵn, bạn dùng bước "HTTP Request" và đọc tài liệu API để biết endpoint, method, body.

## Ví dụ thật: API của opcaios.org

Website này mở một REST API tại `https://opcaios.org/api/v1` để nối với n8n, Make, Zapier hoặc script riêng. Chủ site tạo khoá trong trang quản trị, chọn quyền chỉ đọc hoặc đọc và ghi. Một số endpoint:

| Method | Endpoint | Làm gì |
|---|---|---|
| `GET` | `/api/v1/posts` | Danh sách bài viết |
| `POST` | `/api/v1/posts` | Tạo bài viết (mặc định là nháp) |
| `GET` | `/api/v1/submissions` | Form khách để lại |
| `POST` | `/api/v1/contacts` | Thêm khách tiềm năng vào CRM |
| `POST` | `/api/v1/links` | Tạo link rút gọn opcaios.org/go/… |

Gọi thử bằng lệnh `curl` (thay khoá bằng khoá thật của bạn):

```bash
curl https://opcaios.org/api/v1/posts?limit=3 \
  -H "Authorization: Bearer opc_api_xxxxxxxx"
```

Kết quả trả về luôn có dạng `{"success": true, "data": …}` hoặc `{"success": false, "error": "…"}`, để công cụ tự động hoá dễ kiểm tra thành công hay thất bại.

## API và MCP khác nhau thế nào?

Các endpoint ở trên cũng có mặt trong **MCP server** của opcaios.org, với cùng các thao tác. Khác biệt nằm ở người dùng:

- **API** dành cho phần mềm và người viết quy trình: bạn biết trước sẽ gọi endpoint nào, theo thứ tự nào.
- **MCP** dành cho AI: nó đóng gói các thao tác thành "công cụ" có mô tả, để trợ lý AI như Claude hay ChatGPT tự chọn gọi cái nào trong lúc trò chuyện.

MCP server thường gọi API ở bên dưới. Đọc thêm bài [MCP là gì?](https://opcaios.org/blog/mcp-la-gi) để thấy hai thứ này nối với nhau thế nào.

## Lưu ý bảo mật khi dùng API

- **Không dán khoá API vào chỗ công khai:** mã nguồn đưa lên GitHub, ảnh chụp màn hình, tin nhắn nhóm, khung chat với AI.
- **Mỗi việc một khoá, quyền tối thiểu:** quy trình chỉ cần đọc thì dùng khoá chỉ đọc. Lộ một khoá thì thu hồi đúng khoá đó.
- **Webhook phải xác thực:** kiểm tra khoá bí mật hoặc chữ ký trong mỗi yêu cầu gửi tới, nếu không ai cũng có thể giả mạo "đơn đã thanh toán".
- **Đặt giới hạn chi tiêu với API trả phí:** đặc biệt là API AI — một vòng lặp lỗi có thể gọi hàng nghìn lần trong vài phút.
- **Ghi log:** lưu lại mỗi lần gọi quan trọng để khi có sự cố biết chuyện gì đã xảy ra.

## Câu hỏi thường gặp

**API có mất phí không?**
Tuỳ nhà cung cấp. Nhiều API miễn phí trong giới hạn nhất định; API AI và API dữ liệu thường tính phí theo lượng dùng. Đọc trang giá trước khi nối vào quy trình chạy tự động.

**REST API là gì?**
REST là cách thiết kế API phổ biến nhất: mỗi loại dữ liệu có một địa chỉ (ví dụ `/posts`, `/contacts`), và dùng các method HTTP `GET`, `POST`, `PATCH`, `DELETE` để lấy, tạo, sửa, xoá.

**Lấy khoá API ở đâu?**
Trong phần cài đặt hoặc trang dành cho nhà phát triển của dịch vụ bạn muốn kết nối — thường có tên "API keys", "Developer", "Tích hợp".

**API và webhook, nên dùng cái nào?**
Cần biết ngay khi có sự kiện (đơn mới, tiền về) thì dùng webhook nếu dịch vụ hỗ trợ. Cần lấy hoặc gửi dữ liệu theo lịch hoặc khi bạn chủ động thì dùng API. Phần lớn quy trình dùng cả hai.

**Tôi cần học lập trình để dùng API không?**
Không bắt buộc. Với n8n, Make hay Zapier, bạn chỉ cần hiểu endpoint, method, khoá và JSON ở mức đọc được — đúng những gì bài này đã giải thích.

*Nguồn: mã nguồn và phản hồi thật của API opcaios.org (`/api/v1`, webhook SePay), kiểm tra ngày 22/10/2026.*
