apiREST · OpenAPI 3.1 · 105 operations

D MALL ONLINE API reference

The same API as the original D MALL ONLINE, scoped to your private sandbox. Every operation id doubles as an MCP tool name.

Authentication

Send your personal API key with every request. Create keys under Account → API keys; each key works only on your own sandbox.

curl -H "Authorization: Bearer mbz_xxxxxxxxxxxxxxxx_xxxxxxxx…" \
     "https://dmall.online/api/v1/flights?origin=DEL&destination=BOM&date=2026-11-06"

The base URL is https://dmall.online. Paths, parameters, request bodies and responses are identical to the original D MALL ONLINE FastAPI service, so existing clients only need the new base URL and the Authorization header.

Errors & limits

  • Errors return {"detail": "…"} with a meaningful status: 404 not found, 409 conflict (for example insufficient funds or a booked slot), 422 validation errors (a list of {loc, msg} items, as in FastAPI).
  • 401 missing or invalid key · 403 read-only key used for a change, or account not approved · 429 rate limit exceeded (see Retry-After).
  • Each response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.
  • Request bodies are JSON (Content-Type: application/json), up to 64 KB.

Customers

Shared customer identity across all modules

GET/api/v1/customerslist_customers

List customers

qlimitoffset
POST/api/v1/customerscreate_customer

Create a customer

body: CustomerCreate
GET/api/v1/customers/by-emailget_customer_by_email

Look up a customer by email

email*
GET/api/v1/customers/{customer_id}get_customer

Get a customer

customer_id*
PATCH/api/v1/customers/{customer_id}update_customer

Update a customer

customer_id* body: CustomerUpdate
DELETE/api/v1/customers/{customer_id}delete_customer

Delete a customer

customer_id*

Bank

D MALL ONLINE Bank: accounts, transactions, transfers, cards and loans

GET/api/v1/bank/brancheslist_bank_branches

List bank branches · All D MALL ONLINE Bank branches with IFSC codes, optionally filtered by city.

city
GET/api/v1/bank/accountslist_bank_accounts

List a customer's bank accounts · Every account (savings, salary, current) held by the customer, with live balances.

customer_email*
POST/api/v1/bank/accountsopen_bank_account

Open a bank account

body: OpenAccountIn
GET/api/v1/bank/accounts/{account_number}get_bank_account

Get account details

account_number*
GET/api/v1/bank/accounts/{account_number}/balanceget_account_balance

Get account balance · Ledger and available balance (available includes any overdraft limit).

account_number*
GET/api/v1/bank/accounts/{account_number}/transactionslist_account_transactions

Get account statement · Transactions newest first, with filters for date range, type, category, channel, amount and free text.

account_number*from_dateto_datetxn_typecategorychannelmin_amountmax_amountqlimitoffset
GET/api/v1/bank/accounts/{account_number}/spending-summaryget_spending_summary

Spending by category · Totals spent and received over the last N days, broken down by category.

account_number*days
POST/api/v1/bank/accounts/{account_number}/depositdeposit_money

Deposit money

account_number* body: CashIn
POST/api/v1/bank/accounts/{account_number}/withdrawwithdraw_money

Withdraw money · Debit cash (ATM/branch). Fails with 409 if funds are insufficient.

account_number* body: CashIn
POST/api/v1/bank/transferstransfer_funds

Transfer funds · Send money to another D MALL ONLINE Bank account (`to_account`) or a saved beneficiary (`beneficiary_id`).

body: TransferIn
GET/api/v1/bank/beneficiarieslist_beneficiaries

List saved payees

customer_email*
POST/api/v1/bank/beneficiariesadd_beneficiary

Add a payee

body: BeneficiaryIn
DELETE/api/v1/bank/beneficiaries/{beneficiary_id}delete_beneficiary

Remove a payee

beneficiary_id*
GET/api/v1/bank/cardslist_cards

List debit and credit cards

customer_email*card_type
POST/api/v1/bank/cards/{card_id}/blockblock_card

Block a card · Temporarily block a lost or compromised card.

card_id*
POST/api/v1/bank/cards/{card_id}/unblockunblock_card

Unblock a card

card_id*
GET/api/v1/bank/loanslist_loans

List a customer's loans

customer_email*
GET/api/v1/bank/loans/{loan_number}get_loan

Get loan details

loan_number*
GET/api/v1/bank/customers/summaryget_customer_bank_summary

Customer's financial overview · One-call snapshot: balances across accounts, credit card dues, loans, EMIs and net position.

customer_email*

Shop

D MALL ONLINE Shop: products, cart and orders

GET/api/v1/shop/categorieslist_product_categories

List product categories

GET/api/v1/shop/brandslist_brands

List brands

category
GET/api/v1/shop/productssearch_products

Search products · Catalogue search with filters. `in_stock` limits results to products with units in any warehouse.

qcategorybrandsmin_pricemax_pricemin_ratingin_stocksort_bylimitoffset
POST/api/v1/shop/productscreate_product

Create a product

body: ProductCreate
GET/api/v1/shop/products/{product_ref}get_product

Get a product by id or SKU

