AutoParts Pro
Browse PartsRequest QuoteServicesFor Business
AutoParts Pro

AutoParts Pro connects customers, suppliers, garages, and fleets through one trusted marketplace for auto parts and vehicle services across the UAE.

Quick Links

  • Browse Parts
  • Request Quote
  • Services
  • For Business
  • Developer API

Support

  • Contact Number: +971585008555
  • info@daleeldealz.com
  • Address: Abu Dhabi, Abu Dhabi 147712
© 2026 DALEEL DEALZ ADVERTISING SERVICES - SOLE PROPRIETORSHIP L.L.C.Privacy PolicyTerms of servicesCookies settings
Developer API documentation

Role-wise APIs for Garage, Fleet, and Supplier workflows.

Click a role tab, then follow each API card in order. Every card explains what the API is for, the exact endpoint, validation rules, and the body for that specific method.

Garage APIs Fleet APIs Supplier APIs
Developer API-key auth

Use for `/api/v1/developer/*` routes.

{
  "baseUrl": "https://websitedesignersdubai.ae",
  "headers": {
    "Authorization": "Bearer app_live_xxx",
    "Content-Type": "application/json"
  }
}

Dashboard-auth APIs use the logged-in dashboard session, not a Developer API key.

Access rules

Backend verifies role, ownership, plan, limits, and API scopes.

Do not rely on frontend hiding for authorization.

Developer APIs are for external backend integrations. RFQ/order routes shown as dashboard-auth require logged-in Fleet or Supplier sessions.

Garage APIs

Profile, services, and appointments for a garage account.

Current access

account.profile.*, garage.services.*, garage.bookings.*

Profile update

Use this first so your garage information is complete before services and appointments go live.

garageNameworkingDaysworkingHoursworkingHoursByDayaddresscountrystatecityjobCompletedNumberyearsExperienceresponseTimecertificationsabout
GET/api/v1/developer/account

Read the current editable garage profile fields.

Rules

  • Use this before PATCH if your system only updates changed fields.

Request body

{
  "requestBody": "No request body"
}
PATCH/api/v1/developer/account

Update garage profile fields. Send only the fields that changed.

Rules

  • Email, mobile verification, documents, logo, and gallery stay in dashboard settings.

Request body

{
  "garageName": "Rapid Fix Garage",
  "address": "Al Quoz Industrial Area 3",
  "country": "United Arab Emirates",
  "state": "Dubai",
  "city": "Dubai",
  "responseTime": "Within 2 hours",
  "yearsExperience": 8,
  "about": "German, Japanese, and commercial fleet service specialist."
}
Services create, edit, delete

Publish services that customers can book. Create/edit bodies should not send status from this docs flow; delete removes the service from booking selection.

GET/api/v1/developer/garage/services

List active garage services and copy service ids for edits, deletes, or appointments.

Rules

  • Response includes service id, public id, price, duration, bookings count, and status.

Request body

{
  "requestBody": "No request body"
}
POST/api/v1/developer/garage/services

Create one garage service.

Rules

  • Do not send status in create body.
  • Plan service limits are checked before create.

Request body

{
  "name": "Brake inspection and pad replacement",
  "category": "Brake System",
  "durationMinutes": 90,
  "price": 299,
  "currency": "AED"
}
PATCH/api/v1/developer/garage/services/{id}

Edit an existing garage service by id.

Rules

  • Send only changed fields.
  • Do not send status in edit body from this integration flow.

Request body

{
  "name": "Brake inspection and front pad replacement",
  "category": "Brake System",
  "durationMinutes": 105,
  "price": 349,
  "currency": "AED"
}
DELETE/api/v1/developer/garage/services/{id}

Delete a service that should no longer be bookable.

Rules

  • Use the service id from the GET services response.

Request body

{
  "requestBody": "No request body"
}
Appointments check, create, update

Use this for offline/customer appointments created through a garage integration.

GET/api/v1/developer/garage/bookings

Check all garage appointments and their current status.

Rules

  • Use serviceId and booking ids from this response for update flows.

Request body

{
  "requestBody": "No request body"
}
POST/api/v1/developer/garage/bookings

Create an appointment in a garage slot.

Rules

  • bookingDate must be YYYY-MM-DD.
  • bookingTime must be h:mm AM/PM and only 00, 15, 30, or 45 minutes.
  • Backend rejects closed days and times outside configured garage opening hours.
  • If 10:00 is booked, 10:10 is invalid because it is not a 15-minute slot and overlaps the 10:00 slot window.

Request body

