New arrivals Videos How it works Login
API docs

OnlineKurtis API v1

Read-only for now: products and live stock. Order placing comes next. Show our designs, prices and live stock on your own website.

How to get your API key

  1. Sign up free and finish your KYC.
  2. Ask us for API access on WhatsApp or from the Contact page.
  3. Your key then shows in your account, under API.
Sign up free Contact us

Have a Shopify store? You do not need the API. Use our Shopify Connector.

1. Basics

Base URL: https://www.onlinekurtis.com/api/v1. All responses are JSON. Every response has "ok": true or "ok": false with an error code and a plain message.

Send your key in the header on every call:

Authorization: Bearer ok_live_XXXXXXXXXXXXXXXXXXXXXXXX

Keep the key on your server. Never put it in a web page or app that customers download; anyone can read it there. If it leaks, press Regenerate on the API page and update your server.

Limit: 60 calls per minute. Over that you get 429 with a Retry-After header. Stock changes every few minutes, not every second, so pull it once a minute at most and cache it on your side.

2. Stock states

We never send stock counts. Each size has one of three states:

in_stockSell freely.
lowFewer than 5 pieces left. Sell, but expect it to run out.
outDo not sell. Hide the size or mark it sold out.

A product disappears from every list when we take it off the catalogue. If you stored it, treat a missing SKU as out.

3. Endpoints

GET /me

Checks your key. Returns your account name, plan end date and the list of endpoints.

curl https://www.onlinekurtis.com/api/v1/me \
  -H "Authorization: Bearer ok_live_..."

GET /products

The full live catalogue, 100 products a page. Optional page=2 and updated_since=2026-09-01T00:00:00Z (only products changed after that time, so a daily sync stays small).

{
  "ok": true, "page": 1, "per_page": 100, "total": 128, "pages": 2,
  "products": [
    {
      "sku": "OK-1043",
      "title": "Blue floral rayon kurti",
      "url": "https://www.onlinekurtis.com/product/blue-floral-rayon-kurti-ok-1043",
      "description": "...",
      "dropship_price": 625,
      "mrp": 1299,
      "weight_grams": 300,
      "badge": "new",
      "collections": ["Rayon kurtis", "Office wear"],
      "images": ["https://www.onlinekurtis.com/media/....webp", "..."],
      "sizes": [
        {"size": "M",  "stock": "in_stock"},
        {"size": "L",  "stock": "low"},
        {"size": "XL", "stock": "out"}
      ],
      "added_at": "2026-09-12T10:20:00+05:30",
      "updated_at": "2026-09-25T02:00:11+05:30"
    }
  ]
}

dropship_price is what you pay us per piece, in rupees, shipping extra by weight. mrp is the retail price we show on our own site; there is no price tag on the garment, so you are free to set your own selling price. added_at is when the design joined our catalogue, so you can run a "new arrivals" section; badge is the label we show for it (for example new), or null. Images are 1200 px wide; you may show them on your site.

GET /products/{sku}

One product, same shape. 404 if the SKU is not live.

GET /stock

Every live SKU with size states only, in one call. This is the one to poll. The answer is refreshed every 60 seconds on our side (as_of tells you when).

{
  "ok": true, "as_of": "2026-09-26T14:03:10+05:30", "count": 128, "cache_seconds": 60,
  "stock": [
    {"sku": "OK-1043", "sizes": [{"size": "M", "stock": "in_stock"}, {"size": "L", "stock": "low"}]},
    ...
  ]
}

GET /stock/{sku}

One SKU, live (no cache). Use it at the moment a customer checks out, before you accept their money.

4. Errors

401 missing_keyNo Authorization header.
401 invalid_keyKey not recognised. Check for spaces; regenerate if unsure.
402 subscription_expiredYour plan has ended. Renew on the API page; the same key works again.
403 key_disabledAPI access is off for your account. Talk to us.
404 not_foundSKU is not live.
429 rate_limitedToo many calls this minute. Wait for Retry-After seconds.

5. A simple sync that works

  1. Once a day: /products?updated_since=<yesterday>, update titles, prices, images.
  2. Every minute: /stock, update size availability on your site.
  3. At checkout: /stock/{sku} for that one SKU, and refuse the size if it is out.
  4. Then place the order with us as you do today. The order API is the next release.
Chat with us