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
- Sign up free and finish your KYC.
- Ask us for API access on WhatsApp or from the Contact page.
- Your key then shows in your account, under API.
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_stock | Sell freely. |
low | Fewer than 5 pieces left. Sell, but expect it to run out. |
out | Do 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_key | No Authorization header. |
401 invalid_key | Key not recognised. Check for spaces; regenerate if unsure. |
402 subscription_expired | Your plan has ended. Renew on the API page; the same key works again. |
403 key_disabled | API access is off for your account. Talk to us. |
404 not_found | SKU is not live. |
429 rate_limited | Too many calls this minute. Wait for Retry-After seconds. |
5. A simple sync that works
- Once a day:
/products?updated_since=<yesterday>, update titles, prices, images. - Every minute:
/stock, update size availability on your site. - At checkout:
/stock/{sku}for that one SKU, and refuse the size if it isout. - Then place the order with us as you do today. The order API is the next release.

