PUBLIC API · v2.4.1 · ALL SYSTEMS OPERATIONAL ●

Build on
Thai nutrition

The Ginsuk API gives you our complete Thai food database — 3,200+ dishes, regional variants, portion-aware nutrition, and snap-to-log vision. Built for developers who ship.

example.shcURLJSPython
# Identify a Thai dish from a photo
curl https://api.ginsuk.co/v2/vision/identify \
  -H "Authorization: Bearer $GINSUK_KEY" \
  -F "image=@som-tam.jpg" \
  -F "region=th-ne"

› 200 OK · 84ms
{
  "dish": "som_tam_pu",
  "name_th": "ส้มตำปู",
  "confidence": 0.94,
  "portion_g": 280,
  "nutrition": {
    "kcal": 482,
    "protein_g": 18,
    "carbs_g": 62,
    "sodium_mg": 1840
  }
}
Uptime · 90d
99.98%
P50 latency
84ms
Requests / day
12.4M
Dishes in DB
3,240

22 endpoints. One key.

POST/v2/vision/identify
Identify a Thai dish from a photo. Returns dish, portion estimate, and per-macro breakdown.
VISIONFREE TIER
GET/v2/foods/{id}
Fetch full nutrition, ingredients, regional variants, and cooking method breakdown for any dish.
FOODSFREE TIER
GET/v2/foods/search
Search by Thai or English name, ingredient, region, or nutritional filter. 8ms P50.
FOODS
POST/v2/log/entries
Log a meal entry for a user. Supports image attachment, manual entry, and voice.
LOGGING
POST/v2/insights/weekly
Generate a weekly report for a user with trends, anomalies, and personalized suggestions.
AIPRO
GET/v2/users/{id}/ring
Get today's progress ring — calories, macros, water, steps. Stream-compatible.
USERS
POST/v2/voice/transcribe
Thai voice-to-log. "กินส้มตำปู กับข้าวเหนียวหนึ่งจาน" → structured entry.
VOICEBETA
POST/v2/webhook/subscribe
Subscribe to events: user.logged, goal.hit, insight.generated, lab.completed.
WEBHOOKS

Official SDKs

Typed, tree-shakable, and kept in sync with the API — we version them together. All MIT-licensed on GitHub.

TS
TypeScript
v2.4.1
Py
Python
v2.4.0
Sw
Swift
v2.3.2
Kt
Kotlin
v2.3.2
Dt
Dart
v2.2.0
Rs
Rust
v1.9.0

Add snap-to-log
to your app — in 6 lines.

app.tsxReact Native
import { Ginsuk } from '@ginsuk/sdk'

const gin = new Ginsuk({ apiKey: process.env.GINSUK_KEY })

const result = await gin.vision.identify({
  image: photo,
  region: 'th-ne',
})

console.log(result.dish) // → "som_tam_pu"
weekly-report.pyPython
from ginsuk import Client

gin = Client(api_key=os.getenv("GINSUK_KEY"))

report = gin.insights.weekly(
  user_id="usr_a9f2",
  week="2026-W16",
)

for finding in report.findings:
  print(finding.headline, finding.severity)
# → Sleep dropped 38min on Tuesdays  medium
# → Sodium 2.1x above target           high

Join 1,400+ developers

From university research projects to 50M-download apps — Ginsuk is the quiet infrastructure behind Thai nutrition.