Developers

Indi Andaz API

HTTP API for Seller Portal, Partner App, Counter App, and related clients. This page is documentation. The API itself runs on a different host.

Base URL: https://prilix.indiandaz.com/api

Architecture

seller.indiandaz.com is the seller website (marketing + logged-in Seller Portal). prilix.indiandaz.com/api is the NestJS API. There is no invented frontend API.

  • Canonical OpenAPI: generated from controllers and DTOs, not a handwritten file.
  • Seller-domain /openapi.json: same-origin JSON copy of that document.
  • Errors under /api are JSON. The legacy string field error is unchanged.

Authentication

Seller login is mobile OTP (optional 4-digit PIN), not a password. Successful verify-otp returns JWT access and refresh tokens. Send the access token as Authorization: Bearer <token>.

Customer and admin auth live under /auth/* as well. Do not document or call admin-only routes from this page.

JSON errors

Unknown paths, validation failures, and unauthenticated calls under /api return application/json. Keep reading the NestJS string error(for example "Not Found"). Extra fields are additive.

{
  "statusCode": 404,
  "message": "Cannot GET /api/this-does-not-exist",
  "error": "Not Found",
  "code": "NOT_FOUND",
  "hint": "No route or resource exists at this path.",
  "status": 404,
  "errorDetail": {
    "code": "NOT_FOUND",
    "message": "Cannot GET /api/this-does-not-exist",
    "status": 404,
    "hint": "..."
  }
}

Rate limits

Auth OTP endpoints are limited (send-otp about 5 requests / 15 minutes per client, verify-otp about 10 / 15 minutes). Public storefront GETs and settings reads have higher per-minute caps. When limited, the API returns JSON 429. Honor Retry-After when present.

Example requests

These are real public or documented authenticated surfaces. Replace placeholders. Do not send secrets.

Health check (public)

Confirms the NestJS API is up. No authentication.

GET https://prilix.indiandaz.com/api/health

OpenAPI document (public)

Generated from live NestJS controllers via SwaggerModule.createDocument. Do not hand-write this spec.

GET https://prilix.indiandaz.com/api/openapi.json

Seller OTP start (public, rate-limited)

Sends a 6-digit OTP to a real Indian mobile. Do not post credentials, tokens, or real OTPs in tickets.

POST https://prilix.indiandaz.com/api/auth/seller/send-otp
Content-Type: application/json

{ "mobile": "98XXXXXXXX" }

Seller profile (authenticated)

Protected. Without a Bearer token this returns JSON 401, not HTML.

GET https://prilix.indiandaz.com/api/seller/me
Authorization: Bearer <access_token>

Selling on Indi Andaz?

Developers use the API. Shop owners start on the Seller Portal with a mobile OTP.