Getting Started with Bazaara APIs

Bazaara is an API-first, multi-vendor e-commerce SaaS platform that handles custom storefront transactions, buyer sessions, and cart checkouts via standard REST endpoints.

[!NOTE]
API-First Architecture: While developers can build custom frontends using these REST endpoints, merchants will soon also be able to build storefront pages visually using our upcoming Drag & Drop Storefront Builder, which consumes this exact same API layer.


1. Core Architecture Concepts

  • Base URL: https://api.bazaara.store/api/v1 (routes prefixed under /api/v1 handle public storefront capabilities).
  • Store Scoping: Every API request is scoped to a specific storefront using the :storeId URL parameter.
  • Session Formats:
    • Customers (Auth): Secured using a standard Bearer <token> inside the Authorization header.
    • Guests (Cart): Tracked using a custom X-Guest-Token UUID header returned by the server on first interaction. Storefronts must save this token in local storage and forward it in subsequent requests to persist guest carts.

2. Locating your Store ID

  1. Log in to the Bazaara Seller Portal.
  2. Complete the onboarding wizard (profile, bank payouts, confirmation).
  3. The store will be instantly approved.
  4. Retrieve your Store ID (UUID) from your dashboard settings panel or store onboarding status query. This ID scopes all storefront queries.

3. Quick Diagnostics Endpoint

You can test connectivity to Bazaara backend using curl or any client.

curl -X GET https://api.bazaara.store/
fetch('https://api.bazaara.store/')
  .then(res => res.json())
  .then(data => console.log(data));
import requests

response = requests.get('https://api.bazaara.store/')
print(response.json())
use serde_json::Value;

#[tokio::main]
async fn main() -> Result<(), reqwest::Error> {
    let res: Value = reqwest::get("https://api.bazaara.store/")
        .await?
        .json()
        .await?;
    println!("{:#?}", res);
    Ok(())
}