So sánh API ảnh miễn phí: Unsplash, Pexels, Pixabay, Openverse & Pexafy

Mười bốn tiêu chí, năm API, mọi con số lấy từ tài liệu chính thức: gói miễn phí thực sự cho bạn những gì, những điều khoản gây khó khi triển khai thực tế, và khi nào mỗi API — kể cả Pexafy — không phải lựa chọn phù hợp.

Chia sẻ
Một lập trình viên làm việc vào ban đêm trước hai màn hình đầy code.
Ảnh từ Unsplash

Bạn cần ảnh miễn phí bản quyền cho một sản phẩm. Cách làm hiển nhiên là lấy API key từ Unsplash, Pexels hoặc Pixabay rồi triển khai. Hai tuần sau bạn mới phát hiện phần mà không ai so sánh: ứng dụng của bạn bị kẹt ở mức 50 request/giờ cho đến khi có người duyệt, một nhà cung cấp cấm hotlink, một bên khác yêu cầu gọi API theo dõi mỗi lần tải ảnh — và kết quả tìm kiếm chỉ tốt bằng những tag mà ai đó đã gõ từ nhiều năm trước.

Trang này chính là bảng so sánh mà chúng tôi từng muốn có khi bắt đầu xây dựng Pexafy: hạn mức quy về cùng một đơn vị, những điều khoản thực sự gây rắc rối khi vận hành, và từng API làm được gì hay không làm được gì. Mọi con số của đối thủ đều lấy từ tài liệu chính thức của họ, liên kết ở cuối trang. Chúng tôi cũng nói thẳng những trường hợp Pexafy không phải lựa chọn phù hợp.

Bảng so sánh

Năm lựa chọn, mười bốn tiêu chí. Unsplash, Pexels và Pixabay là các thư viện đơn lẻ với API riêng. Openverse và Pexafy là các bộ tổng hợp — chúng tìm kiếm trên nhiều thư viện cùng lúc — đây là điểm khác biệt mà hầu hết các bài so sánh thường lặng lẽ bỏ qua.

UnsplashAPI PexelsAPI PixabayAPI Openversebộ tổng hợp Pexafybộ tổng hợp
Hạn mức miễn phí 50 request/giờ (demo) 200 request/giờ
20.000/tháng
100 request/phút Không cần key (bị giới hạn tốc độ) 5.000 request/tháng
Gói cao hơn Sau khi được duyệt thủ công1 Theo yêu cầu Theo yêu cầu (API đầy đủ) Đăng ký ứng dụng Từ $5/tháng · 25.000 request
Cấp key Ngay lập tức (chỉ cho demo) Ngay lập tức Ngay lập tức Không cần Ngay lập tức không cần thẻ
Cần duyệt ứng dụng để dùng thật Bắt buộc Không Chỉ khi dùng API đầy đủ Không Không có
Yêu cầu ghi côngtheo điều khoản API Nhiếp ảnh gia + Unsplash Liên kết nổi bật về Pexels + ghi công Phải hiển thị nguồn gốc ảnh Theo giấy phép từng nguồn (CC BY…) Không bắt buộc2
Gọi API theo dõi lượt tải Bắt buộc mỗi lần tải Không Không Không Không
Hotlink ảnh Bắt buộc Được phép Không được phép cache 24 giờ Liên kết về nguồn Được phép + thumbnail qua CDN
Cơ sở tìm kiếm Từ khóa & tag Từ khóa & tag Từ khóa & tag Từ khóa & metadata Ý nghĩa ngữ nghĩa
Truy vấn nguyên câu Làm giảm chất lượng kết quả Làm giảm chất lượng kết quả Tối đa 100 ký tự Làm giảm chất lượng kết quả 500 ký tự — cải thiện kết quả
Tìm kiếm ảnh → ảnh Không Không Không Không Có + “ảnh tương tự”
Ngôn ngữ truy vấn Tham số lang (beta) 28 ngôn ngữ 26 mã ngôn ngữ Chủ yếu tiếng Anh Hơn 100 ngôn ngữ, một chỉ mục duy nhất
Số thư viện mỗi request 1 1 1 Nhiều (nguồn CC) 9
Định dạng phản hồi Riêng biệt Riêng biệt Riêng biệt Thống nhất Thống nhất + chuỗi ghi công
Máy chủ MCP cho AI agent Không có chính thức Không có chính thức Không có chính thức Không có chính thức Có hosted, OAuth 2.1

