thaioil-api
v1.0.1
Published
Fetch real-time fuel prices from Thailand — PTT, Shell, Caltex, BCP, PT, Susco
Maintainers
Readme
thaioil-api
ดึงราคาน้ำมันในประเทศไทยแบบ Real-time
Fetch real-time fuel prices in Thailand — PTT, Shell, Caltex, BCP, PT, Susco
Installation
npm install thaioil-api
# or
pnpm add thaioil-api
# or
yarn add thaioil-apiRequires Node.js ≥ 18 (uses native
fetch)
Usage
ดึงแบรนด์เดียว / Single brand
import { getOilPrices } from 'thaioil-api'
const result = await getOilPrices('ptt')
console.log(result.brand) // "PTT"
console.log(result.updatedAt) // "2024-08-05T01:00:00.000Z"
console.log(result.data)
// [
// { product: 'ดีเซล B7', price: 26.59, priceDate: '5 สิงหาคม 2567' },
// { product: 'แก๊สโซฮอล์ 91', price: 34.98, priceDate: '5 สิงหาคม 2567' },
// { product: 'แก๊สโซฮอล์ 95', price: 35.58, priceDate: '5 สิงหาคม 2567' },
// ...
// ]ดึงทุกแบรนด์ / All brands (1 HTTP request)
import { getAllOilPrices } from 'thaioil-api'
const all = await getAllOilPrices()
for (const brand of all) {
if (brand.success) {
console.log(`${brand.brand}:`, brand.data)
}
}TypeScript types
import type { OilBrand, OilPrice, OilBrandResult } from 'thaioil-api'
const brand: OilBrand = 'shell' // 'ptt' | 'shell' | 'caltex' | 'bcp' | 'pt' | 'susco'Error handling
import { getOilPrices, OilFetchError } from 'thaioil-api'
try {
const result = await getOilPrices('ptt')
} catch (err) {
if (err instanceof OilFetchError) {
console.error(`Failed for brand: ${err.brand}`, err.message)
}
}API Reference
getOilPrices(brand)
| Parameter | Type | Description |
|---|---|---|
| brand | OilBrand | 'ptt' | 'shell' | 'caltex' | 'bcp' | 'pt' | 'susco' |
Returns: Promise<OilBrandResult>
getAllOilPrices()
ดึงทุกแบรนด์ด้วย HTTP request เดียว (efficient)
Returns: Promise<OilBrandResult[]>
SUPPORTED_BRANDS
const SUPPORTED_BRANDS: OilBrand[]
// ['ptt', 'shell', 'caltex', 'bcp', 'pt', 'susco']Types
type OilBrand = 'ptt' | 'shell' | 'caltex' | 'bcp' | 'pt' | 'susco'
interface OilPrice {
product: string // ชื่อน้ำมัน
price: number // ราคา ฿/ลิตร
priceDate: string | null // วันที่อัปเดต (Thai format)
}
interface OilBrandResult {
success: boolean
brand: string // UPPERCASE brand name
updatedAt: string // ISO 8601
data: OilPrice[]
}Data Source
ข้อมูลดึงจาก Kapook Gas Price ซึ่งรวบรวมราคาน้ำมันจากแต่ละบริษัท
License
MIT
