API Reference

Stripe-style documentation with generated samples and deep linking.

Base prefix `/api`, URI versioning `/api/v1` and `/api/v2`, ValidationPipe (`whitelist: true`, `transform: true`), body limit 10mb.
Most endpoints require `User-Agent`, `fingerprint`, and `client`. Secure endpoints require `Authorization: Bearer <jwt>`.
POST/api/v1/auth/refresh-tokenPublic

Refresh access and refresh tokens using refresh JWT.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
Request Body
NameTypeRequiredDescription
tokenstringYesRefresh token JWT

Request Example

request.json
{"token":"<refresh_jwt>"}

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/auth/refresh-token" \
  -H "Content-Type: application/json" \
  -d '{
  "token": "<refresh_jwt>"
}'
response.json
{
  "success": true,
  "statusCode": 201,
  "message": "auth.token.refresh",
  "data": {
    "accessToken": "string",
    "refreshToken": "string"
  }
}

Error Codes

401 - Refresh token invalid or user not found
POST/api/v1/auth/loginPublic

SDK / One ID / phone login. Creates or updates user and returns tokens.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
Request Body
NameTypeRequiredDescription
phonestringNoUser phone (+998...)
pinstringNoPINFL
firstNamestringNoFirst name
lastNamestringNoLast name

Request Example

request.json
{"phone":"+998998263141","pin":"998998263141","firstName":"Ali","lastName":"Vohidov"}

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/auth/login" \
  -H "Content-Type: application/json" \
  -d '{
  "phone": "+998998263141",
  "pin": "998998263141",
  "firstName": "Ali",
  "lastName": "Vohidov"
}'
response.json
{
  "success": true,
  "statusCode": 201,
  "message": "Success",
  "data": {
    "accessToken": "string",
    "refreshToken": "string"
  }
}
GET/api/v1/auth/meJWT

Returns current authorized user profile.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
AuthorizationBearer JWTYesAccess token

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/auth/me" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {
    "firstName": "string",
    "lastName": "string",
    "phone": "string",
    "balance": 0
  }
}
POST/api/v1/users/limitJWT

Verifies user via My ID code and updates profile fields.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
AuthorizationBearer JWTYesAccess token
Request Body
NameTypeRequiredDescription
codestringYesAuthorization code from My ID

Request Example

request.json
{"code":"my_id_auth_code"}

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/users/limit" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -d '{
  "code": "my_id_auth_code"
}'
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
POST/api/v1/ordersJWT

Create order. Required fields depend on paymentTypeId.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
AuthorizationBearer JWTYesAccess token
Request Body
NameTypeRequiredDescription
carIdstringYesCar ID
branchIdstringYesBranch ID
regionIdstringYesRegion ID
paymentTypeIdEPaymentTypeYesPayment type slug
modificationIdstringYesModification ID
colorIdstringYesColor ID
pricenumberYesPrice in sums

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/orders" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -d '{}'
response.json
{
  "success": true,
  "statusCode": 201,
  "message": "Success",
  "data": {
    "_id": "string",
    "price": 0,
    "brandId": "string"
  }
}
GET/api/v1/ordersJWT

List current user orders.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
AuthorizationBearer JWTYesAccess token

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/orders" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {
    "items": [
      {
        "contractNumber": "string",
        "statusSlug": "NEW"
      }
    ],
    "total": 1
...
POST/api/v1/orders/apply-promo-codeJWT

Validate promo code and return promo details.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
AuthorizationBearer JWTYesAccess token
Request Body
NameTypeRequiredDescription
codestringYesPromo code string

Request Example

request.json
{"code":"PROMO2025"}

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/orders/apply-promo-code" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -d '{
  "code": "PROMO2025"
}'
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {
    "code": "PROMO2025",
    "discount": 10
  }
}
GET/api/v1/orders/:idJWT

Get order details by ID.

Headers
NameTypeRequiredDescription
User-AgentstringYesRequired globally by guard
fingerprintstringYesDevice fingerprint header
clientstringYesPartner hash / client key
accept-languageru | uz | enNoLocalization language (default: uz)
AuthorizationBearer JWTYesAccess token
Path Params
NameTypeRequiredDescription
idstringYesOrder MongoId

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/orders/<id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {
    "contractNumber": "string",
    "statusSlug": "IMPLEMENTED"
  }
}
GET/api/v1/payments/organizationsJWT

Organizations by brand and payment slug.

