Hal Fiyatları API
Toptancı hal fiyatları, şehir ve ürün kırılımında
Genel bakış
Hal Fiyatları API; Ticaret Bakanlığı Hal Kayıt Sistemi’nde kamuya açıklanan sebze-meyve fiyatlarını sunmak üzere tasarlanmıştır. Ürün, hal, tarih ve min/max/ortalama fiyat döner. Belediye hal sitelerinden kazıma yapılmaz; SOAP yeniden dağıtımı yazılı protokol sonrası açılır.
Uç noktalar
Temel adres: https://api.apibir.com/v1
Kimlik doğrulama
Tüm isteklerde API anahtarınızı Authorization başlığında gönderin:
Authorization: apikey APIBIR-8f2c4b7e9a1d3c5f7b2e9d41
Accept: application/jsonSorgu parametreleri
| Parametre | Tip | Durum | Açıklama |
|---|---|---|---|
| city | string | opsiyonel | Şehir adı. Örn: istanbul |
| market | string | opsiyonel | Hal kodu. Örn: bayrampasa |
| product | string | opsiyonel | Ürün adı veya kodu. Örn: domates |
| category | string | opsiyonel | sebze, meyve, yesillik |
| date | date | opsiyonel | YYYY-MM-DD. Varsayılan: bugün |
Örnek istek
curl --request GET \
--url "https://api.apibir.com/v1/hal/prices?city=istanbul" \
--header "authorization: apikey APIBIR-8f2c...9d41" \
--header "content-type: application/json"package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.apibir.com/v1/hal/prices?city=istanbul", nil)
req.Header.Add("authorization", "apikey APIBIR-8f2c...9d41")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}const https = require('https');
const options = {
hostname: 'api.apibir.com',
path: '/v1/hal/prices?city=istanbul',
method: 'GET',
headers: { 'authorization': 'apikey APIBIR-8f2c...9d41' }
};
https.get(options, (res) => {
let data = '';
res.on('data', (chunk) => data += chunk);
res.on('end', () => console.log(JSON.parse(data)));
});const res = await fetch(
"https://api.apibir.com/v1/hal/prices?city=istanbul",
{ headers: { authorization: "apikey APIBIR-8f2c...9d41" } }
);
const { data } = await res.json();
console.log(data);import java.net.http.*;
import java.net.URI;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.apibir.com/v1/hal/prices?city=istanbul"))
.header("authorization", "apikey APIBIR-8f2c...9d41")
.GET().build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());import requests
r = requests.get(
"https://api.apibir.com/v1/hal/prices?city=istanbul",
headers={"authorization": "apikey APIBIR-8f2c...9d41"},
timeout=10,
)
print(r.json()["data"])require 'net/http'
require 'uri'
uri = URI.parse("https://api.apibir.com/v1/hal/prices?city=istanbul")
request = Net::HTTP::Get.new(uri)
request["authorization"] = "apikey APIBIR-8f2c...9d41"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts response.bodyusing var client = new HttpClient();
client.DefaultRequestHeaders.Add("authorization", "apikey APIBIR-8f2c...9d41");
var json = await client.GetStringAsync("https://api.apibir.com/v1/hal/prices?city=istanbul");
Console.WriteLine(json);import Foundation
var request = URLRequest(url: URL(string: "https://api.apibir.com/v1/hal/prices?city=istanbul")!)
request.addValue("apikey APIBIR-8f2c...9d41", forHTTPHeaderField: "authorization")
let task = URLSession.shared.dataTask(with: request) { data, _, _ in
if let data = data, let str = String(data: data, encoding: .utf8) {
print(str)
}
}
task.resume()open Cohttp_lwt_unix
open Lwt
let uri = Uri.of_string "https://api.apibir.com/v1/hal/prices?city=istanbul" in
let headers = Header.init_with "authorization" "apikey APIBIR-8f2c...9d41" in
Client.get ~headers uri >>= fun (resp, body) ->
Cohttp_lwt.Body.to_string body >>= fun body_str ->
Lwt_io.printl body_str<?php
$ch = curl_init("https://api.apibir.com/v1/hal/prices?city=istanbul");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["authorization: apikey APIBIR-8f2c...9d41"]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($data["data"]);Örnek yanıt
{
"success": true,
"creditsUsed": 1,
"date": "2026-08-07",
"market": "İstanbul Bayrampaşa Hali",
"currency": "TRY",
"data": [
{
"product": "Domates (Sera)",
"productCode": "domates-sera",
"category": "sebze",
"unit": "kg",
"minPrice": 14.50,
"maxPrice": 22.00,
"avgPrice": 18.25,
"previousAvg": 19.80,
"changePercent": -7.83
},
{
"product": "Karpuz",
"productCode": "karpuz",
"category": "meyve",
"unit": "kg",
"minPrice": 4.00,
"maxPrice": 8.50,
"avgPrice": 6.25,
"previousAvg": 5.90,
"changePercent": 5.93
},
{
"product": "Maydanoz",
"productCode": "maydanoz",
"category": "yesillik",
"unit": "demet",
"minPrice": 2.50,
"maxPrice": 5.00,
"avgPrice": 3.75,
"previousAvg": 3.75,
"changePercent": 0.00
}
]
}Yanıt alanları
| Alan | Tip | Açıklama |
|---|---|---|
| minPrice / maxPrice | number | Hal içinde oluşan en düşük ve en yüksek fiyat |
| avgPrice | number | Ortalama fiyat |
| unit | string | kg · adet · demet · kasa |
| category | string | sebze · meyve · yesillik |
Kredi tüketimi: Bu servis her başarılı istek için 1 kredi harcar.
Hatalı istekler (4xx) kredi düşürmez. Kalan krediniz her yanıtın creditsRemaining alanında döner.
Olası hatalar
| Kod | HTTP | Anlamı |
|---|---|---|
| invalid_api_key | 401 | Anahtar geçersiz veya başlık eksik. |
| insufficient_credits | 402 | Aylık kredi limitiniz doldu. |
| invalid_parameter | 422 | Parametre değeri beklenen formatta değil. |
| rate_limited | 429 | Saniyelik istek limiti aşıldı. |
| no_data | 404 | Sorgu kriterlerine uyan kayıt bulunamadı. |
Bu API ile neler yapabilirsiniz?
Restoran ve zincir mutfak satın alma
Günlük tedarik listesini hal fiyatına göre optimize edin, tedarikçi teklifini kıyaslayın.
Manav ve market fiyatlandırma
Toptan maliyetin üzerine kar marjı uygulayarak raf etiketlerini otomatik güncelleyin.
Enflasyon ve gıda araştırmaları
Sepet bazlı gıda enflasyonu göstergeleri üretin.
Tarımsal lojistik
Hangi şehirde hangi ürünün pahalı olduğunu görüp sevkiyat rotası planlayın.
AI ile hızlı başlangıç. Bu API'yi Claude'a tanıtıp tek promptla pano kurmak için AI & Dashboard rehberine bakın. Hazır prompt şablonu ve çalışan dashboard örneği orada.
İlgili API'ler
Tarımsal Ürün Fiyatları
Tarım & GıdaTÜRİB ELÜS ve TMO bülteni kaynaklı hububat ve yağlı tohum fiyatları (lisans sonrası).
Akaryakıt Fiyatları
Türkiye VerileriEPDK il bazlı bayi ve tavan fiyatları: benzin, motorin ve LPG.
Döviz Kurları
Finans & PiyasaTCMB resmi günlük alış/satış kurları (EVDS ve kur bülteni).
Hal Tüccarları & Gıda Toptancıları İçin Günlük Fiyat Servisi
Büyükşehir hallerindeki güncel sebze/meyve fiyat bültenlerinin her sabah WhatsApp veya E-posta adresinize otomatik gelmesi için teklif isteyin.
Uygulamalı rehber
Hal Fiyatları API'si ile E-Ticaret Fiyatlama Otomasyonu — çalışan kod örnekleriyle adım adım entegrasyon.