# Upscrape JioMart LLM Integration Prompt

Give this to an LLM or coding agent. It must fetch the OpenAPI spec first and use this brief only for orientation.

## First Step

Fetch and read this OpenAPI spec before writing code:

https://data.upscrape.com/catalog/platforms/jiomart/openapi.json?token=SFMyNTY.g2gDdAAAAAFtAAAAC3BsYXRmb3JtX2lkbQAAAAdqaW9tYXJ0bgYALTTbSp8BYgABUYA.Ry3gmsO3Eot2bYe0WvF5O5Dynf9X9PE6kAYGI2WM6kU
This signed OpenAPI URL is valid for approximately 7 days.

## Hard Rules

- Use the OpenAPI spec as the source of truth for endpoints, request bodies, response bodies, errors, and JSON schemas.
- Do not infer fields from capability descriptions; fetch the spec and use its component schemas.
- Authenticate every request with `Authorization: Bearer YOUR_API_KEY`.
- Start runs with `POST /execute`; do not invent platform-specific execute endpoints.
- Poll `GET /jobs/{id}` or `GET /jobs/{id}/result` until `state` is `completed` or `failed`.
- Optionally send `Prefer: wait=N` on `POST /execute` to wait up to N seconds for inline results.
- If the response is `200`, the job completed — read `results[0].data`. If `202`, poll `GET /jobs/{id}`.
- `stream` is public-facing but must remain `false` today.

## API Base

- Base URL: `https://data.upscrape.com`
- OpenAPI spec: `https://data.upscrape.com/catalog/platforms/jiomart/openapi.json?token=SFMyNTY.g2gDdAAAAAFtAAAAC3BsYXRmb3JtX2lkbQAAAAdqaW9tYXJ0bgYALTTbSp8BYgABUYA.Ry3gmsO3Eot2bYe0WvF5O5Dynf9X9PE6kAYGI2WM6kU`
- Execute endpoint: `POST /execute`
- Job poll endpoint: `GET /jobs/{id}`
- Result alias: `GET /jobs/{id}/result`
- Content-Type: `application/json`
- Optional header: `Idempotency-Key`
- Optional header: `Prefer: wait=N` (hold connection up to N seconds for synchronous result)

## Execution Flow

1. Send `POST /execute` with a platform capability ID and its `input` object.
2. The API responds with a queued `job_id`.
3. Poll the job endpoint until `state` becomes `completed` or `failed`.
4. If completed, read `results[0].data`; its exact shape is defined by the OpenAPI component schema for the selected capability.

## Example Execute Request

```json
{
  "capability": "jiomart.ads.sponsored.products",
  "input": {
    "num_ads": 5,
    "pincode": "400001",
    "query": "rice"
  }
}
```

## Optional Request Fields

- `network.session_id`: explicit reusable session identifier
- `network.session_key`: stable key used to derive a reusable session
- `network.sticky`: reuse the resolved session when `true`
- `timeout_ms`: per-capability timeout override up to the capability maximum listed below
- `stream`: must be `false`

## Supported Capabilities

- `jiomart.ads.sponsored.products` - Sponsored Products Ads. Fetch JioMart sponsored product ad placements for a keyword or inventory value. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.autocomplete.search` - Autocomplete Search. Fetch JioMart search autocomplete suggestions. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.brands.list` - Brands. List JioMart brands with logos. Paginated. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.categories.list` - Categories. List the full JioMart category tree with department mapping, banners, and images. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.category.filters.list` - Category Filters List. Fetch JioMart department/category/filter hierarchy for a Vertex filter expression. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.collection.products.list` - Collection Products List. List JioMart products from a collection slug and pincode. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.collections.list` - Collections. List the JioMart collection directory. Paginated (26K+ collections). Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.departments.list` - Departments. List top-level JioMart departments (e.g. Groceries). Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.home.listing` - Home Listing. Fetch the JioMart homepage product feed. Cursor-paginated, location-sensitive. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.location.pincode.lookup` - Pincode Location Lookup. Validate and resolve JioMart location metadata for an Indian pincode. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.logistics.countries` - Logistics Countries. List countries where JioMart delivery is available. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.navigations.list` - Navigations. Fetch the JioMart site navigation tree (menus, links, sections). Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.pages.list` - Pages. List JioMart CMS pages. Paginated. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.product.detail.get` - Product Detail Get. Fetch JioMart product detail by product slug, optionally including size/availability data. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.products.list` - Products List. List JioMart products for an arbitrary Vertex filter expression, such as department/category browse pages. Max `timeout_ms`: 30000. Streaming: disabled.
- `jiomart.products.search` - Products Search. Search JioMart products for a query and pincode. Max `timeout_ms`: 30000. Streaming: disabled.