Skip to content

About

ดึงข้อมูลราคาน้ำมันปั๊มในไทย (PTT, Bangchak, Shell ฯลฯ) ผ่าน thaioil-api

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

thaioil-api

ดึงราคาน้ำมันในประเทศไทยแบบ Real-time
Fetch real-time fuel prices in Thailand — PTT, Shell, Caltex, BCP, PT, Susco

npm Node.js >= 18 TypeScript


Installation

npm install thaioil-api
# or
pnpm add thaioil-api
# or
yarn add thaioil-api

Requires 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

About

ดึงข้อมูลราคาน้ำมันปั๊มในไทย (PTT, Bangchak, Shell ฯลฯ) ผ่าน thaioil-api

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages