curl --request GET \
--url https://api.ssi.com.vn/api/v3/data/ohlc \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.ssi.com.vn/api/v3/data/ohlc"
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/ohlc', 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/ohlc",
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/ohlc"
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/ohlc")
.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/ohlc")
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{
"pageSize": 2,
"pageIndex": 1,
"data": [
{
"symbol": "SSI",
"tradingDate": "2026/03/27",
"open": "21061.555",
"high": "21740.96",
"low": "21061.555",
"close": "21621.065",
"volume": "23305300",
"value": "503885406144.5"
},
{
"symbol": "SSI",
"tradingDate": "2026/03/26",
"open": "21461.205",
"high": "21461.205",
"low": "21061.555",
"close": "21061.555",
"volume": "23402600",
"value": "492895147043"
}
],
"code": 200,
"msg": ""
}{
"code": "<string>",
"msg": "<string>"
}{
"code": "<string>",
"msg": "<string>"
}{
"code": "<string>",
"msg": "<string>"
}Dữ liệu OHLCV
Lấy dữ liệu nến OHLCV theo khoảng thời gian. Thời gian cung cấp 1 năm gần nhất cho dữ liệu intraday, dữ liệu daily cung cấp từ khi mã chứng khoán được giao dịch.
curl --request GET \
--url https://api.ssi.com.vn/api/v3/data/ohlc \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: <content-type>'import requests
url = "https://api.ssi.com.vn/api/v3/data/ohlc"
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/ohlc', 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/ohlc",
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/ohlc"
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/ohlc")
.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/ohlc")
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{
"pageSize": 2,
"pageIndex": 1,
"data": [
{
"symbol": "SSI",
"tradingDate": "2026/03/27",
"open": "21061.555",
"high": "21740.96",
"low": "21061.555",
"close": "21621.065",
"volume": "23305300",
"value": "503885406144.5"
},
{
"symbol": "SSI",
"tradingDate": "2026/03/26",
"open": "21461.205",
"high": "21461.205",
"low": "21061.555",
"close": "21061.555",
"volume": "23402600",
"value": "492895147043"
}
],
"code": 200,
"msg": ""
}{
"code": "<string>",
"msg": "<string>"
}{
"code": "<string>",
"msg": "<string>"
}{
"code": "<string>",
"msg": "<string>"
}Ủ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 cần lấy dữ liệu OHLCV.
Mốc thời gian bắt đầu. Định dạng YYYY/MM/DD cho dữ liệu daily và YYYY/MM/DD HH:mm:ss cho dữ liệu intraday.
Mốc thời gian kết thúc. Định dạng YYYY/MM/DD cho dữ liệu daily và YYYY/MM/DD HH:mm:ss cho dữ liệu intraday.
Khung thời gian của dữ liệu OHLCV. Giá trị có thể là 1m, 3m, 5m, 15m, 30m, 1h, hoặc 1d. Nếu không cung cấp thì hệ thống sẽ sử dụng giá trị mặc định là 1d.
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.