Vietnam Pesticide List API
Search Vietnam’s national list of plant protection products by trade name, active ingredient, crop or pest: permitted, phased out, withdrawn or banned.
Look up the national lists of plant protection products (thuốc bảo vệ thực vật) of Vietnam: the permitted list of Thông tư 75/2025/TT-BNNMT (in force from 10/2/2026) as amended by Thông tư 28/2026/TT-BNNMT (from 15/8/2026), and the list of 31 banned active ingredients. About 6,800 trade name × formulation rows with active ingredient, category (insecticide, fungicide, herbicide, rodenticide, growth regulator, molluscicide, termiticide…), the pests and crops registered (parsed into targets), the registrant, and which circular lists or amended it.
Search with q (trade name, ingredient, pest, crop or registrant, accent-insensitive), or combine trade, ingredient, crop, pest, registrant, category, status. With crop and pest together, both must be named in the same registration (e.g. nhện đỏ on sầu riêng). action=ingredient tells whether an active ingredient (or mixture) is permitted, phased out (carbosulfan, benfuracarb under Điều 2 TT 75/2025), removed earlier (glyphosate, paraquat, 2,4-D, chlorpyrifos ethyl, fipronil) or banned; action=banned lists Phụ lục II.
The data are rebuilt weekly from the signed PDFs published by the Ministry of Agriculture and Environment; the build checks the counts stated in each circular. It is a lookup aid: always follow the product label (dose, pre-harvest interval) and the official text.
Parameters
| Name | In | Type | Required | Default | |
|---|---|---|---|---|---|
q | query|body | string | no | Free text: trade name, active ingredient, pest, crop or registrant (accents optional). | |
trade | query|body | string | no | Trade name (exact or prefix). | |
ingredient | query|body | string | no | Active ingredient(s); "a + b" requires both. | |
crop | query|body | string | no | Crop, e.g. lúa, sầu riêng. | |
pest | query|body | string | no | Pest or disease, e.g. rầy nâu, thán thư. | |
registrant | query|body | string | no | Registrant company (substring). | |
category | query|body | string | no | insecticide, fungicide, herbicide, rodenticide, plant_growth_regulator, attractant, molluscicide, adjuvant, termiticide, wood_preservative, fumigant, postharvest. | |
status | query|body | string | no | all | all, permitted, restricted (phase-out) or withdrawn. |
action | query|body | string | no | search | search, ingredient (status of an active ingredient), banned, stats. |
limit | query|body | number | no | 20 | Results per page (1–100); offset to page. |
Example
curl "https://apibox.io.vn/v1/vn-pesticides?crop=s%E1%BA%A7u%20ri%C3%AAng&pest=nh%E1%BB%87n%20%C4%91%E1%BB%8F&limit=1" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/vn-pesticides?crop=s%E1%BA%A7u%20ri%C3%AAng&pest=nh%E1%BB%87n%20%C4%91%E1%BB%8F&limit=1', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/vn-pesticides?crop=s%E1%BA%A7u%20ri%C3%AAng&pest=nh%E1%BB%87n%20%C4%91%E1%BB%8F&limit=1",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/vn-pesticides?crop=s%E1%BA%A7u%20ri%C3%AAng&pest=nh%E1%BB%87n%20%C4%91%E1%BB%8F&limit=1');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Response
{
"action": "search",
"query": {
"crop": "sầu riêng",
"pest": "nhện đỏ",
"status": "all"
},
"total": 2,
"limit": 1,
"offset": 0,
"results": [
{
"trade_name": "Bimite 480SC",
"active_ingredient": "Bifenazate (min 95%)",
"category": "insecticide",
"category_vi": "Thuốc trừ sâu",
"category_en": "Insecticide",
"use": "agriculture",
"use_vi": "Thuốc sử dụng trong nông nghiệp",
"pests_crops": "nhện đỏ/ sầu riêng",
"targets": [
{
"pests": [
"nhện đỏ"
],
"crops": [
"sầu riêng"
]
}
],
"registrant": "Công ty CP Hợp Trí Summit",
"status": "permitted",
"status_vi": "Được phép sử dụng",
"list": "Phụ lục II, Thông tư 28/2026/TT-BNNMT (bổ sung vào Phụ lục I TT 75/2025/TT-BNNMT)",
"listed_by": "28/2026/TT-BNNMT",
"listed_from": "2026-08-15"
}
],
"data_version": "2026-08-15",
"legal": [
{
"text": "Thông tư 75/2025/TT-BNNMT",
"signed": "2025-12-26",
"effective_from": "2026-02-10",
"role": "Danh mục thuốc BVTV được phép sử dụng (Phụ lục I) và cấm sử dụng (Phụ lục II)",
"url": "https://mae.gov.vn/van-ban-phap-luat-723.htm"
}
],
"disclaimer": "Reference lookup of the published lists, not legal or agronomic advice; check the official text and the product label (dose, pre-harvest interval).",
"reviewed": "2026-11-11"
}
Use cases
- Check a product in an agricultural input shop or farm app
- Screen spray records for export orchards (durian, dragon fruit)
- Find registered products for a crop and pest
- Warn when an active ingredient is banned or being phased out
FAQ
Which circulars are used?
Thông tư 75/2025/TT-BNNMT (permitted and banned lists, from 10/2/2026) with the changes of Thông tư 28/2026/TT-BNNMT (from 15/8/2026): registrant and ingredient changes, 5 withdrawals and 348 new trade names.
Is there a restricted list?
The current circular has only a permitted and a banned list. Products of carbosulfan and benfuracarb are shown as restricted: they may be traded and used only until 10/2/2028 and 10/2/2027.
Why is glyphosate not in the banned list?
Glyphosate, paraquat and 2,4-D were removed from the permitted list by earlier decisions, so they may not be sold or used although they are not in Phụ lục II; action=ingredient returns status removed with the decision.
Related APIs
JSON Validator
Check JSON syntax with exact line and column of errors, and validate data against a JSON Schema (draft 4, 7, 2019-09 or 2020-12).
{ }JSON Formatter
Pretty print JSON with 0-8 spaces or tabs, minify it, or sort object keys recursively. Syntax errors are reported with line and column.
CSVCSV to JSON
Convert CSV into an array of JSON objects using the header row, with delimiter auto-detection, number and boolean typing, and row-level errors.