curl --request GET \
--url https://api.ssi.com.vn/api/v3/data/securitiesSummary \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.ssi.com.vn/api/v3/data/securitiesSummary"
headers = {
"Content-Type": "<content-type>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': '<content-type>', Authorization: 'Bearer <token>'}
};
fetch('https://api.ssi.com.vn/api/v3/data/securitiesSummary', 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://api.ssi.com.vn/api/v3/data/securitiesSummary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: <content-type>"
],
]);
$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://api.ssi.com.vn/api/v3/data/securitiesSummary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ssi.com.vn/api/v3/data/securitiesSummary")
.header("Content-Type", "<content-type>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ssi.com.vn/api/v3/data/securitiesSummary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "",
"data": [
{
"symbol": "SSI",
"tradingDate": "2026/07/01",
"priceChange": "-100",
"priceChangePercentage": "-0.51",
"open": "19500",
"high": "19600",
"low": "19200",
"close": "19400",
"average": "19351",
"totalMatch": "11085700",
"totalMatchValue": "214522755000",
"totalBuy": "0",
"totalTradeBuy": "0",
"totalSell": "0",
"totalTradeSell": "0",
"totalForeignBuy": "0",
"totalForeignBuyValue": "0",
"totalForeignSell": "0",
"totalForeignSellValue": "0",
"remainForeignRoom": "1742851660",
"totalForeignRoom": null,
"totalDeal": "5856800",
"totalDealValue": "119012649600",
"openInterest": null,
"settlementPrice": null
}
],
"pageSize": 10,
"pageIndex": 1,
"pagesCount": 1,
"itemsCount": 1
}Tổng hợp giao dịch chứng khoán
Lấy thông tin tổng hợp giao dịch của một mã chứng khoán hoặc chỉ số theo từng ngày giao dịch. Chỉ truyền một trong hai tham số là Symbol hoặc Index.
curl --request GET \
--url https://api.ssi.com.vn/api/v3/data/securitiesSummary \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.ssi.com.vn/api/v3/data/securitiesSummary"
headers = {
"Content-Type": "<content-type>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': '<content-type>', Authorization: 'Bearer <token>'}
};
fetch('https://api.ssi.com.vn/api/v3/data/securitiesSummary', 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://api.ssi.com.vn/api/v3/data/securitiesSummary",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: <content-type>"
],
]);
$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://api.ssi.com.vn/api/v3/data/securitiesSummary"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Content-Type", "<content-type>")
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.ssi.com.vn/api/v3/data/securitiesSummary")
.header("Content-Type", "<content-type>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.ssi.com.vn/api/v3/data/securitiesSummary")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = '<content-type>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"code": 200,
"msg": "",
"data": [
{
"symbol": "SSI",
"tradingDate": "2026/07/01",
"priceChange": "-100",
"priceChangePercentage": "-0.51",
"open": "19500",
"high": "19600",
"low": "19200",
"close": "19400",
"average": "19351",
"totalMatch": "11085700",
"totalMatchValue": "214522755000",
"totalBuy": "0",
"totalTradeBuy": "0",
"totalSell": "0",
"totalTradeSell": "0",
"totalForeignBuy": "0",
"totalForeignBuyValue": "0",
"totalForeignSell": "0",
"totalForeignSellValue": "0",
"remainForeignRoom": "1742851660",
"totalForeignRoom": null,
"totalDeal": "5856800",
"totalDealValue": "119012649600",
"openInterest": null,
"settlementPrice": null
}
],
"pageSize": 10,
"pageIndex": 1,
"pagesCount": 1,
"itemsCount": 1
}Ủy quyền
Access token lấy từ endpoint /api/v3/auth/token hoặc /api/v3/auth/refresh.
Tiêu đề
Định dạng nội dung request body. Chủ yếu là application/json.
Thông tin client gửi request.
Ngôn ngữ phản hồi mong muốn. Nếu không có header này, hệ thống sẽ mặc định là en
Tham số truy vấn
Mã chứng khoán. Chỉ truyền một trong hai tham số symbol hoặc index.
Mã chỉ số cần lấy thông tin tổng hợp giao dịch (ví dụ VNINDEX, VN30, VN100 etc...)
Ngày bắt đầu theo định dạng YYYY/MM/DD.
Ngày kết thúc theo định dạng YYYY/MM/DD. Bắt buộc phải lớn hơn hoặc bằng from.
Chỉ số trang khi phân trang kết quả, bắt đầu từ 1. Nếu không cung cấp thì hệ thống sẽ sử dụng giá trị mặc định là 1.
Số lượng bản ghi trên mỗi trang. Nếu không cung cấp thì hệ thống sẽ sử dụng giá trị mặc định là 10.