REST API

مرجع توسعه‌دهندگان بازارباشه

راهنمای یکپارچه برای احراز هویت، مدیریت فایل، محصولات و فروشگاه‌های وب‌سایتی.

شروع سریع

توکن بسازید، تصویر را آپلود کنید و بعد محصول را ایجاد، ویرایش یا حذف کنید.

طراحی ماژولار

ساختار صفحه برای اضافه‌شدن endpointهای جدید، بدون بازنویسی layout، آماده شده است.

فروشگاه وب‌سایتی

endpointهای محصول فقط برای فروشگاه‌های تاییدشده و وب‌سایتی فعال هستند.

Documentation

مستندات API بازارباشه

راهنمای کامل مستندات API بازارباشه برای اتصال فروشگاه‌های وب‌سایتی، مدیریت محصول و همگام‌سازی سرویس‌های بیرونی. همه نمونه‌ها با Bearer token و توکن دسترسی پنل توسعه‌دهندگان کار می‌کنند.

Base URL

https://api.bazaarbashe.ir

احراز هویت

Authorization: Bearer <access_token>

Bearer Access Token

برای endpointهای خصوصی API بازارباشه باید از توکن دسترسی ساخته‌شده در پنل توسعه‌دهندگان استفاده شود. این توکن برای اتصال فروشگاه، ثبت محصول و همگام‌سازی محصولات سایت یا ووکامرس کاربرد دارد.

برای دریافت توکن به آدرس api.bazaarbashe.ir/panel مراجعه کنید یا از لینک پنل توسعه‌دهندگان در همین صفحه استفاده کنید.
endpointهای محصول برای فروشگاه وب‌سایتی یا فروشگاه کانالی دارای اتصال تأییدشده بله فعال هستند.
WooCommerce Plugin

افزونه ووکامرس بازارباشه

اگر فروشگاه شما با وردپرس و ووکامرس ساخته شده، می‌توانید با نصب افزونه ووکامرس بازارباشه محصولات را بین ووکامرس و بازارباشه همگام‌سازی کنید. بعد از نصب، عملیات افزودن، ویرایش و حذف محصول در ووکامرس از طریق API بازارباشه به‌صورت خودکار اعمال می‌شود.

  1. پلاگین را دانلود کنید و در پنل ادمین وردپرس نصب کنید.
  2. پلاگین را فعال کنید.
  3. Access Token را از پنل توسعه دهندگان بگیرید.
  4. Store ID را از مسیر حساب کاربری → مدیریت فروشگاه‌ها → کلیک روی آیکن کپی شناسه فروشگاه بردارید.
  5. Access Token و Store ID را در صفحه تنظیمات پلاگین وارد کنید.
  6. تست اتصال را بزنید و سپس همگام‌سازی را فعال کنید.

Get Current User Info

اطلاعات شخصی کاربر احراز‌شده را به‌همراه فروشگاه‌های تاییدشده‌ی او برمی‌گرداند.

GET /v1/users/me
curl -X GET "https://api.bazaarbashe.ir/v1/users/me" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
import requests

def call_api():
    response = requests.get(
        "https://api.bazaarbashe.ir/v1/users/me",
        headers={
            "Authorization": "Bearer YOUR_ACCESS_TOKEN",
            "Accept": "application/json",
        },
    )
    return response.json()
function callApi() {
    $response = file_get_contents('https://api.bazaarbashe.ir/v1/users/me', false, stream_context_create([
        'http' => [
            'method' => 'GET',
            'header' => "Authorization: Bearer YOUR_ACCESS_TOKEN\r\nAccept: application/json"
        ]
    ]));

    return json_decode($response, true);
}
async function callApi() {
          const response = await fetch("https://api.bazaarbashe.ir/v1/users/me", {
            method: "GET",
            headers: {
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "Accept": "application/json"
}
          });

          return await response.json();
        }
JSON
{
  "status": "success",
  "user": {
    "id": 100,
    "user_id": 900000001,
    "first_name": "کاربر",
    "last_name": "نمونه",
    "full_name": "کاربر نمونه",
    "username": "sample_user",
    "phone": "98912*******",
    "created_at": "2026-05-09T07:55:33.913719Z",
    "stores_count": 1,
    "stores": [
      {
        "id": 501000001,
        "store_type": "website",
        "name": "بازارباشه",
        "website_domain": "bazaarbashe.ir",
        "channel_id": "",
        "admin_chat_id": "sample_admin",
        "category": "پوشاک - عمده فروشی",
        "province": "تهران",
        "rating_average": 0.0,
        "rating_count": 0
      }
    ]
  }
}

Upload Product Images

برای آپلود تصویر محصول ابتدا فایل‌های محلی را با API آپلود فایل بازارباشه ارسال کنید، سپس شناسه‌های برگشتی را در create/update product استفاده کنید.

