list_categories
Lists Rudia's shopping categories with example items and tags. Use a slug as the category filter in other tools.
GET /api/v1/categories
Connect ChatGPT, Claude, Gemini or any AI agent to Rudia: search local Kenyan shops and products, check delivery to an area and hand the buyer a ready-to-pay M-Pesa basket. MCP server and public JSON API.
Lists Rudia's shopping categories with example items and tags. Use a slug as the category filter in other tools.
GET /api/v1/categories
Turns the buyer's place (estate, road, town) into candidate places, Rudia's own delivery areas first. Use it when a place name is ambiguous, then pass the chosen name as area to the other tools.
GET /api/v1/areas
| Field | Type | Description |
|---|---|---|
| textrequired | string | Free text for the place, as the buyer said it. |
Finds products from shops that deliver to the buyer's area, nearest shops first, with KES prices, subscription prices, stock and a product link. The area is required because shops only deliver locally. Filters apply to each nearby shop's top items; use get_store with query to search one shop's full range.
GET /api/v1/products
| Field | Type | Description |
|---|---|---|
| query | string | One or two product words, e.g. "water", "diapers", "gas". Omit to browse. |
| arearequired | string | Where the buyer wants delivery: an estate, road or town in Kenya, e.g. "Kilimani" or "Ruaka". |
| category | string | A category slug from list_categories, e.g. "groceries", "baby", "health-beauty". |
| max_price_kes | integer | Highest price per unit in KES. Applied to each nearby shop's top items, not its whole range. |
| subscription_only | boolean | Only products that can be delivered on a repeat schedule. Applied to each nearby shop's top items. |
| limit | integer | How many results, 1-20, default 10. |
Finds shops, optionally only those delivering to an area or in a category, with delivery days and recent deliveries.
GET /api/v1/stores
| Field | Type | Description |
|---|---|---|
| area | string | Only stores that deliver here. Strongly recommended. |
| category | string | A category slug from list_categories, e.g. "groceries", "baby", "health-beauty". |
| query | string | Part of a store name or category. |
| limit | integer | How many results, 1-20, default 10. |
A store's delivery areas, delivery days and time windows, order cutoff, minimum order, pickup option and up to 50 of its products (products_total says how many there are; pass query to find a product by name in this shop). The delivery fee is estimated by create_checkout_link and confirmed at checkout.
GET /api/v1/stores/{store_slug}
| Field | Type | Description |
|---|---|---|
| store_slugrequired | string | The store's slug, from a search result. |
| query | string | Filter this store's products by name, to find one in a large shop. |
Full detail for one product: description, options (variants) with their own ids and prices, stock, subscription price and frequencies.
GET /api/v1/stores/{store_slug}/products/{product_slug}
| Field | Type | Description |
|---|---|---|
| store_slugrequired | string | The store's slug. |
| product_slugrequired | string | The product's slug, from a search result. |
Whether a store delivers to the buyer's area, with delivery days and cutoff. The delivery fee is estimated by create_checkout_link and confirmed at checkout.
GET /api/v1/delivery-check
| Field | Type | Description |
|---|---|---|
| store_slugrequired | string | The store's slug. |
| arearequired | string | Where the buyer wants delivery: an estate, road or town in Kenya, e.g. "Kilimani" or "Ruaka". |
Builds a link to Rudia's basket with these items already in it (up to 20 lines across up to 10 shops) and returns per-shop prices and an estimated total. Products with options need a variant_id from get_product. Nothing is charged: the buyer opens the link, signs in with their phone and pays with M-Pesa. The checkout link is a one-time order at one-time prices. For a repeat delivery, give the buyer the product's url instead; they choose Subscribe and a schedule there.
POST /api/v1/checkout-links
| Field | Type | Description |
|---|---|---|
| linesrequired | array | Items for the basket: [{ product_id, variant_id?, quantity }], up to 20 lines across up to 10 shops. Repeated lines for the same item are added together. |
curl "https://rudia.co/api/v1/products?query=water&area=Kilimani&limit=5"
curl -X POST "https://rudia.co/api/v1/checkout-links" \
-H "content-type: application/json" \
-d '{"lines":[{"product_id":"<product_id>","quantity":2}]}'