curl --request GET \
--url https://openapi.dnse.com.vn/price/{symbol}/secdef \
--header 'X-Api-Key: <x-api-key>' \
--header 'X-Aux-Date: <x-aux-date>' \
--header 'X-Signature: <x-signature>'import requests
url = "https://openapi.dnse.com.vn/price/{symbol}/secdef"
headers = {
"X-Api-Key": "<x-api-key>",
"X-Aux-Date": "<x-aux-date>",
"X-Signature": "<x-signature>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Api-Key': '<x-api-key>',
'X-Aux-Date': '<x-aux-date>',
'X-Signature': '<x-signature>'
}
};
fetch('https://openapi.dnse.com.vn/price/{symbol}/secdef', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://openapi.dnse.com.vn/price/{symbol}/secdef",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <x-api-key>",
"X-Aux-Date: <x-aux-date>",
"X-Signature: <x-signature>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://openapi.dnse.com.vn/price/{symbol}/secdef"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("X-Aux-Date", "<x-aux-date>")
req.Header.Add("X-Signature", "<x-signature>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://openapi.dnse.com.vn/price/{symbol}/secdef")
.header("X-Api-Key", "<x-api-key>")
.header("X-Aux-Date", "<x-aux-date>")
.header("X-Signature", "<x-signature>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.dnse.com.vn/price/{symbol}/secdef")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["X-Aux-Date"] = '<x-aux-date>'
request["X-Signature"] = '<x-signature>'
response = http.request(request)
puts response.read_body[
{
"marketId": "STO",
"boardId": "G1",
"isin": "VN000000HPG4",
"symbol": "HPG",
"productGrpId": "STO",
"securityGroupId": "ST",
"basicPrice": 26.8,
"ceilingPrice": 28.65,
"floorPrice": 24.95,
"securityStatus": "UNSPECIFIED",
"symbolAdminStatusCode": "NRM",
"symbolTradingMethodStatusCode": "NRM",
"symbolTradingSanctionStatusCode": "NRM"
}
]{
"status": 400,
"code": "OA-003",
"message": "Thông tin nhập không hợp lệ"
}{
"status": 500,
"code": "OA-009",
"message": "Lỗi hệ thống"
}Thông tin giao dịch chứng khoán
curl --request GET \
--url https://openapi.dnse.com.vn/price/{symbol}/secdef \
--header 'X-Api-Key: <x-api-key>' \
--header 'X-Aux-Date: <x-aux-date>' \
--header 'X-Signature: <x-signature>'import requests
url = "https://openapi.dnse.com.vn/price/{symbol}/secdef"
headers = {
"X-Api-Key": "<x-api-key>",
"X-Aux-Date": "<x-aux-date>",
"X-Signature": "<x-signature>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Api-Key': '<x-api-key>',
'X-Aux-Date': '<x-aux-date>',
'X-Signature': '<x-signature>'
}
};
fetch('https://openapi.dnse.com.vn/price/{symbol}/secdef', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://openapi.dnse.com.vn/price/{symbol}/secdef",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <x-api-key>",
"X-Aux-Date: <x-aux-date>",
"X-Signature: <x-signature>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://openapi.dnse.com.vn/price/{symbol}/secdef"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<x-api-key>")
req.Header.Add("X-Aux-Date", "<x-aux-date>")
req.Header.Add("X-Signature", "<x-signature>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://openapi.dnse.com.vn/price/{symbol}/secdef")
.header("X-Api-Key", "<x-api-key>")
.header("X-Aux-Date", "<x-aux-date>")
.header("X-Signature", "<x-signature>")
.asString();require 'uri'
require 'net/http'
url = URI("https://openapi.dnse.com.vn/price/{symbol}/secdef")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<x-api-key>'
request["X-Aux-Date"] = '<x-aux-date>'
request["X-Signature"] = '<x-signature>'
response = http.request(request)
puts response.read_body[
{
"marketId": "STO",
"boardId": "G1",
"isin": "VN000000HPG4",
"symbol": "HPG",
"productGrpId": "STO",
"securityGroupId": "ST",
"basicPrice": 26.8,
"ceilingPrice": 28.65,
"floorPrice": 24.95,
"securityStatus": "UNSPECIFIED",
"symbolAdminStatusCode": "NRM",
"symbolTradingMethodStatusCode": "NRM",
"symbolTradingSanctionStatusCode": "NRM"
}
]{
"status": 400,
"code": "OA-003",
"message": "Thông tin nhập không hợp lệ"
}{
"status": 500,
"code": "OA-009",
"message": "Lỗi hệ thống"
}Tiêu đề
API key được cấp khi đăng ký dịch vụ DNSE OpenAPI.
Ví dụ: b3JnOmRuc2UgaWQ6MjdlZTc1MzcxZGFkNTY0NmYzYTM2NDk1ZGE3OGNiOGQgaDptdXJtdXIxMjg=
Thời gian thực hiện request, dùng trong cơ chế ký request của DNSE.
Ví dụ: Sat, 01 May 2026 14:24:23 +0000
Chữ ký xác thực request được tạo từ API key secret và X-Aux-Date.
Ví dụ: Signature keyId="b3JnOmRuc2UgaWQ6MjdlZTc1MzcxZGFkNTY0NmYzYTM2NDk1ZGE3OGNiOGQgaDptdXJtdXIxMjg=",algorithm="hmac-sha256",headers="(request-target) x-aux-date",signature="rfbVXHDUi%2B%2FsOkLXle7O17Qm%2F05cbISSR%2BDcFrBHfqQ%3D",nonce="4add8c3264e4492b9f8ecde0cf26b523"
Tham số đường dẫn
Tham số truy vấn
Mã bảng giao dịch
-
G1: Lô chẵn
-
G4: Lô lẻ
-
T1: Thỏa thuận trong giờ (9h - 14h45)
-
T3: Thỏa thuận sau giờ (14h45 - 15h)
-
T4: Thỏa thuận lô lẻ trong giờ (9h - 14h45)
-
T6: Thỏa thuận lô lẻ sau giờ (14h45 - 15h) Mã định danh bảng giao dịch.
-
UNSPECIFIED: Không xác định -
AL: Tất cả bảng -
G1: Lô chẵn -
G3: Board phiên sau giờ (PLO) -
G4: Lô lẻ -
T1: Thỏa thuận lô chẵn 9h-14h45 -
T3: Thỏa thuận lô chẵn 14h45-15h -
T4: Thỏa thuận lô lẻ 9h-14h45 -
T6: Thỏa thuận lô lẻ 14h45-15h
UNSPECIFIED, AL, G1, G3, G4, T1, T3, T4, T6 "G1"
Phản hồi
OK
Mã thị trường niêm yết mã chứng khoán
- DVX: Phái sinh sàn HNX
- HCX: Trái phiếu doanh nghiệp HNX
- STO: Cổ phiếu sàn HOSE
- STX: Cổ phiếu sàn HNX
- UPX: Cổ phiếu sàn Upcom
UNSPECIFIED, DVX, HCX, STO, STX, UPX "STO"
Mã bảng giao dịch
- G1: Lô chẵn
- G4: Lô lẻ
- T1: Thỏa thuận trong giờ (9h - 14h45)
- T3: Thỏa thuận sau giờ (14h45 - 15h)
- T4: Thỏa thuận lô lẻ trong giờ (9h - 14h45)
- T6: Thỏa thuận lô lẻ sau giờ (14h45 - 15h)
UNSPECIFIED, AL, G1, G3, G4, T1, T3, T4, T6 "G1"
Mã định danh quốc tế
"VN000000HPG4"
Mã chứng khoán
"HPG"
Nhóm sản phẩm theo thị trường -FBX: Hợp đồng tương lai Trái phiếu -FIO: Hợp đồng tương lai Chỉ số -HCX: Trái phiếu Doanh nghiệp HNX -STO: Cổ phiếu sàn HOSE -STX: Cổ phiếu sàn HNX -UPX: Cổ phiếu sàn Upcom
UNSPECIFIED, FBX, FIO, HCX, STO, STX, UPX "STO"
Nhóm chứng khoán
- BS: Trái phiếu doanh nghiệp
- EF: Quỹ ETF
- EW: Chứng quyền
- FU: Hợp đồng tương lai
- ST: Cổ phiếu
UNSPECIFIED, BS, EF, EW, FU, SR, ST "ST"
Giá tham chiếu ngày giao dịch
26.8
Giá trần ngày giao dịch
28.65
Giá sàn ngày giao dịch
24.95
Trạng thái giao dịch của mã chứng khoán
- HALT: Ngừng giao dịch
- NO_HALT: Không ngừng giao dịch
UNSPECIFIED, HALT, NO_HALT "UNSPECIFIED"
Trạng thái quản lý hành chính mã chứng khoán
- CR: Kiểm soát và hạn chế giao dịch
- CTR: Kiểm soát
- NRM: Bình thường
- RES: Hạn chế giao dịch
- WFR: Cảnh báo vi phạm BCTC
- WID: Cảnh báo vi phạm CBTT
- WOV: Cảnh báo vi phạm khác
UNSPECIFIED, CR, CTR, NRM, RES, WFR, WID, WOV "NRM"
Trạng thái cơ chế giao dịch mã chứng khoán
- NRM: Bình thường
- NWE: Niêm yết mới (biên độ đặc biệt)
- NWN: Niêm yết mới (biên độ thường)
- SLS: Giao dịch đặc biệt sau tạm ngưng
- SNE: Giao dịch đặc biệt không có giao dịch dài hạn
UNSPECIFIED, NRM, NWE, NWN, SLS, SNE "NRM"
Tình trạng giao dịch của mã chứng khoán
- NRM: Bình thường
- SUS: Tạm ngừng giao dịch
- DTL: Hủy niêm yết để chuyển sàn
- TFR: Ngưng giao dịch do hạn chế
UNSPECIFIED, NRM, SUS, DTL, TFR "NRM"
Ngày giao dịch cuối cùng (nếu có)
null
Ngày niêm yế
"2007-11-15T00:00:00Z"
Thời gian ghi nhận (YYYY-MM-DD HH:mm:ss.SSS (GMT+7))
"2026-08-04 08:00:24.008"
[
{
"marketId": "STO",
"boardId": "G1",
"isin": "VN000000HPG4",
"symbol": "HPG",
"productGrpId": "STO",
"securityGroupId": "ST",
"basicPrice": 26.8,
"ceilingPrice": 28.65,
"floorPrice": 24.95,
"securityStatus": "UNSPECIFIED",
"symbolAdminStatusCode": "NRM",
"symbolTradingMethodStatusCode": "NRM",
"symbolTradingSanctionStatusCode": "NRM"
}
]