product_ref*
PATCH/api/v1/shop/products/{product_id}update_product

Update a product

product_id* body: ProductUpdate
GET/api/v1/shop/couponslist_coupons

List active coupons

GET/api/v1/shop/cartget_cart

View cart

customer_email*
PUT/api/v1/shop/cart/itemsset_cart_item

Add, update or remove a cart item · Set the quantity of a product in the cart (0 removes it).

body: CartItemIn
POST/api/v1/shop/cart/checkoutcheckout_cart

Checkout cart · Place an order for everything in the cart, then empty it.

body: CheckoutIn
POST/api/v1/shop/ordersplace_order

Place an order · Buy specific products directly. Stock is allocated from one warehouse, preferring the shipping city.

body: OrderCreate
GET/api/v1/shop/orderslist_orders

List orders

customer_emailstatuslimitoffset
GET/api/v1/shop/orders/{order_number}get_order

Get / track an order · Full order detail including tracking history.

order_number*
POST/api/v1/shop/orders/{order_number}/cancelcancel_order

Cancel an order · Allowed before shipping. Restocks items and refunds prepaid orders.

order_number* body: ReasonIn
POST/api/v1/shop/orders/{order_number}/returnreturn_order

Return an order · Allowed within 10 days of delivery.

order_number* body: ReasonIn
POST/api/v1/shop/orders/{order_number}/advanceadvance_order_status

Advance fulfilment status · Operations tool: move PLACED → PACKED → SHIPPED → OUT_FOR_DELIVERY → DELIVERED.

order_number*

Inventory

Warehouses, stock levels, movements and purchase orders

GET/api/v1/inventory/warehouseslist_warehouses

List warehouses

GET/api/v1/inventory/summaryget_inventory_summary

Stock summary per warehouse · SKU count, units on hand, stock value at cost, low-stock lines and utilisation for each warehouse.

GET/api/v1/inventory/stocklist_stock_levels

Query stock levels

qwarehouse_codeproduct_idcategorylow_onlysort_bylimitoffset
GET/api/v1/inventory/low-stocklist_low_stock

Low-stock alerts · Lines at or below their reorder level. These are candidates for a purchase order.

warehouse_code
POST/api/v1/inventory/adjustadjust_stock

Adjust stock · Manual correction (cycle count, damage, shrinkage). Recorded as an ADJUSTMENT movement.

body: AdjustIn
POST/api/v1/inventory/transfertransfer_stock

Transfer stock between warehouses

body: TransferStockIn
GET/api/v1/inventory/movementslist_stock_movements

Stock movement ledger

product_idwarehouse_codemovement_typereferencelimitoffset
GET/api/v1/inventory/supplierslist_suppliers

List suppliers

GET/api/v1/inventory/purchase-orderslist_purchase_orders

List purchase orders

statuswarehouse_codelimitoffset
POST/api/v1/inventory/purchase-orderscreate_purchase_order

Raise a purchase order · Order stock from the product's supplier. The expected date follows the supplier's lead time.

body: PurchaseOrderIn
POST/api/v1/inventory/purchase-orders/{po_number}/receivereceive_purchase_order

Receive a purchase order · Mark goods received. Adds stock and records a RECEIPT movement.

po_number*
POST/api/v1/inventory/purchase-orders/{po_number}/cancelcancel_purchase_order

Cancel a purchase order

po_number*

Healthcare

D MALL ONLINE Health: hospitals, doctors, slots and appointments

GET/api/v1/healthcare/specializationslist_specializations

List specialities · Specialities with doctor counts and fee range, optionally within a city.

city
GET/api/v1/healthcare/hospitalslist_hospitals

List hospitals and clinics

city
GET/api/v1/healthcare/doctorssearch_doctors

Find doctors

cityspecializationqgendermax_feevideo_consultavailable_onmin_ratingsort_bylimitoffset
GET/api/v1/healthcare/doctors/{doctor_id}get_doctor

Get doctor profile

doctor_id*
GET/api/v1/healthcare/doctors/{doctor_id}/availabilityget_doctor_availability

Get free appointment slots · Free slots grouped by date. Book one with POST /healthcare/appointments using its slot id.

doctor_id*start_datedaysmode
POST/api/v1/healthcare/appointmentsbook_appointment

Book an appointment · Reserve a free slot for a patient. The fee depends on the slot mode (in-person or video).

body: AppointmentCreate
GET/api/v1/healthcare/appointmentslist_appointments

List appointments

customer_emaildoctor_idstatusupcoming_onlylimitoffset
GET/api/v1/healthcare/appointments/{appointment_ref}get_appointment

Get an appointment

appointment_ref*
POST/api/v1/healthcare/appointments/{appointment_ref}/cancelcancel_appointment

Cancel an appointment · Frees the slot. Full refund if cancelled 4+ hours before the visit, otherwise 50%.

appointment_ref*
POST/api/v1/healthcare/appointments/{appointment_ref}/reschedulereschedule_appointment

Reschedule an appointment · Move to another free slot with the same doctor.

appointment_ref* body: RescheduleIn

Flights

Airports, airlines, flight search and fare calendar