Nguồn: tài liệu công khai của từng nhà cung cấp, kiểm tra ngày 14/8/2026 — liên kết trong phần tài liệu tham khảo ở cuối bài. Phát hiện thông tin đã lỗi thời? Báo cho chúng tôi và chúng tôi sẽ chỉnh sửa.

Hạn mức: hãy đọc đơn vị, đừng chỉ nhìn con số

So sánh hạn mức là chỗ mà các bài viết kiểu này thường sai, vì bốn API tính bốn thứ khác nhau trong bốn khoảng thời gian khác nhau. Khi quy về một đơn vị chung — một lượt tìm kiếm mà người dùng thực sự nhìn thấy — thứ hạng sẽ thay đổi:

Gói miễn phíTheo tài liệuMỗi giờMột request mang lại gì
Unsplash50 request/giờ (demo)50Một thư viện, xếp hạng theo từ khóa
Pexels200 request/giờ · 20.000/tháng200Một thư viện, xếp hạng theo từ khóa
Pixabay100 request/phút6.000Một thư viện, xếp hạng theo từ khóa
Pexafy5.000 request/tháng · 20 request/phút1.200 (đỉnh điểm)9 thư viện, xếp hạng theo ngữ nghĩa, khử trùng lặp, một schema duy nhất

Cần nói thẳng điều này: nếu bạn cần khối lượng lớn trên một thư viện duy nhất, mức 100 request/phút của Pixabay là gói miễn phí hào phóng nhất trong trang này, và chúng tôi không hề phủ nhận điều đó. Điều nó không mang lại là độ bao phủ. Để tự ghép cùng một tập kết quả từ ba thư viện, chi phí không chỉ là một request — mà là ba, cộng với tất cả những gì xoay quanh nó:

Để triển khai “một lượt tìm kiếm trên 3 thư viện”API trực tiếpPexafy
Tài khoản & API key cần quản lý31
Lượt duyệt cần chờ1 (Unsplash)0
Số lời gọi HTTP cho mỗi lượt tìm kiếm31
Khung giới hạn tốc độ cần tuân theo3 (giờ, giờ, phút)1
Định dạng JSON cần chuẩn hóa31
Logic hợp nhất, khử trùng lặp & xếp hạng lạiBạn tự viết và bảo trìĐã bao gồm
Bộ điều khoản cần tuân thủ31
Độ liên quan giữa các thư viện3 bảng xếp hạng từ khóa riêng biệt, ghép lạiMột bảng xếp hạng, một điểm số

Đơn vị thực sự quan trọng. Một request Pexafy = một lượt tìm kiếm ngữ nghĩa trên 9 thư viện, đã khử trùng lặp và xếp hạng trong một danh sách duy nhất. Với API riêng của từng nhà cung cấp, cùng một lượt tìm kiếm mà người dùng nhìn thấy tốn từ 3 đến 5 lời gọi cộng với tầng hợp nhất — code mà bạn phải viết, kiểm thử và trả giá bằng chi phí bảo trì mãi mãi.

Những quy định bạn chỉ phát hiện sau khi đã triển khai

