{
  "info": {
    "_postman_id": "hsp-api-v2-collection",
    "name": "Her Şey Pazar API v2",
    "description": "Her Şey Pazar Marketplace public API v2 — official Postman collection.\n\nGenerated from OpenAPI 3.1 spec (https://api.herseypazar.com/openapi.json).\n\nKVKK 6698 + ISO 27001:2022 uyumlu, argon2id key_hash + HMAC SHA-256 webhook imzası.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [{ "key": "token", "value": "{{ACCESS_TOKEN}}", "type": "string" }]
  },
  "variable": [
    { "key": "baseUrl", "value": "https://api.herseypazar.com/v2" },
    { "key": "API_KEY", "value": "hsp_pk_live_xxx" },
    { "key": "API_SECRET", "value": "hsp_sk_live_xxx" },
    { "key": "ACCESS_TOKEN", "value": "" }
  ],
  "event": [{
    "listen": "prerequest",
    "script": {
      "type": "text/javascript",
      "exec": [
        "// Auto-refresh token if missing or about to expire",
        "const token = pm.collectionVariables.get('ACCESS_TOKEN');",
        "if (!token) {",
        "  pm.sendRequest({",
        "    url: pm.collectionVariables.get('baseUrl') + '/auth/token',",
        "    method: 'POST',",
        "    header: { 'Content-Type': 'application/json' },",
        "    body: { mode: 'raw', raw: JSON.stringify({ api_key: pm.collectionVariables.get('API_KEY'), api_secret: pm.collectionVariables.get('API_SECRET') }) }",
        "  }, (err, res) => {",
        "    if (!err && res.code === 200) {",
        "      pm.collectionVariables.set('ACCESS_TOKEN', res.json().access_token);",
        "    }",
        "  });",
        "}"
      ]
    }
  }],
  "item": [
    {
      "name": "auth",
      "item": [
        {
          "name": "POST /auth/token — Token üret",
          "request": {
            "auth": { "type": "noauth" },
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"api_key\": \"{{API_KEY}}\",\n  \"api_secret\": \"{{API_SECRET}}\"\n}" },
            "url": { "raw": "{{baseUrl}}/auth/token", "host": ["{{baseUrl}}"], "path": ["auth", "token"] },
            "description": "API anahtarınızdan 1 saatlik JWT erişim token üretir."
          }
        },
        {
          "name": "GET /auth/whoami — Kim bu token?",
          "request": {
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/auth/whoami", "host": ["{{baseUrl}}"], "path": ["auth", "whoami"] }
          }
        }
      ]
    },
    {
      "name": "sellers",
      "item": [
        {
          "name": "GET /sellers — Satıcı arama",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/sellers?q=elektronik&tier=gold&limit=20",
              "host": ["{{baseUrl}}"], "path": ["sellers"],
              "query": [
                { "key": "q", "value": "elektronik" },
                { "key": "tier", "value": "gold" },
                { "key": "city_id", "value": "34", "disabled": true },
                { "key": "limit", "value": "20" },
                { "key": "cursor", "value": "", "disabled": true }
              ]
            }
          }
        },
        {
          "name": "GET /sellers/:id — Satıcı detayı",
          "request": {
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/sellers/:id", "host": ["{{baseUrl}}"], "path": ["sellers", ":id"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        }
      ]
    },
    {
      "name": "listings",
      "item": [
        {
          "name": "GET /listings — İlan arama",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/listings?q=samsung&category=elektronik/telefon&min_price=1000&max_price=50000&condition=new&sort=newest&limit=20",
              "host": ["{{baseUrl}}"], "path": ["listings"],
              "query": [
                { "key": "q", "value": "samsung" },
                { "key": "category", "value": "elektronik/telefon" },
                { "key": "min_price", "value": "1000" },
                { "key": "max_price", "value": "50000" },
                { "key": "city_id", "value": "34", "disabled": true },
                { "key": "condition", "value": "new" },
                { "key": "sort", "value": "newest" },
                { "key": "limit", "value": "20" },
                { "key": "cursor", "value": "", "disabled": true }
              ]
            }
          }
        },
        {
          "name": "POST /listings — Yeni ilan yayınla",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"title\": \"Samsung Galaxy S24 Ultra 256GB Titanium Black\",\n  \"description\": \"Sıfır kapalı kutu, 2 yıl Türkiye garantili. Faturalıdır. KDV dahil.\",\n  \"price\": 54999.90,\n  \"currency\": \"TRY\",\n  \"stock\": 5,\n  \"category_id\": \"00000000-0000-0000-0000-000000000000\",\n  \"condition\": \"new\",\n  \"images\": [\"https://cdn.herseypazar.com/img/listing/abc.jpg\"]\n}"
            },
            "url": { "raw": "{{baseUrl}}/listings", "host": ["{{baseUrl}}"], "path": ["listings"] }
          }
        },
        {
          "name": "GET /listings/:id — İlan detayı",
          "request": {
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/listings/:id", "host": ["{{baseUrl}}"], "path": ["listings", ":id"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        },
        {
          "name": "PATCH /listings/:id — İlan güncelle",
          "request": {
            "method": "PATCH",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"price\": 51999.00,\n  \"stock\": 3\n}" },
            "url": { "raw": "{{baseUrl}}/listings/:id", "host": ["{{baseUrl}}"], "path": ["listings", ":id"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        },
        {
          "name": "DELETE /listings/:id — İlan kaldır",
          "request": {
            "method": "DELETE",
            "url": { "raw": "{{baseUrl}}/listings/:id", "host": ["{{baseUrl}}"], "path": ["listings", ":id"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        }
      ]
    },
    {
      "name": "orders",
      "item": [
        {
          "name": "GET /orders — Sipariş listele",
          "request": {
            "method": "GET",
            "url": {
              "raw": "{{baseUrl}}/orders?status=shipped&limit=20",
              "host": ["{{baseUrl}}"], "path": ["orders"],
              "query": [
                { "key": "status", "value": "shipped" },
                { "key": "buyer_id", "value": "", "disabled": true },
                { "key": "seller_id", "value": "", "disabled": true },
                { "key": "from", "value": "2026-04-01" },
                { "key": "to", "value": "2026-04-30" },
                { "key": "limit", "value": "20" }
              ]
            }
          }
        },
        {
          "name": "GET /orders/:id — Sipariş detayı",
          "request": {
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/orders/:id", "host": ["{{baseUrl}}"], "path": ["orders", ":id"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        },
        {
          "name": "POST /orders/:id/cancel — Siparişi iptal",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"reason\": \"Müşteri talep etti — beden değişikliği\"\n}" },
            "url": { "raw": "{{baseUrl}}/orders/:id/cancel", "host": ["{{baseUrl}}"], "path": ["orders", ":id", "cancel"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        },
        {
          "name": "POST /orders/:id/ship — Kargoya ver",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"carrier\": \"yurtici\",\n  \"tracking_number\": \"YK1234567890\",\n  \"shipped_at\": \"2026-04-27T10:00:00+03:00\"\n}" },
            "url": { "raw": "{{baseUrl}}/orders/:id/ship", "host": ["{{baseUrl}}"], "path": ["orders", ":id", "ship"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        }
      ]
    },
    {
      "name": "payments",
      "item": [
        {
          "name": "POST /payments/:id/refund — Ödeme iadesi",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"amount\": 1499.90,\n  \"reason\": \"Hasarlı ürün — A-to-Z garantisi\"\n}" },
            "url": { "raw": "{{baseUrl}}/payments/:id/refund", "host": ["{{baseUrl}}"], "path": ["payments", ":id", "refund"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        }
      ]
    },
    {
      "name": "categories",
      "item": [
        {
          "name": "GET /categories — Kategori ağacı",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/categories", "host": ["{{baseUrl}}"], "path": ["categories"] }
          }
        }
      ]
    },
    {
      "name": "search",
      "item": [
        {
          "name": "GET /search/suggest — Arama önerisi",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/search/suggest?q=samsu&limit=8", "host": ["{{baseUrl}}"], "path": ["search", "suggest"], "query": [{ "key": "q", "value": "samsu" }, { "key": "limit", "value": "8" }] }
          }
        }
      ]
    },
    {
      "name": "shipping",
      "item": [
        {
          "name": "POST /shipping/rates — Kargo ücreti",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"from_city_id\": 34,\n  \"to_city_id\": 35,\n  \"weight_kg\": 2.5,\n  \"dimensions_cm\": { \"length\": 30, \"width\": 20, \"height\": 10 }\n}" },
            "url": { "raw": "{{baseUrl}}/shipping/rates", "host": ["{{baseUrl}}"], "path": ["shipping", "rates"] }
          }
        },
        {
          "name": "GET /shipping/track/:tracking_number — Kargo takip",
          "request": {
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/shipping/track/:tracking_number", "host": ["{{baseUrl}}"], "path": ["shipping", "track", ":tracking_number"], "variable": [{ "key": "tracking_number", "value": "YK1234567890" }] }
          }
        }
      ]
    },
    {
      "name": "webhooks",
      "item": [
        {
          "name": "GET /webhooks — Aboneliklerim",
          "request": {
            "method": "GET",
            "url": { "raw": "{{baseUrl}}/webhooks", "host": ["{{baseUrl}}"], "path": ["webhooks"] }
          }
        },
        {
          "name": "POST /webhooks — Yeni abonelik",
          "request": {
            "method": "POST",
            "header": [{ "key": "Content-Type", "value": "application/json" }],
            "body": { "mode": "raw", "raw": "{\n  \"url\": \"https://magaza.example.com/webhooks/hsp\",\n  \"events\": [\"order.placed\", \"order.paid\", \"order.shipped\", \"order.delivered\", \"payment.refunded\"],\n  \"description\": \"ERP entegrasyonu\"\n}" },
            "url": { "raw": "{{baseUrl}}/webhooks", "host": ["{{baseUrl}}"], "path": ["webhooks"] }
          }
        },
        {
          "name": "DELETE /webhooks/:id — Aboneliği sil",
          "request": {
            "method": "DELETE",
            "url": { "raw": "{{baseUrl}}/webhooks/:id", "host": ["{{baseUrl}}"], "path": ["webhooks", ":id"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }] }
          }
        },
        {
          "name": "POST /webhooks/:id/redeliver/:event_id — Yeniden dene",
          "request": {
            "method": "POST",
            "url": { "raw": "{{baseUrl}}/webhooks/:id/redeliver/:event_id", "host": ["{{baseUrl}}"], "path": ["webhooks", ":id", "redeliver", ":event_id"], "variable": [{ "key": "id", "value": "00000000-0000-0000-0000-000000000000" }, { "key": "event_id", "value": "evt_abc123" }] }
          }
        }
      ]
    }
  ]
}