{
  "serviceId": "service_123",
  "customerName": "Arman Sheikh",
  "customerEmail": "arman@example.com",
  "customerPhone": "+971501234567",
  "vehicleYear": 2021,
  "vehicleMake": "Toyota",
  "vehicleModel": "Camry",
  "vehicleVin": "1HGCM82633A004352",
  "bookingDate": "2026-09-10",
  "bookingTime": "10:30 AM",
  "notes": "Customer reported brake noise."
}
PATCH/api/v1/developer/garage/bookings/{id}

Update appointment status after garage action.

Rules

  • Allowed statuses: pending, confirmed, completed, cancelled.
  • Completion can require completionOtp when the booking requires customer confirmation.

Request body

{
  "status": "confirmed"
}
Fleet APIs

Profile, vehicles, RFQs, quote comparison, and bid acceptance for fleet accounts.

Current access

account.profile.*, fleet.vehicles.* plus dashboard-auth RFQ/order actions

Profile update

Keep fleet company and address details updated before creating RFQs.

companyNamefirstNamelastNameaddressLine1addressLine2citystatecountry
GET/api/v1/developer/account

Read fleet profile fields.

Rules

  • Use before PATCH to avoid overwriting fields with stale values.

Request body

{
  "requestBody": "No request body"
}
PATCH/api/v1/developer/account

Update fleet profile fields.

Rules

  • Verified email and mobile remain dashboard-controlled.

Request body

{
  "companyName": "Metro Cold Chain Fleet",
  "firstName": "Amit",
  "lastName": "Verma",
  "addressLine1": "Warehouse 14, Logistics District",
  "city": "Dubai",
  "state": "Dubai",
  "country": "United Arab Emirates"
}
Vehicles create, edit, delete

Sync fleet vehicles so RFQs can use saved vehicle ids and VINs.

GET/api/v1/developer/fleet/vehicles?page=1&pageSize=10

List saved fleet vehicles.

Rules

  • Use returned id as fleetVehicleId when a single vehicle RFQ is created.

Request body

{
  "requestBody": "No request body"
}
POST/api/v1/developer/fleet/vehicles

Create one fleet vehicle.

Rules

  • Do not send status in create body from this docs flow.
  • VIN must be unique in the fleet.

Request body

{
  "vehicleName": "Delivery Van 12",
  "vin": "1FTBR1C82RKA12345",
  "mileage": 48200,
  "driver": "Ravi Sharma",
  "year": 2024,
  "make": "Ford",
  "model": "Transit",
  "trim": "Cargo",
  "isPrimary": false
}
PATCH/api/v1/developer/fleet/vehicles/{id}

Edit mileage, driver, or vehicle details.

Rules

  • Send only changed fields.
  • Do not send status in edit body from this docs flow.

Request body

{
  "mileage": 50120,
  "driver": "Arjun Mehta",
  "vehicleName": "Delivery Van 12 - Route B",
  "isPrimary": false
}
DELETE/api/v1/developer/fleet/vehicles/{id}

Delete a vehicle from the fleet record.

Rules

  • Use the vehicle id from the vehicle list response.

Request body

{
  "requestBody": "No request body"
}
RFQ create, single view, compare, accept

RFQ routes are dashboard-auth APIs today. The flow is: create RFQ, list RFQs, open one RFQ by id, wait for ranked bids, accept one bid id.

POST/api/v1/rfqs

Create a multi-part fleet RFQ. Send multipart/form-data with a payload JSON field.

Rules

  • One RFQ supports up to 100 parts.
  • Each part can have its own vehicleVin.

Request body

{
  "payload": {
    "source": "fleet",
    "fleetVehicleId": "veh_123_if_single_vehicle",
    "projectName": "Q3 refrigerated van maintenance parts",
    "description": "Brake and cooling parts for multiple vehicles.",
    "responseDeadline": "2026-09-15T23:59:59.000Z",
    "deliveryRequirement": "Standard Delivery",
    "paymentTerms": "Net 30",
    "companyName": "Metro Cold Chain Fleet",
    "contactName": "Amit Verma",
    "email": "fleet@example.com",
    "phone": "+971501234567",
    "vehicle": {
      "vin": "1FTBR1C82RKA12345",
      "year": 2024,
      "make": "Ford",
      "model": "Transit"
    },
    "parts": [
      {
        "vehicleVin": "1FTBR1C82RKA12345",
        "partName": "Front brake pad set",
        "partNumber": "04465-33471",
        "quantity": 2,
        "targetPrice": "185.50",
        "notes": "OEM or equivalent accepted"
      },
      {
        "vehicleVin": "WDBUF56X78B123456",
        "partName": "Air intake assembly",
        "partNumber": "A2710900382",
        "quantity": 1,
        "targetPrice": "900.00",
        "notes": "New or remanufactured only"
      }
    ]
  }
}
GET/api/v1/rfqs?page=1&pageSize=20