Hạn mức thì được quảng cáo. Điều khoản thì không. Đây là bốn điều khoản thường buộc bạn phải viết lại code nhất — tất cả đều công khai, tất cả đều dễ bỏ sót:

  1. Unsplash: quyền truy cập production là một quyết định của con người. Ứng dụng bắt đầu ở chế độ demo với mức 50 request/giờ. Để được nâng hạn mức, bạn phải gửi ảnh chụp màn hình, tiêu đề và mô tả, và ứng dụng của bạn phải chứng minh tuân thủ các nguyên tắc — bao gồm cả việc báo cáo lượt xem và lượt tải. Cho đến khi được duyệt, mức 50/giờ chính là trần của bạn, trong môi trường thực tế, với người dùng thật.
  2. Unsplash: lời gọi theo dõi lượt tải. Mỗi khi ứng dụng của bạn tải một bức ảnh, bạn cũng phải gọi thêm endpoint /photos/:id/download. Đây không phải tùy chọn, mà là một phần trong nguyên tắc bắt buộc, và là một lượt gọi thứ hai mà bạn phải nhớ ở mọi đoạn code có lưu ảnh.
  3. Pixabay: không được hotlink vĩnh viễn, và phải cache trong 24 giờ. Bạn phải tải ảnh về máy chủ riêng để sử dụng lâu dài, và phản hồi API phải được cache trong 24 giờ. Điều đó đồng nghĩa với việc cần có bộ nhớ lưu trữ, một tầng cache và chính sách vô hiệu hóa cache — hạ tầng cần chuẩn bị trước khi bạn kịp hiển thị dù chỉ một bức ảnh.
  4. Tất cả các bên: quy định ghi công khác với quy định giấy phép. Giấy phép ảnh vốn nổi tiếng là dễ dãi, nhưng điều khoản API lại bổ sung thêm nghĩa vụ riêng — một liên kết nổi bật trở lại Pexels, ghi công cho nhiếp ảnh gia và Unsplash, hiển thị cho người dùng biết ảnh Pixabay đến từ đâu. Hãy đọc điều khoản API, chứ không chỉ trang giấy phép.

Lập trường của Pexafy được nói rõ: key của bạn hoạt động ngay từ lần gọi đầu tiên, không có bước duyệt ứng dụng, không có endpoint theo dõi bắt buộc, và không có nghĩa vụ cache. Điều khoản API của chúng tôi không yêu cầu ghi công — nhưng mỗi kết quả vẫn đi kèm sẵn một chuỗi attribution (dạng HTML và văn bản thuần), vì ghi công cho nhiếp ảnh gia là việc nên làm, và chúng tôi muốn biến nó thành một dòng code thay vì một việc phiền phức. Tất nhiên, giấy phép của thư viện nguồn gốc luôn được áp dụng.

Mọi API trong trang này, trừ Pexafy, đều so khớp từ của bạn với những từ gắn liền với một bức ảnh — tag, tiêu đề, mô tả. Pexafy so sánh ý nghĩa: câu của bạn và mọi bức ảnh đều được chuyển thành các dấu vân tay dạng số, và những kết quả gần nhất sẽ được trả về. Hai hệ quả xuất hiện ngay lập tức trong thực tế.

Thứ nhất: độ bao phủ mà bạn không hề yêu cầu. Đây là một request Pexafy thật — một truy vấn, một danh sách đã xếp hạng. Hãy nhìn vào các huy hiệu nguồn:

một cây đơn độc đứng giữa cánh đồng xanh dưới bầu trời xanh rộng lớn
Một request, 147 ms, bốn thư viện khác nhau trong top sáu — và kết quả #1 đến từ Picjumbo, một thư viện mà hầu hết lập trình viên sẽ không bao giờ tích hợp riêng lẻ. Tự thử tìm kiếm này →

Thứ hai: truy vấn không còn là một trò đoán từ khóa. Với so khớp theo tag, mỗi từ thêm vào là một khả năng nữa để tag không chứa nó, nên bạn học cách gõ cây cánh đồng rồi cuộn tìm. Với tìm kiếm ngữ nghĩa thì ngược lại — “một cây đơn độc đứng giữa cánh đồng xanh trống trải dưới bầu trời xanh rộng lớn” là một truy vấn tốt hơn so với “cây”, vì mỗi chi tiết đều làm cho kết quả khớp chính xác hơn. Hiệu ứng tương tự áp dụng cho tâm trạng (bình yên, hoài niệm, tối giản) và cho ngôn ngữ: câu văn cho ra cùng một kết quả dù bạn viết bằng tiếng Anh, tiếng Pháp hay tiếng Nhật, trên cùng một chỉ mục duy nhất. Chúng tôi đã phân tích điều này bằng các truy vấn thật trong bài tìm kiếm ảnh ngữ nghĩa so với từ khóa.