Query Params
NameTypeRequiredDescription
brandIdstringYesBrand ID
slugEPaymentTypeYesPayment type slug

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/payments/organizations" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "items": [
      {
        "_id": "string",
        "name": "string"
      }
    ],
    "total": 1
  }
...
GET/api/v1/payments/installmentJWT

Installment matrix for brand/payment/modification.

Query Params
NameTypeRequiredDescription
brandIdstringYesBrand ID
paymentTypeIdstringYesPayment type ID
modificationIdstringYesModification ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/payments/installment" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/payments/leasingJWT

Leasing programs by organization.

Query Params
NameTypeRequiredDescription
brandIdstringYesBrand ID
organizationIdstringYesOrganization ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/payments/leasing" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
POST/api/v1/payments/leasing/calculateJWT

Leasing monthly payment calculation.

Request Body
NameTypeRequiredDescription
leasingIdstringYesLeasing ID
carIdstringYesCar ID
modificationIdstringYesModification ID
loanTermIdstringYesLoan term ID
initialPaymentIdstringYesInitial payment ID
pricenumberYesCurrent car price

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/payments/leasing/calculate" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -d '{}'
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "monthlyPayment": 0,
    "totalCarPrice": 0
  }
}
GET/api/v1/payments/special-offersJWT

Special bank offers by car and modification.

Query Params
NameTypeRequiredDescription
carIdstringYesCar ID
modificationIdstringYesModification ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/payments/special-offers" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/payments/special-offers/leasingJWT

Special leasing offers by car and modification.

Query Params
NameTypeRequiredDescription
carIdstringYesCar ID
modificationIdstringYesModification ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/payments/special-offers/leasing" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/payments/special-offers/graphJWT

Detailed graph file and terms for selected special offer.

Query Params
NameTypeRequiredDescription
carIdstringYesCar ID
modificationIdstringYesModification ID
offerIdstringYesOffer ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/payments/special-offers/graph" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v2/payments/typesJWT

Available payment types by brand/modification.

Query Params
NameTypeRequiredDescription
modificationIdstringYesModification ID
brandIdstringYesBrand ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v2/payments/types" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v2/payments/banksPublic

Banks by car and modification.

Query Params
NameTypeRequiredDescription
brandIdstringYesBrand ID
carIdstringYesCar ID
modificationIdstringYesModification ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v2/payments/banks"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v2/payments/banks/income-typesPublic

Income types for selected bank.

Query Params
NameTypeRequiredDescription
bankIdstringYesBank ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v2/payments/banks/income-types"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v2/payments/banks/initial-paymentPublic

Initial payment options.

Query Params
NameTypeRequiredDescription
incomeTypeIdstringYesIncome type ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v2/payments/banks/initial-payment"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v2/payments/banks/loan-termsPublic

Loan term options.

Query Params
NameTypeRequiredDescription
initialPaymentIdstringYesInitial payment ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v2/payments/banks/loan-terms"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v2/payments/banks/refund-typesPublic

Refund types (annuity/differential).

Query Params
NameTypeRequiredDescription
loanTermIdstringYesLoan term ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v2/payments/banks/refund-types"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v2/payments/banks/calculatePublic

Final credit calculation with selected attributes.

Query Params
NameTypeRequiredDescription
bankIdstringYesBank ID
refundTypeIdstringYesRefund type ID
incomeTypeIdstringYesIncome type ID
loanTermIdstringYesLoan term ID
initialPaymentIdstringYesInitial payment ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v2/payments/banks/calculate"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/carsOptional JWT

Cars list with search/filter/sort/pagination.

Query Params
NameTypeRequiredDescription
brandsstringNoComma-separated IDs
bodyTypesstringNoComma-separated IDs
searchstringNoSearch text
sortstringNonew, price, -price, name, -name
limitnumberNoPage size
offsetnumberNoPagination offset

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/cars" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "items": [
      {
        "_id": "string",
        "name": "string",
        "priceFrom": 0
      }
    ],
    "total": 1
...
GET/api/v1/cars/:idOptional JWT

Full car details with modifications and colors.

Path Params
NameTypeRequiredDescription
idstringYesCar MongoId

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/cars/<id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/cars/:id/infoPublic

Marketing info blocks for a model.

Path Params
NameTypeRequiredDescription
idstringYesCar MongoId

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/cars/<id>/info"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/cars/:id/modificationsPublic

Technical options/specification sections by model.