List fleet RFQs and get each rfq.id.

Rules

  • The list response includes parts and visible ranked bids when they are ready.

Request body

{
  "requestBody": "No request body"
}
GET/api/v1/rfqs/{id}

Open one RFQ by id and see which suppliers quoted it.

Rules

  • Supplier bids become visible after the ranking window, currently around 30 minutes.
  • Each returned bid has an id used for accept.

Request body

{
  "requestBody": "No request body"
}
POST/api/v1/rfqs/{id}/bids/{bidId}/accept

Accept one supplier bid and create the order.

Rules

  • If addressId is blank, backend uses the default delivery address.
  • Accepting one bid rejects other submitted bids for the RFQ.

Request body

{
  "addressId": "addr_123_delivery_location_optional"
}
Supplier APIs

Profile, single-part upload/edit, RFQ quoting, received orders, and proof of delivery.

Current access

account.profile.*, supplier.inventory.* plus dashboard-auth RFQ/order actions

Profile update

Update supplier business and contact details before inventory or quote work.

companyNamefirstNamelastNamecontactPersondesignationaddressLine1addressLine2citystatecountry
GET/api/v1/developer/account

Read supplier profile fields.

Rules

  • Use before PATCH if you only sync changed fields.

Request body

{
  "requestBody": "No request body"
}
PATCH/api/v1/developer/account

Update supplier profile fields.

Rules

  • Banking, documents, verification, and compliance stay in dashboard settings.

Request body

{
  "companyName": "Prime Auto Spares LLC",
  "contactPerson": "Sara Khan",
  "designation": "Sales Manager",
  "addressLine1": "Spare Parts Market, Shop 22",
  "city": "Sharjah",
  "state": "Sharjah",
  "country": "United Arab Emirates"
}
Single part upload and edit

Use the full product-master body when uploading one detailed supplier part. Edit uses the same structure or offer-update fields.

GET/api/v1/developer/supplier/parts?page=1&pageSize=10&status=mapped

List supplier parts by mapping status and search query.

Rules

  • Use returned id for edit.

Request body

{
  "requestBody": "No request body"
}
POST/api/v1/developer/supplier/parts

Upload one complete supplier product/part.

Rules

  • This body supports product identity, category, brand, attributes, vehicle fitment, pricing, inventory, images, documents, cross references, bundle, shipping, compliance, and marketplace settings.
  • Supplier catalog plan limits are checked before create.

Request body

{
  "mode": "product_master_form",
  "identity": {
    "sku": "SKU-BRK-04465",
    "productName": "Front Brake Pad Set",
    "shortDescription": "Front brake pads for Toyota fleet vehicles",
    "longDescription": "OEM quality ceramic brake pad set.",
    "mpn": "04465-33471",
    "status": "Active",
    "grade": "A",
    "condition": "New"
  },
  "category": {
    "name": "Brake System",
    "parentId": null
  },
  "brand": {
    "name": "Toyota Genuine",
    "productCategories": [
      "Brake System"
    ],
    "tier": "OEM"
  },
  "attributes": {
    "name": "Material",
    "value": "Ceramic",
    "detailed": "Low dust ceramic compound"
  },
  "vehicle": {
    "make": "Toyota",
    "model": "Camry",
    "yearStart": 2018,
    "yearEnd": 2024,
    "engine": "2.5L",
    "trim": "All",
    "driveType": "FWD",
    "notes": "Front axle"
  },
  "pricing": {
    "basePrice": 199,
    "discountPrice": 185.5,
    "currency": "AED",
    "taxClass": "standard",
    "vat": "5",
    "maxRetailPrice": 230,
    "wholesaleDistributorPrice": 170,
    "fleetPrice": 175
  },
  "inventory": {
    "warehouseId": "main-warehouse",
    "quantity": 18,
    "leadTime": "2 days",
    "lowStockThreshold": 3
  },
  "images": {
    "primaryUrl": "https://example.com/brake-pad.jpg",
    "galleryUrls": [
      "https://example.com/brake-pad-side.jpg"
    ]
  },
  "document": {
    "type": "spec_sheet",
    "url": "https://example.com/spec.pdf"
  },
  "crossReferences": {
    "oemNumber": "04465-33471",
    "oemSupersessionNumbers": [
      "04465-33470"
    ],
    "competitorPartNumber": "D1210",
    "competitorBrandName": "Aftermarket Pro",
    "hsCode": "870830"
  },
  "bundle": {
    "componentSku": null,
    "quantityInBundle": null,
    "parentBundleSku": null,
    "quantityAsComponent": null
  },
  "shipping": {
    "weightKg": 2.4,
    "lengthCm": 24,
    "widthCm": 18,
    "heightCm": 8,
    "hsCode": "870830",
    "countryOfOrigin": "Japan"
  },
  "compliance": {
    "warrantyMonths": 12,
    "certification": "ISO 9001"
  },
  "marketplace": {
    "allowBackorders": false,
    "maxOrderQuantity": 20,
    "isActive": true
  }
}
PATCH/api/v1/developer/supplier/parts/{id}