Một schema thay vì ba

Đây là phần tốn nhiều thời gian kỹ thuật nhất và không bao giờ xuất hiện trong bảng so sánh. Cùng một khái niệm — “URL ảnh cỡ trung bình” và “ai là người chụp” — lại được đặt tên khác nhau ở mỗi API:

Ba API, ba định dạng khác nhau — cho cùng hai thông tin
// Unsplash
results[].urls.regular        results[].user.name
// Pexels
photos[].src.large            photos[].photographer
// Pixabay
hits[].webformatURL           hits[].user

Nhân thêm với các chiều kích thước, hướng ảnh, màu chủ đạo, URL trang nguồn, giấy phép và phân trang, bạn sẽ có một adapter cho mỗi nhà cung cấp, một tầng chuẩn hóa, một bước khử trùng lặp (cùng một bức ảnh thường xuất hiện trên nhiều thư viện) và một heuristic xếp hạng lại — thường là vài trăm dòng code phải luôn cập nhật theo kịp ba changelog. Với Pexafy, tầng đó chính là sản phẩm:

Pexafy — một request, một định dạng, bất kể nguồn nào
curl -H "X-Api-Key: $PEXAFY_KEY" \
  "https://api.pexafy.com/api/v1/search/photos?q=a+lone+tree+in+an+empty+green+field"

{
  "success": true,
  "data": [
    {
      "photo_id": "019e4cd9-6369-70c3-ab2b-0ffd7e7965ad",
      "urls": { "thumb": "…", "small": "…", "regular": "…", "large": "…", "full": "…" },
      "width": 5376, "height": 3584, "orientation": "landscape",
      "color_name": "xanadu", "color_hex": "#697E77",
      "photographer_full_name": "Viktor Hanacek",
      "photographer_url": "https://picjumbo.com/about-viktor-hanacek/",
      "source": "Picjumbo", "license_type": "free",
      "relevance_score": 0.80,
      "alt_description": "A single tree standing in a wide green field",
      "attribution": { "html": "Photo by …", "plain": "Photo by …" }
    }
  ],
  "meta": { "took_ms": 147 }
}

Các trường giống hệt nhau cho một bức ảnh Picjumbo, một bức ảnh Unsplash và một bức ảnh Pixabay. Một chỉ số relevance_score duy nhất có thể so sánh giữa mọi nguồn, vì chúng được xếp hạng cùng nhau thay vì ghép lại từ nhiều nguồn riêng lẻ. Và một khối attribution mà bạn có thể hiển thị nguyên trạng.

Hai điều mà không nhà cung cấp nào khác làm được

1 · Tìm kiếm bằng ảnh, không chỉ bằng từ ngữ

Đưa cho Pexafy một bức ảnh — một URL, hoặc một ảnh bạn tải lên — và nó sẽ trả về những bức ảnh tương đồng về mặt thị giác và ngữ nghĩa trên mọi thư viện đã lập chỉ mục. Bạn có thể điều hướng kết quả bằng văn bản cùng lúc (“giống bức ảnh này, nhưng vào lúc hoàng hôn”). Đây là cách bạn xây dựng tính năng “ảnh tương tự”, hoặc cách bạn tìm một giải pháp thay thế miễn phí cho một bức ảnh không thể cấp phép sử dụng. Không có API nào trong số Unsplash, Pexels, Pixabay hay Openverse cung cấp endpoint tìm kiếm ảnh sang ảnh.

2 · Một máy chủ MCP, để AI agent có thể tìm ảnh một cách tự nhiên