POST /v1/files
curl -X POST "https://api.bazaarbashe.ir/v1/files" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -F "file=@/path/to/image.jpg"
import requests

def upload_file():
    response = requests.post(
        "https://api.bazaarbashe.ir/v1/files",
        headers={"Authorization": "Bearer YOUR_ACCESS_TOKEN"},
        files={"file": open("/path/to/image.jpg", "rb")},
    )
    return response.json()
function uploadFile() {
    $response = file_get_contents('https://api.bazaarbashe.ir/v1/files', false, stream_context_create([
        'http' => [
            'method' => 'POST',
            'header' => "Authorization: Bearer YOUR_ACCESS_TOKEN\r\n",
            'content' => ''
        ]
    ]));

    return json_decode($response, true);
}
async function uploadFile(file) {
  const formData = new FormData();
  formData.append("file", file);

  const response = await fetch("https://api.bazaarbashe.ir/v1/files", {
    method: "POST",
    headers: { Authorization: "Bearer YOUR_ACCESS_TOKEN" },
    body: formData
  });

  return await response.json();
}
JSON
{
  "id": "238300331",
  "file_name": "image.jpg",
  "path": "https://storage.bazaarbashe.ir/storage/uploads/image.jpg",
  "mime_type": "image/jpeg",
  "size": 102400,
  "created_at": "2026-06-11T12:30:00Z",
  "creator_user_id": 900000001
}
حداکثر حجم هر فایل 25 مگابایت است.
برای هر محصول حداکثر 10 تصویر پشتیبانی می‌شود.

Get Vendor Products

فقط آرایه محصولات فروشگاه مجاز متعلق به همان توکن را برمی‌گرداند.

GET /v1/vendors/{vendor_id}/products
curl -X GET "https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
import requests

def call_api():
    response = requests.get(
        "https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products",
        headers={
            "Authorization": "Bearer YOUR_ACCESS_TOKEN",
            "Accept": "application/json",
        },
    )
    return response.json()
function callApi() {
    $response = file_get_contents('https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products', false, stream_context_create([
        'http' => [
            'method' => 'GET',
            'header' => "Authorization: Bearer YOUR_ACCESS_TOKEN\r\nAccept: application/json"
        ]
    ]));

    return json_decode($response, true);
}
async function callApi() {
          const response = await fetch("https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products", {
            method: "GET",
            headers: {
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "Accept": "application/json"
}
          });

          return await response.json();
        }
JSON
[
  {
    "id": 41,
    "product_id": 12,
    "product_name": "تیشرت",
    "product_price": "250000",
    "product_description": "Short product description",
    "product_url": "https://bazaarbashe.ir/p/12/501000001/900000001/tshirt",
    "external_product_url": "https://example.com/products/test-product",
    "has_discount": false,
    "discount_percent": 0,
    "product_image": 81,
    "product_images": [81, 82],
    "created_at": "2026-06-11T12:30:00Z"
  }
]

Create Product

برای ثبت محصول با API بازارباشه ابتدا تصاویر محلی را با `POST /v1/files` آپلود کنید، سپس شناسه فایل‌ها را داخل `product_images` بفرستید.

POST /vendors/{vendor_id_or_vendor_url}/products
curl -X POST "https://api.bazaarbashe.ir/vendors/YOUR_VENDOR_ID_OR_URL/products" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"product_name": "Sample product", "product_price": "250000", "product_description": "Short product description", "product_link": "https://example.com/products/sample-product", "has_discount": false, "discount_percent": 0, "product_images": [238300331, 238300332]}'
import requests

    def call_api():
        response = requests.post(
            "https://api.bazaarbashe.ir/vendors/YOUR_VENDOR_ID_OR_URL/products",
            headers={
                "Authorization": "Bearer YOUR_ACCESS_TOKEN",
                "Accept": "application/json",
            },
json={
  "product_name": "Sample product",
  "product_price": "250000",
  "product_description": "Short product description",
  "product_link": "https://example.com/products/sample-product",
  "has_discount": false,
  "discount_percent": 0,
  "product_images": [
    238300331,
    238300332
  ]
},
        )
        return response.json()
function callApi() {
        $response = file_get_contents('https://api.bazaarbashe.ir/vendors/YOUR_VENDOR_ID_OR_URL/products', false, stream_context_create([
            'http' => [
                'method' => 'POST',
                'header' => "Authorization: Bearer YOUR_ACCESS_TOKEN\r\nContent-Type: application/json\r\nAccept: application/json",
                'content' => json_encode({
    "product_name": "Sample product",
    "product_price": "250000",
    "product_description": "Short product description",
    "product_link": "https://example.com/products/sample-product",
    "has_discount": false,
    "discount_percent": 0,
    "product_images": [
        238300331,
        238300332
    ]
})
            ]
        ]));

        return json_decode($response, true);
    }