GET/api/v1/flights/airportslist_airports

List airports

country
GET/api/v1/flights/airlineslist_airlines

List airlines

GET/api/v1/flightssearch_flights

Search flights · Find flights with seats available in the requested cabin, priced per traveller.

origindestinationdatecabin_classpassengersairlinesmax_stopsmax_pricedepart_afterdepart_beforesort_bylimitoffset
POST/api/v1/flightscreate_flight

Create a flight

body: FlightCreate
GET/api/v1/flights/fare-calendarget_fare_calendar

Lowest fare per day

origin*destination*cabin_classdays
GET/api/v1/flights/{flight_id}get_flight

Get a flight

flight_id*
PATCH/api/v1/flights/{flight_id}update_flight

Update a flight

flight_id* body: FlightUpdate
DELETE/api/v1/flights/{flight_id}delete_flight

Delete a flight

flight_id*
PATCH/api/v1/flights/{flight_id}/cabins/{cabin_id}update_flight_cabin

Update cabin fare / inventory

flight_id*cabin_id* body: FlightCabinUpdate

Trains

Stations and train runs with class-wise availability

GET/api/v1/trains/stationslist_train_stations

List railway stations

GET/api/v1/trains/typeslist_train_types

List train types

GET/api/v1/trainssearch_trains

Search trains

origindestinationdateclass_codepassengerstrain_typesdepart_afterdepart_beforesort_bylimitoffset
POST/api/v1/trainscreate_train

Create a train run

body: TrainCreate
GET/api/v1/trains/{train_id}get_train

Get a train run

train_id*
PATCH/api/v1/trains/{train_id}update_train

Update a train run

train_id* body: TrainUpdate
DELETE/api/v1/trains/{train_id}delete_train

Delete a train run

train_id*

Buses

Intercity coaches and operators

GET/api/v1/buses/citieslist_bus_cities

List cities served by bus

GET/api/v1/buses/operatorslist_operators

List bus operators

GET/api/v1/busessearch_buses

Search buses

origindestinationdatepassengersacsleeperoperator_idsmax_pricedepart_afterdepart_beforesort_bylimitoffset
POST/api/v1/busescreate_bus

Create a bus departure

body: BusCreate
GET/api/v1/buses/{bus_id}get_bus

Get a bus

bus_id*
PATCH/api/v1/buses/{bus_id}update_bus

Update a bus departure

bus_id* body: BusUpdate
DELETE/api/v1/buses/{bus_id}delete_bus

Delete a bus departure

bus_id*

Hotels

Properties and room types

GET/api/v1/hotels/citieslist_hotel_destinations

Destinations with hotel counts

GET/api/v1/hotelssearch_hotels

Search hotels · Hotels with at least one room type that fits the party. `starting_price` reflects matching rooms only.

citycheck_incheck_outguestsroomsmin_starsmin_ratingmax_priceproperty_typesamenitiesfree_cancellationsort_bylimitoffset
POST/api/v1/hotelscreate_hotel

Create a hotel

body: HotelCreate
GET/api/v1/hotels/{hotel_id}get_hotel

Get a hotel with all room types

hotel_id*
PATCH/api/v1/hotels/{hotel_id}update_hotel

Update a hotel

hotel_id* body: HotelUpdate
DELETE/api/v1/hotels/{hotel_id}delete_hotel

Delete a hotel

hotel_id*
POST/api/v1/hotels/{hotel_id}/roomsadd_hotel_room

Add a room type

hotel_id* body: RoomTypeBase
PATCH/api/v1/hotels/{hotel_id}/rooms/{room_id}update_hotel_room

Update a room type

hotel_id*room_id* body: RoomTypeUpdate
DELETE/api/v1/hotels/{hotel_id}/rooms/{room_id}delete_hotel_room

Delete a room type

hotel_id*room_id*

Bookings

Create, retrieve and cancel travel bookings

GET/api/v1/bookingslist_travel_bookings

List bookings

emailbooking_typestatustravel_fromtravel_tolimitoffset
GET/api/v1/bookings/{booking_ref}get_travel_booking

Get a booking by reference

booking_ref*
POST/api/v1/bookings/flightsbook_flight

Book a flight

body: FlightBookingCreate
POST/api/v1/bookings/trainsbook_train

Book a train

body: TrainBookingCreate
POST/api/v1/bookings/busesbook_bus

Book a bus

body: BusBookingCreate
POST/api/v1/bookings/hotelsbook_hotel

Book a hotel

body: HotelBookingCreate
POST/api/v1/bookings/{booking_ref}/cancelcancel_travel_booking

Cancel a booking (refund per policy) · Releases inventory and computes the refund: ≥72h 90%, ≥24h 60%, ≥4h 25% (hotels: free ≥48h if refundable).

booking_ref*

Insights

Aggregated metrics

GET/api/v1/stats/overviewget_travel_overview

Dashboard KPIs, trends and top destinations

days
GET/api/v1/stats/platformget_platform_overview

Cross-module platform KPIs · Headline numbers for every D MALL ONLINE module: travel, bank, shop, inventory and healthcare.

GET/healthhealth_check

Liveness and database check