Pexafy vận hành một máy chủ Model Context Protocol được host sẵn tại mcp.pexafy.com/mcp với OAuth 2.1 — kết nối nó với Claude, hoặc với agent của riêng bạn, và mô hình sẽ tự tìm kiếm trên 9 thư viện ảnh, xem trực tiếp thumbnail, và trả về những bức ảnh kèm ghi công. Ba công cụ: tìm kiếm bằng văn bản, tìm kiếm bằng ảnh, và ảnh tương tự. Các nhà cung cấp khác không có máy chủ MCP chính thức nào; những gì tồn tại chỉ là các wrapper cộng đồng mà bạn phải tự host và tự cấp key. Nếu bạn đang xây dựng một agent cần dùng hình ảnh, sự khác biệt này chính là cả quá trình tích hợp.

Vậy bạn nên dùng cái nào?

Một bài so sánh mà một sản phẩm thắng ở mọi tiêu chí thì đó là quảng cáo, không phải thông tin. Đây là cách chia thành thật:

  • Pixabay — bạn cần truy cập khối lượng lớn trên một thư viện duy nhất trong gói miễn phí và bạn có thể tự host ảnh. 100 request/phút là mức không ai sánh được ở đây.
  • Unsplash — bản sắc hình ảnh của sản phẩm bạn phụ thuộc cụ thể vào phong cách biên tập của Unsplash, và bạn sẵn sàng trải qua bước duyệt ứng dụng cũng như triển khai lời gọi theo dõi.
  • Pexels — bạn muốn một thư viện gọn gàng với key cấp tức thì, hạn mức theo giờ hào phóng, và không có nghĩa vụ hạ tầng nào.
  • Openverse — bạn cần nội dung Creative Commons và thuộc phạm vi công cộng, vượt ra ngoài các thư viện stock thương mại, bao gồm cả bộ sưu tập bảo tàng và tổ chức.
  • Pexafy — bạn muốn độ bao phủ rộng mà không tốn công tích hợp: một key, 9 thư viện, một schema, xếp hạng dựa trên ý nghĩa, tìm kiếm ảnh sang ảnh, và một máy chủ MCP cho AI agent. Hoặc bạn là một agency, một CMS, hay một sản phẩm AI nơi “tìm đúng bức ảnh” là một tính năng, chứ không chỉ là một trang.

Bạn cũng có thể dùng cả hai: nhiều đội ngũ vẫn giữ tích hợp trực tiếp với Unsplash cho ảnh mang bản sắc thương hiệu và dùng Pexafy cho mọi việc còn lại, chính vì nó chỉ tốn một key và không cần duyệt để thử.

Tài liệu tham khảo & chú thích

1 Tài liệu của Unsplash nêu rõ rằng các ứng dụng ở chế độ demo bị giới hạn ở mức 50 request/giờ và giới hạn này được nâng lên sau khi được duyệt cho môi trường production. Con số production đã công bố được ghi nhận là 1.000 request/giờ trên trang tài liệu API, trong khi các trang trợ giúp của Unsplash và các hướng dẫn của bên thứ ba từ lâu đã trích dẫn con số 5.000 request/giờ. Dù thế nào đi nữa, mức này vẫn bị chặn sau một bước duyệt thủ công — đây chính là điểm quan trọng khi bạn lên kế hoạch ra mắt sản phẩm.

2 Ghi công không phải là yêu cầu bắt buộc theo điều khoản API của Pexafy, và mỗi kết quả đều đi kèm sẵn một chuỗi ghi công. Giấy phép gắn với mỗi bức ảnh bởi thư viện gốc của nó vẫn chi phối việc bạn sử dụng bức ảnh đó — Pexafy là một công cụ tìm kiếm trên thư viện của người khác, không phải chủ sở hữu bản quyền.

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