Path Params
NameTypeRequiredDescription
idstringYesCar MongoId

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/cars/<id>/modifications"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/brandsPublic

Brand list with search and sort.

Query Params
NameTypeRequiredDescription
searchstringNoSearch string
sortstringNoSort mode

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/brands"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/brands/:idPublic

Single brand details.

Path Params
NameTypeRequiredDescription
idstringYesBrand MongoId

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/brands/<id>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/dictionaries/branch/regionsJWT

Regions with branch and car availability.

Query Params
NameTypeRequiredDescription
brandIdstringYesBrand ID
carIdstringYesCar ID
modificationIdstringYesModification ID
colorIdstringYesColor ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/dictionaries/branch/regions" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/dictionaries/branch/:idJWT

Branch details by ID.

Path Params
NameTypeRequiredDescription
idstringYesBranch ID

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/dictionaries/branch/<id>" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/dictionaries/contactsPublic

Company contacts.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/dictionaries/contacts"
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "phone": "+998 78 555 94 26",
    "tg": "https://t.me/urbandrive_bot"
  }
}
GET/api/v1/dictionaries/checkout-documentJWT

Checkout document link by locale.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/dictionaries/checkout-document" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/documentsPublic

List of public documents.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/documents"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/documents/offerPublic

Offer file link.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/documents/offer"
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "file": "https://..."
  }
}
GET/api/v1/documents/term-conditionsPublic

Privacy policy markdown file response.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/documents/term-conditions"
response.json
# Markdown response
Privacy policy content...
GET/api/v1/filters/bodiesPublic

Body type filters.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/filters/bodies"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/filters/powertrainsPublic

Powertrain filters.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/filters/powertrains"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/filters/allPublic

All catalog filters in one payload.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/filters/all"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/saved-carsPublic

Saved cars for current fingerprint.

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/saved-cars"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
PATCH/api/v1/saved-cars/:idPublic

Toggle save/remove for car.

Path Params
NameTypeRequiredDescription
idstringYesCar MongoId

Code Samples

curl
curl -X PATCH "https://api.urbandrive.uz/api/v1/saved-cars/<id>" \
  -H "Content-Type: application/json" \
  -d '{}'
response.json
{
  "success": true,
  "statusCode": 201,
  "message": "Saved car successfully",
  "data": {
    "status": "saved"
  }
}
GET/api/v1/transactions/check-cardJWT

Detect card type from PAN.

Query Params
NameTypeRequiredDescription
cardNumberstringYesCard PAN

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/transactions/check-card" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "type": "UZCARD"
  }
}
POST/api/v1/transactions/createJWT

Create transaction and send OTP.

Request Body
NameTypeRequiredDescription
amountnumberYesPayment amount
cardNumberstringYesCard number
expirystringYesMM/YY
cardTypeECardTypeYesCard network type
brandIdstringYesBrand ID
orderIdstringYesOrder ID

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/transactions/create" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -d '{}'
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "transactionId": 12345678
  }
}
POST/api/v1/transactions/applyJWT

Apply OTP to confirm transaction.

Request Body
NameTypeRequiredDescription
transactionIdnumberYesTransaction ID
otpnumberYesOTP code
amountnumberYesPayment amount
brandIdstringYesBrand ID
orderIdstringYesOrder ID

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/transactions/apply" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -d '{}'
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
POST/api/v1/transactions/resend-codeJWT

Resend OTP for transaction creation flow.

Request Body
NameTypeRequiredDescription
amountnumberYesPayment amount
cardNumberstringYesCard number

Code Samples

curl
curl -X POST "https://api.urbandrive.uz/api/v1/transactions/resend-code" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <ACCESS_TOKEN>" \
  -d '{}'
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "transactionId": 12345678
  }
}
GET/api/v1/transactions/historyJWT

Payment history for order.

Query Params
NameTypeRequiredDescription
orderIdstringYesOrder MongoId

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/transactions/history" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "message": "Success",
  "data": {}
}
GET/api/v1/order-logs/stepsJWT

Order status timeline steps.

Query Params
NameTypeRequiredDescription
orderIdstringYesOrder MongoId

Code Samples

curl
curl "https://api.urbandrive.uz/api/v1/order-logs/steps" \
  -H "Authorization: Bearer <ACCESS_TOKEN>"
response.json
{
  "success": true,
  "statusCode": 200,
  "data": {
    "items": [
      {
        "slug": "NEW",
        "isCurrent": true
      }
    ],
    "total": 1
  }
...