Skip to content

Categories

The public catalogue of product categories the optimization endpoint accepts. Search by free text; pass the result's slug to POST /optimizations.

Authentication: not required — this endpoint is intentionally public so the docs picker and your build pipeline work without secrets. Authenticated requests are accepted too and count against your subscription's polling rate limit instead of the per-IP cap.

GET /api/v1/categories#

Query parameters#

ParamTypeDefaultNotes
searchstring—Free-text match against slug, name, and breadcrumb.
limitinteger501–200.
cursorstring—Opaque cursor from the previous page's next_cursor.

Response — 200 OK#

JSON
{
  "items": [
    {
      "slug": "womens-kurtis",
      "name": "Women Kurtis",
      "breadcrumb": "Women Ethnic > Kurtis"
    }
  ],
  "next_cursor": "womens-kurtis"
}

next_cursor is null on the last page.

Rate limits#

  • Authenticated → max(60, tier.rate_limit × 10) per minute, per subscription.
  • Unauthenticated → 60/min per source IP (configurable per environment).

429 rate_limited responses include a Retry-After header in seconds.


Interactive picker#

Type a keyword above. Click any row to copy its slug to your clipboard.


Snippets#

curl#

Shell
curl "https://api.meeship.in/api/v1/categories?search=kurti&limit=10"

Python#

Python
import requests

r = requests.get(
    "https://api.meeship.in/api/v1/categories",
    params={"search": "kurti", "limit": 50},
)
for c in r.json()["items"]:
    print(c["slug"], "→", c["name"])

JavaScript#

JavaScript
const r = await fetch(
  'https://api.meeship.in/api/v1/categories?search=kurti&limit=10',
);
const { items } = await r.json();
console.table(items);

Slug stability contract#

A slug, once published, is treated as a stable public contract. If we ever need to rename a category, the new slug is added as a separate row and the old slug becomes an alias (resolves to the new row) for at least 90 days before being retired. This means once your integration uses womens-kurtis, you don't need to track our internal taxonomy changes.

For maximum portability we recommend pinning the slug alongside your own product SKU in your database — slugs are stable for a 90-day deprecation window even when categories are reorganised.