API ảnh stock miễn phí nào có gói miễn phí tốt nhất?
Còn tùy vào đơn vị đo. Về khối lượng thô trên một thư viện duy nhất, Pixabay hào phóng nhất (100 request mỗi phút). Pexels cho phép 200 request/giờ và 20.000/tháng. Unsplash giới hạn ứng dụng chưa được duyệt ở mức 50 request/giờ cho đến khi có người kiểm duyệt ứng dụng của bạn. Pexafy cung cấp 5.000 request mỗi tháng, nhưng một request là một lượt tìm kiếm ngữ nghĩa trên nhiều thư viện cùng lúc, trả về trong một schema duy nhất — tương đương 3 đến 5 lệnh gọi cộng thêm code hợp nhất nếu dùng trực tiếp API của các nhà cung cấp.
Tôi có cần được duyệt để sử dụng Unsplash API trong môi trường production không?
Có. Ứng dụng Unsplash bắt đầu ở chế độ demo, giới hạn 50 request mỗi giờ. Để được nâng lên hạn mức production, bạn phải gửi ứng dụng để xét duyệt kèm ảnh chụp màn hình, tiêu đề và mô tả, đồng thời tuân thủ các quy định API — bao gồm việc hotlink ảnh và gọi endpoint theo dõi lượt tải. Pexels, Pixabay và Pexafy cấp key hoạt động ngay lập tức mà không cần xét duyệt ứng dụng.
Có bắt buộc phải ghi công khi sử dụng các API này không?
Điều khoản API nghiêm ngặt hơn giấy phép ảnh. Unsplash yêu cầu ghi công cho nhiếp ảnh gia và cho Unsplash; Pexels yêu cầu một liên kết rõ ràng quay lại Pexels và ghi công cho nhiếp ảnh gia khi có thể; Pixabay yêu cầu bạn cho người dùng biết nguồn gốc của ảnh. Điều khoản API của Pexafy không yêu cầu ghi công, và mỗi kết quả đều đi kèm một chuỗi ghi công soạn sẵn dưới dạng HTML và văn bản thuần — giấy phép gốc của thư viện ban đầu vẫn có hiệu lực.
Đâu là lựa chọn thay thế tốt nhất cho Unsplash API?
Nếu vấn đề nằm ở giới hạn demo 50 request/giờ của Unsplash, việc xét duyệt ứng dụng hoặc lệnh gọi theo dõi lượt tải bắt buộc, thì các lựa chọn thay thế gần nhất là Pexels API (một thư viện, cấp key ngay lập tức) và Pexafy (một key duy nhất bao phủ Unsplash, Pexels, Pixabay và các thư viện miễn phí khác trong một request ngữ nghĩa duy nhất, không cần xét duyệt và không có endpoint theo dõi). Với các bộ sưu tập Creative Commons và của tổ chức, hãy dùng Openverse API.
Tôi có thể tìm ảnh stock bằng cả một câu văn hoàn chỉnh qua API không?
Chỉ khi dùng công cụ tìm kiếm ngữ nghĩa. Các API theo từ khóa (Unsplash, Pexels, Pixabay, Openverse) khớp từ ngữ của bạn với các thẻ tag, nên câu truy vấn càng dài thì kết quả càng ít và càng kém — Pixabay thậm chí giới hạn truy vấn ở 100 ký tự. Pexafy chấp nhận tới 500 ký tự và xếp hạng theo ý nghĩa, nên một câu mô tả chi tiết sẽ cải thiện kết quả thay vì làm giảm chất lượng, hỗ trợ hơn 100 ngôn ngữ.
Một AI agent có thể tìm kiếm ảnh stock trực tiếp không?
Có, thông qua máy chủ MCP (Model Context Protocol) được lưu trữ của Pexafy tại mcp.pexafy.com/mcp, được bảo mật bằng OAuth 2.1. Kết nối nó với Claude hoặc agent riêng của bạn và mô hình sẽ tự tìm kiếm trên mọi thư viện đã được lập chỉ mục — bằng văn bản hoặc bằng hình ảnh — và trả về ảnh kèm ghi công. Unsplash, Pexels, Pixabay và Openverse không có máy chủ MCP chính thức; chỉ có các wrapper do cộng đồng duy trì mà bạn phải tự host.

Đừng săn lùng từ khóa nữa. Hãy mô tả điều bạn muốn nói.

Tìm kiếm 9M+ ảnh miễn phí sử dụng được theo ý nghĩa — trong mọi ngôn ngữ, dưới 100 ms.