async function callApi() {
          const response = await fetch("https://api.bazaarbashe.ir/vendors/YOUR_VENDOR_ID_OR_URL/products", {
            method: "POST",
            headers: {
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "Accept": "application/json",
  "Content-Type": "application/json"
},
body: JSON.stringify({
  "product_name": "Sample product",
  "product_price": "250000",
  "product_description": "Short product description",
  "product_link": "https://example.com/products/sample-product",
  "has_discount": false,
  "discount_percent": 0,
  "product_images": [
    238300331,
    238300332
  ]
})
          });

          return await response.json();
        }
JSON
{
  "status": "success",
  "message": "محصول با موفقیت اضافه شد",
  "product_id": 12,
  "product_url": "https://bazaarbashe.ir/p/12/501000001/900000001/tshirt"
}
حداکثر طول product_name برابر 120 کاراکتر، product_price برابر 32 کاراکتر، product_description برابر 3000 کاراکتر و product_link برابر 2048 کاراکتر است.
product_images حداکثر 10 شناسه فایل را می‌پذیرد و داده‌ها بدون کوتاه‌سازی خودکار validate می‌شوند.

Update Product

ویرایش محصول با همان payload ایجاد محصول انجام می‌شود. اگر تصاویر جدید محلی دارید، ابتدا upload کنید و شناسه‌ها را بفرستید.

PATCH /v1/vendors/{vendor_id}/products/{product_id}
curl -X PATCH "https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"product_name": "Updated product", "product_price": "300000", "product_description": "Updated description", "product_link": "https://example.com/products/updated-product", "has_discount": false, "discount_percent": 0, "product_images": [238300333]}'
import requests

    def call_api():
        response = requests.patch(
            "https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID",
            headers={
                "Authorization": "Bearer YOUR_ACCESS_TOKEN",
                "Accept": "application/json",
            },
json={
  "product_name": "Updated product",
  "product_price": "300000",
  "product_description": "Updated description",
  "product_link": "https://example.com/products/updated-product",
  "has_discount": false,
  "discount_percent": 0,
  "product_images": [
    238300333
  ]
},
        )
        return response.json()
function callApi() {
        $response = file_get_contents('https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID', false, stream_context_create([
            'http' => [
                'method' => 'PATCH',
                'header' => "Authorization: Bearer YOUR_ACCESS_TOKEN\r\nContent-Type: application/json\r\nAccept: application/json",
                'content' => json_encode({
    "product_name": "Updated product",
    "product_price": "300000",
    "product_description": "Updated description",
    "product_link": "https://example.com/products/updated-product",
    "has_discount": false,
    "discount_percent": 0,
    "product_images": [
        238300333
    ]
})
            ]
        ]));

        return json_decode($response, true);
    }
async function callApi() {
          const response = await fetch("https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID", {
            method: "PATCH",
            headers: {
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "Accept": "application/json",
  "Content-Type": "application/json"
},
body: JSON.stringify({
  "product_name": "Updated product",
  "product_price": "300000",
  "product_description": "Updated description",
  "product_link": "https://example.com/products/updated-product",
  "has_discount": false,
  "discount_percent": 0,
  "product_images": [
    238300333
  ]
})
          });

          return await response.json();
        }
JSON
{
  "status": "success",
  "message": "محصول با موفقیت بروزرسانی شد",
  "product_id": 12,
  "product_url": "https://bazaarbashe.ir/p/12/501000001/900000001/updated-product"
}
حداکثر طول فیلدها مانند ایجاد محصول است: نام 120، قیمت 32، توضیحات 3000 و لینک 2048 کاراکتر.
در صورت عبور از محدودیت‌ها API پیام validation فارسی و status 400 برمی‌گرداند.

Delete Product

محصول مشخص‌شده را به‌صورت دائمی حذف می‌کند.

DELETE /v1/vendors/{vendor_id}/products/{product_id}
curl -X DELETE "https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Accept: application/json"
import requests

def call_api():
    response = requests.delete(
        "https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID",
        headers={
            "Authorization": "Bearer YOUR_ACCESS_TOKEN",
            "Accept": "application/json",
        },
    )
    return response.json()
function callApi() {
    $response = file_get_contents('https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID', false, stream_context_create([
        'http' => [
            'method' => 'DELETE',
            'header' => "Authorization: Bearer YOUR_ACCESS_TOKEN\r\nAccept: application/json"
        ]
    ]));

    return json_decode($response, true);
}
async function callApi() {
          const response = await fetch("https://api.bazaarbashe.ir/v1/vendors/YOUR_VENDOR_ID/products/YOUR_PRODUCT_ID", {
            method: "DELETE",
            headers: {
  "Authorization": "Bearer YOUR_ACCESS_TOKEN",
  "Accept": "application/json"
}
          });

          return await response.json();
        }
JSON
{
  "status": "success",
  "message": "محصول با موفقیت حذف شد",
  "product_id": 12
}