Skip to main content
GET
https://www.xn--dkkango-n2a.com/api/integrations
/
foods
/
get-foods
Get Foods (Menu Items)
curl --request GET \
  --url https://www.xn--dkkango-n2a.com/api/integrations/foods/get-foods \
  --header 'Access-Token: <api-key>'
{
  "status": false,
  "error": "çok fazla istek",
  "message": "Çok fazla istek. Lütfen 30 saniye bekleyin."
}
Rate Limited: This endpoint has a 30-second cooldown between requests.

Overview

Retrieves all menu items across accessible restaurants with complete details including categories, prices, and modifier groups.

Headers

Access-Token
string
required
Your API access token

Response

status
boolean
true if successful
data
array
Array of food/menu item objects

Examples

curl -X GET 'https://www.xn--dkkango-n2a.com/api/integrations/foods/get-foods' \
  -H 'Access-Token: your-access-token'

Response Example

{
  "status": true,
  "data": [
    {
      "food_id": 1,
      "name": "Beef Burrito",
      "category": {
        "id": 1,
        "name": "Burritos",
        "sort": 0
      },
      "desc": "Delicious beef burrito with fresh ingredients",
      "image": "https://example.com/images/beef-burrito.jpg",
      "restaurant_id": "0ca1d2b1-a199-4960-8617-83a659d890c8",
      "sort": 0,
      "price": 675,
      "add_substract": [
        {
          "ilave_basligi": "Sos Seçimi",
          "secim_turu": "coklu",
          "ekleme_cikarma": "ekleme",
          "zorunlu_turu": "opsiyonel",
          "ilave_opsiyonlari": [
            {
              "name": "Ballı Hardal",
              "price": 10
            },
            {
              "name": "Balzamik Hardal",
              "price": 15
            }
          ]
        }
      ]
    }
  ]
}

Understanding Modifiers

Selection Types

Customer can select only one option from the group.Example: Size selection (Small, Medium, Large)
{
  "secim_turu": "tekli",
  "ilave_opsiyonlari": [
    {"name": "Small", "price": 0},
    {"name": "Medium", "price": 50},
    {"name": "Large", "price": 100}
  ]
}

Requirement Types

Customer must select at least one option.
{
  "zorunlu_turu": "zorunlu",
  "ilave_basligi": "Protein Choice"
}

Caching Strategy

Due to the 30-second rate limit, cache this data locally in your POS system.
1

Initial Fetch

Call /get-foods when your POS starts or when user manually refreshes.
2

Store Locally

Cache the complete menu structure in memory or local database.
3

Periodic Refresh

Refresh menu every 30-60 minutes or on manual request.
4

Real-time Updates

Use /foods/status-active and /foods/status-passive to toggle availability without full refresh.

Error Responses

{
  "status": false,
  "error": "çok fazla istek",
  "message": "Çok fazla istek. Lütfen 30 saniye bekleyin."
}

Price Calculation Example

function calculateItemTotal(food, selectedModifiers) {
  let total = food.price;
  
  // Add modifier prices
  for (const modifier of selectedModifiers) {
    for (const option of modifier.selected_options) {
      total += option.price;
    }
  }
  
  return total;
}

// Example usage
const food = { price: 675 }; // Beef Burrito
const modifiers = [
  {
    selected_options: [
      { name: "Ballı Hardal", price: 10 },
      { name: "Balzamik Hardal", price: 15 }
    ]
  }
];

const total = calculateItemTotal(food, modifiers);
// Result: 675 + 10 + 15 = 700 (₺7.00)
Always convert prices to human-readable format: divide by 100 for display (e.g., 675₺6.75).