Edit the uploaded part, including status, pricing, stock, condition, descriptions, and marketplace fields.

Rules

  • Use the part id from the list response.
  • Send either the same product_master_form structure or offer-update fields.

Request body

{
  "vendorSku": "SKU-BRK-04465",
  "productName": "Front Brake Pad Set",
  "shortDescription": "Updated front brake pad listing",
  "mpn": "04465-33471",
  "status": "Active",
  "grade": "A",
  "condition": "New",
  "category": "Brake System",
  "basePrice": 199,
  "discountPrice": 179,
  "currency": "AED",
  "stock": 12,
  "price": 179,
  "fleetPrice": 170
}
RFQ quote submit

Supplier users list RFQs, open one RFQ, then submit a quote against requested part ids.

GET/api/v1/rfqs?page=1&pageSize=20

List open RFQs available to quote.

Rules

  • Supplier response shows requested parts and your existing bid if present.

Request body

{
  "requestBody": "No request body"
}
GET/api/v1/rfqs/{id}

Open one RFQ before quoting.

Rules

  • Copy each requested part id into quote items as rfqPartId.

Request body

{
  "requestBody": "No request body"
}
POST/api/v1/rfqs/{id}/bids

Submit one supplier quote for one or more RFQ parts.

Rules

  • Each item needs rfqPartId, unitPrice, partType, and deliveryOption.
  • Delivery options: 24_hours, 48_hours, 72_hours, one_month, more_than_one_month.
  • partType examples: New, Used, Refurbished, Remanufactured, Salvage.

Request body

{
  "items": [
    {
      "rfqPartId": "rfq_part_123",
      "unitPrice": "172.25",
      "partType": "New",
      "deliveryOption": "48_hours"
    },
    {
      "rfqPartId": "rfq_part_456",
      "unitPrice": "820.00",
      "partType": "Remanufactured",
      "deliveryOption": "72_hours"
    }
  ],
  "validUntil": "2026-09-14",
  "notes": "All items are available from UAE stock."
}
Orders received and delivery proof

Do not send arbitrary order status. Supplier order status moves through specific actions: confirm received order, then submit proof for delivered items.

GET/api/v1/orders?page=1&pageSize=10&status=pending

List orders received by the supplier dashboard account.

Rules

  • Use order.id and item ids from this response for confirm/proof flows.

Request body

{
  "requestBody": "No request body"
}
PATCH/api/v1/supplier/orders/{id}

Confirm a paid pending order received by the supplier.

Rules

  • No custom status body is accepted here.
  • Backend sets status to confirmed and calculates expected delivery from quoted delivery options.

Request body

{
  "requestBody": "No request body"
}
POST/api/v1/supplier/orders/{id}

Submit proof of delivery for one or more order items.

Rules

  • Send multipart/form-data.
  • proof must be JPG, PNG, or WebP up to 5 MB.
  • If all items are delivered, backend marks order delivered; otherwise it marks processing.

Request body

{
  "proof": "delivery-photo.jpg",
  "itemIds": "[\"order_item_123\",\"order_item_456\"]",
  "recipientName": "Amit Verma",
  "note": "Delivered to warehouse security desk."
}
GET/api/v1/orders/{id}/proof?itemId=order_item_123

Download/view submitted proof of delivery for an order item.

Rules

  • Returns a short-lived signed proof URL when the requester owns the order.

Request body

{
  "requestBody": "No request body"
}

Error handling

Use one response handling pattern across Garage, Fleet, and Supplier integrations.

StatusMeaningAction
400Bad requestBody is missing, invalid, or failed validation.
401UnauthorizedMissing session or API key.
403ForbiddenRole, ownership, plan, or scope does not allow this action.
404Not foundThe requested record does not exist for this account.
429Rate limitedToo many requests. Retry after the limit resets.