# Shopee Android Scraper (`chartedsea/shopee-android-scraper`) Actor

Scrape Shopee Android mobile backend APIs - searches, product listings, product details, and shop products - without maintaining mobile devices, apps, emulators, signatures, or device fingerprints.

- **URL**: https://apify.com/chartedsea/shopee-android-scraper.md
- **Developed by:** [Charted Sea](https://apify.com/chartedsea) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 5 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $15.00 / 1,000 shopee android record scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Shopee Android Scraper

Scrape Shopee Android mobile backend APIs - searches, product listings,
product details, product ratings, and shop products - without maintaining
mobile devices, apps, emulators, signatures, or device fingerprints.

The Actor forges API requests that mimic real Shopee Android app traffic. It
does not run the Android application.

The Actor accepts Shopee Android backend API URLs on `mall.shopee.*` domains.
Each request is processed independently and produces one row in the default
dataset.

Compared with the browser-based Shopee Web surface, the Android surface
consumes less proxy traffic, executes faster, and is independent from web
anti-bot logic. Shopee Web `shopee.*` URLs are not supported by this Actor.

### Quick start

```json
{
  "requests": [
    {
      "url": "https://mall.shopee.sg/api/v4/search/search_items?keyword=tshirt"
    }
  ]
}
```

A run accepts 1 to 100 requests. The Actor waits for every request to reach a
terminal state before publishing results and charging finalized events.

### Supported domains

Only the following Shopee Android backend domains are supported:

- Brazil: `https://mall.shopee.com.br`
- Indonesia: `https://mall.shopee.co.id`
- Malaysia: `https://mall.shopee.com.my`
- Philippines: `https://mall.shopee.ph`
- Singapore: `https://mall.shopee.sg`
- Thailand: `https://mall.shopee.co.th`
- Taiwan: `https://mall.shopee.tw`
- Vietnam: `https://mall.shopee.vn`

### Input

Shared options are applied to every request. A value inside an individual
request overrides the shared value for that request.

- `requests` - Required array containing 1 to 100 Shopee Android requests.
- `enrichUrlQuery` - Add required Shopee query parameters. Default: `true`.

Per-request fields:

- `url` - Required Shopee Android backend API URL on a `mall.shopee.*` domain.
- `method` - `GET` or `POST`. Default: `GET`.
- `payload` - JSON body for supported POST APIs.
- Any shared option above - Overrides that option for this request.

Unknown request options are passed to Charted Sea for forward compatibility.

### Supported Shopee Android APIs

#### Product Search by Keyword or Category

- **URL Path**:
  - `/api/v4/search/search_items`

- **URL Parameters**:
  - `keyword`: Search keyword, e.g., "tshirt".
  - `match_id`: Category ID when searching products by category, Shop ID when
    searching products by shop.
  - `categoryids`: Comma-separated list of category IDs used to filter results.
  - `by` (default = "relevancy"): Sort by "relevancy", "ctime", "sales", or
    "price".
  - `order` (default = "desc"): Sort order, "asc" or "desc".
  - `newest` (default = 0): Offset for results.
  - `page` (default = 1): Page number (start from 1).
  - `page_type`, `scenario`, `version`, `trending_entrance`, `extra_params`,
    `view_session_id`: Automatically generated, unless overridden.

- **Crawler Input Parameters**
  - `productSearch_crawlNextPages`: Set to true to crawl subsequent pages
    (default: false).
  - `productSearch_crawlNextPages_maxPages`: Limit on number of pages to crawl
    (default: 1).
  - `productSearch_crawlNextPages_maxResults`: Maximum products to crawl
    (default: 20).

> **Note:**
> Unlike the Shopee Web version of this API, the Android version can crawl
> multiple pages for keyword search. The number of items per page depends on
> the `by` parameter: `relevancy` returns 30 items per page; other sorts return
> 20 on the first page and 30 on the next pages.

- **Example Input**:

```json
{
  "requests": [
    // Search products with the "tshirt" keyword
    { "url": "https://mall.shopee.sg/api/v4/search/search_items?keyword=tshirt" },

    // Search products in the category ID 11027421
    { "url": "https://mall.shopee.sg/api/v4/search/search_items?match_id=11027421&scenario=PAGE_CATEGORY" },

    // Search products from the shop ID 290739469
    { "url": "https://mall.shopee.sg/api/v4/search/search_items?match_id=290739469&page_type=shop&scenario=PAGE_SHOP_SEARCH" }
  ],

  // Automatically crawl the next pages
  "productSearch_crawlNextPages": true,
  // Crawl until the 3rd page
  "productSearch_crawlNextPages_maxPages": 3,
  // Alternatively, indicate the maximum number of products to crawl
  "productSearch_crawlNextPages_maxResults": 180
}
```

- **Notable Response Fields**:
  - `items`: Array of product summaries.
  - `items/itemid` and `items/shopid`: Product key.
  - `items/item_data/catid`: Category ID.
  - `items/item_data/ctime`: Creation timestamp.
  - `items/item_data/shop_data/shop_name`: Shop name.
  - `items/item_data/item_card_display_price/price`: Product price (divide by
    100,000 to get actual price).
  - `items/item_data/item_card_display_price/discount`: Discount percentage.
  - `items/item_data/item_rating/rating_star`: Average rating (e.g., 4.89).
  - `items/item_data/item_rating/rating_count`: Array of rating counts
    `[total, 1-star, 2-star, 3-star, 4-star, 5-star]`.
  - `items/item_card_displayed_asset/name`: Product name.
  - `items/item_card_displayed_asset/image`: Image key. Convert to URL with
    `https://down-${country}.img.susercontent.com/file/${imageKey}`.
  - `items/item_card_displayed_asset/images`: Other image keys.
  - `items/item_card_display_sold_count/monthly_sold_count`: Monthly sales.
  - `items/item_card_display_sold_count/historical_sold_count`: Total sales.

#### Product Search Common

This API is invoked when the user makes a keyword search, and returns the first
page of products. For the next pages, Shopee Android uses
[Product Search by Keyword or Category](#product-search-by-keyword-or-category).

- **URL Path**:
  - `/api/v4/search/search_page_common`

- **URL Parameters**:
  - `keyword`: Search keyword, e.g., "tshirt".

- **Example Input**:

```json
{
  "requests": [
    // Search products with the "tshirt" keyword
    { "url": "https://mall.shopee.co.id/api/v4/search/search_page_common?keyword=tshirt" }
  ]
}
```

- **Notable Response Fields**:
  - `data/items_response/items`: Array of product summaries.
  - `data/items_response/items[x]/itemid` and `shopid`: Product key.
  - `data/items_response/items[x]/item_basic/catid`: Category ID.
  - `data/items_response/items[x]/item_basic/ctime`: Creation timestamp.
  - `data/items_response/items[x]/item_basic/shop_name`: Shop name.
  - `data/items_response/items[x]/item_basic/price`: Product price (divide by
    100,000 to get actual price).
  - `data/items_response/items[x]/item_basic/discount`: Discount percentage.
  - `data/items_response/items[x]/item_basic/item_rating/rating_star`: Average
    rating (e.g., 4.89).
  - `data/items_response/items[x]/item_basic/item_rating/rating_count`: Array
    of rating counts `[total, 1-star, 2-star, 3-star, 4-star, 5-star]`.
  - `data/items_response/items[x]/item_basic/name`: Product name.
  - `data/items_response/items[x]/item_basic/image`: Image key. Convert to URL
    with `https://down-${country}.img.susercontent.com/file/${imageKey}`.
  - `data/items_response/items[x]/item_basic/images`: Other image keys.
  - `data/items_response/items[x]/item_basic/sold`: Monthly sales.
  - `data/items_response/items[x]/item_basic/historical_sold`: Total sales.
  - `data/items_response/items[x]/item_basic/stock`: Stock level.

#### Product Listing

- **Request Method**:
  - `POST`

- **URL Path**:
  - `/api/v4/item/get_list`

- **Request Body**:

```json
{
  "bff_meta": null,
  "shop_item_ids": [
    { "item_id": 26826689395, "shop_id": 240877035 },
    { "item_id": 40703058516, "shop_id": 1058254930 }
  ],
  "source": "microsite_individual_product"
}
```

The `shop_item_ids` array contains `item_id` (product identifier) and `shop_id`
(product owner identifier) pairs. You can request up to 20 items per scraping
task.

- **Example Input**:

```json
{
  "requests": [
    {
      "url": "https://mall.shopee.sg/api/v4/item/get_list",
      "method": "POST",
      "payload": {
        "bff_meta": null,
        "shop_item_ids": [
          { "item_id": 26826689395, "shop_id": 240877035 },
          { "item_id": 40703058516, "shop_id": 1058254930 }
        ],
        "source": "microsite_individual_product"
      }
    }
  ]
}
```

- **Notable Response Fields**:
  - `items`: Array of product summaries.
  - `items/itemid` and `items/shopid`: Essential for scraping product details
    and ratings.
  - `items/name`: Product name.
  - `items/image`: Image key. Convert to URL with
    `https://down-${country}.img.susercontent.com/file/${imageKey}`.
  - `items/ctime`: Creation timestamp.
  - `items/sold`: Monthly sales.
  - `items/historical_sold`: Total sales.
  - `items/price`: Divide by 100,000 to get actual price.

> **Note:**
> Unlike the Shopee Web surface, `sold` and `stock` remain available through
> this Android API.

#### Product Details

- **URL Path**:
  - `/api/v4/pdp/get`

- **URL Parameters**:
  - `shop_id`: The unique identifier of the shop.
  - `item_id`: The unique identifier of the product.

> **Note:**
> Consider [Cart Panel Item Detail](#cart-panel-item-detail) as an alternative
> if the success rate is too low.

- **Example Input**:

```json
{
  // Get the details of a product
  "requests": [
    { "url": "https://mall.shopee.sg/api/v4/pdp/get?shop_id=414243778&item_id=23600133176" }
  ]
}
```

- **Notable Response Fields**:
  - `data/item/item_id` and `data/item/shop_id`: Essential identifiers for the
    product and shop.
  - `data/item/title`: Product name.
  - `data/item/description`: Product description.
  - `data/item/image`: Image key. Convert to URL with
    `https://down-${country}.img.susercontent.com/file/${imageKey}`.
  - `data/item/ctime`: Product creation timestamp.
  - `data/item/fe_categories`: Category information including parent
    categories.
  - `data/item/models`: Detailed SKU information.
  - `data/item/models/sold`: SKU monthly sales.
  - `data/item/models/stock`: SKU stock level.
  - `data/product_review`: Aggregated rating statistics.
  - `data/product_review/historical_sold`: Total sales.
  - `data/product_shipping`: Shipping details.
  - `data/shop_detailed`: Comprehensive shop details.

#### Product Details Lite

This API is used by the "Shopee Lite" Android app and only works for Indonesia.

- **URL Path**:
  - `/api/v4/pdp/get_lite`

- **URL Parameters**:
  - `shop_id`: The unique identifier of the shop.
  - `item_id`: The unique identifier of the product.

- **Example Input**:

```json
{
  // Get the details of a product
  "requests": [
    { "url": "https://mall.shopee.co.id/api/v4/pdp/get_lite?item_id=42723690344&shop_id=29931184" }
  ]
}
```

- **Notable Response Fields**:
  - `data/item/item_id` and `data/item/shop_id`: Essential identifiers for the product and shop.
  - `data/item/title`: Product name.
  - `data/item/description`: Product description.
  - `data/item/image`: Image key. Convert to URL using the provided format: `https://down-${country}.img.susercontent.com/file/${imageKey}`.
  - `data/item/ctime`: Product creation timestamp.
  - `data/item/fe_categories`: Category information including parent categories.
  - `data/item/models`: Detailed SKU information.
  - `data/item/models/sold`: SKU Monthly sales.
  - `data/item/models/stock`: SKU Stock level.
  - `data/shop`: Shop details.
  - `data/product_review`: Aggregated rating statistics.
  - `data/product_review/historical_sold`: Total sales.

#### Cart Panel Item Detail

- **Request Method**:
  - `POST`

- **URL Path**:
  - `/api/v4/pdp/cart_panel/get`

- **Request Body**:

```json
{
  "_pft": 255,
  "city": "",
  "has_voucher": false,
  "is_group_buy_new_group": false,
  "item_id": 26826689395,
  "method": 1,
  "model_id": null,
  "quantity": 1,
  "selected_insurance_plans": [],
  "selected_spl": null,
  "selected_tiers": null,
  "shop_id": 240877035,
  "state": "",
  "use_group_buy": false
}
```

The most important fields are `item_id` (product identifier) and `shop_id`
(product owner identifier).

- **Example Input**:

```json
{
  "requests": [
    {
      "url": "https://mall.shopee.sg/api/v4/pdp/cart_panel/get",
      "method": "POST",
      "payload": {
        "_pft": 255,
        "city": "",
        "has_voucher": false,
        "is_group_buy_new_group": false,
        "item_id": 26826689395,
        "method": 1,
        "model_id": null,
        "quantity": 1,
        "selected_insurance_plans": [],
        "selected_spl": null,
        "selected_tiers": null,
        "shop_id": 240877035,
        "state": "",
        "use_group_buy": false
      }
    }
  ]
}
```

- **Notable Response Fields**:
  - `data/item/item_id` and `data/item/shop_id`: Essential identifiers for the
    product and shop.
  - `data/item/title`: Product name.
  - `data/item/image`: Image key. Convert to URL with
    `https://down-${country}.img.susercontent.com/file/${imageKey}`.
  - `data/item/models`: Detailed SKU information.
  - `data/item/models/stock`: SKU stock level.
  - `data/item/stock`: Product stock level.

#### Product Ratings

- **URL Path**:
  - `/api/v2/item/get_ratings`

- **URL Parameters**:
  - `shopid` & `itemid`: Unique identifiers for the shop and product.
  - `limit` (hardcoded = 20): Number of results per page. This value can't be
    changed.
  - `offset` (default = 0): Offset for results, typically a multiple of 20.
  - `type` (default = 0, max = 5): Filter by number of stars (e.g. 2 = 2-stars
    ratings only). 0 = all ratings.
  - `filter` (default = 0): Filter by content: 1 = with comments, 3 = with
    media, 9 = local ratings, 0 = all ratings.

- **Crawler Input Parameters**
  - `productRatings_crawlNextPages`: Set to true to crawl subsequent pages.
  - `productRatings_crawlNextPages_maxPages`: Limit on number of pages to
    crawl (default: 1).
  - `productRatings_crawlNextPages_maxResults`: Maximum ratings to crawl
    (default: 20).

- **Example Input**:

```json
{
  // Get the ratings of a product
  "requests": [
    { "url": "https://mall.shopee.sg/api/v2/item/get_ratings?shopid=414243778&itemid=23600133176" }
  ],

  // Automatically crawl the next rating pages
  "productRatings_crawlNextPages": true,
  // Crawl until the 3rd rating page
  "productRatings_crawlNextPages_maxPages": 3,
  // Alternatively, indicate the maximum number of ratings to crawl
  "productRatings_crawlNextPages_maxResults": 60
}
```

- **Notable Response Fields**:
  - `data/ratings/cmtid`: Unique identifier for each rating.
  - `data/ratings/ctime`: Timestamp of the rating.
  - `data/ratings/rating_star`: Star rating from 1 to 5.
  - `data/ratings/comment`: Buyer's comment.
  - `data/ratings/author_username`: Buyer's username (sometimes anonymized).
  - `data/ratings/author_portrait`: Buyer's profile image.
  - `data/ratings/images` & `videos`: Media associated with the rating.
  - `data/ratings/product_items`: SKU details of the rated product.

> **Note:**
> Always be mindful of buyers' personal information and comply with local data
> protection laws. Avoid storing personal data unless necessary.

#### Shop Products

- **URL Path**:
  - `/api/v4/shop/rcmd_items`

- **URL Parameters**:
  - `shop_id`: Unique identifier for the shop.
  - `limit` (default = 20): Number of results per page.
  - `offset` (default = 0): Offset for results, typically a multiple of
    `limit`.
  - `bundle`, `upstream`: Additional parameters with default settings.

- **Crawler Input Parameters**
  - `shopProducts_crawlNextPages`: Set to true to crawl subsequent pages.
  - `shopProducts_crawlNextPages_maxPages`: Limit on number of pages to crawl
    (default: 1).
  - `shopProducts_crawlNextPages_maxResults`: Maximum products to crawl
    (default: 20).

- **Example Input**:

```json
{
  // Get the products of a shop
  "requests": [
    { "url": "https://mall.shopee.sg/api/v4/shop/rcmd_items?shop_id=556522115&offset=0" }
  ],

  // Automatically crawl the next product pages
  "shopProducts_crawlNextPages": true,
  // Crawl until the 3rd product page
  "shopProducts_crawlNextPages_maxPages": 3,
  // Alternatively, indicate the maximum number of products to crawl
  "shopProducts_crawlNextPages_maxResults": 60
}
```

- **Notable Response Fields**:
  - `data/items`: Array of product summaries.
  - `data/items/itemid` and `items/shopid`: Essential for scraping product
    details and ratings.
  - `data/items/name`: Product name.
  - `data/items/image`: Image key. Convert to URL with
    `https://down-${country}.img.susercontent.com/file/${imageKey}`.
  - `data/items/ctime`: Creation timestamp.
  - `data/items/stock`: Stock level.
  - `data/items/sold`: Monthly sales.
  - `data/items/historical_sold`: Total sales.
  - `data/items/price`: Divide by 100,000 to get actual price.

### Output

The default dataset contains one row per input request:

```json
{
  "marketplaceRunUuid": "...",
  "taskUuid": "...",
  "url": "https://mall.shopee.sg/api/v4/search/search_items?keyword=tshirt",
  "status": "SUCCESS",
  "responseBody": {
    "items": []
  }
}
```

Output fields:

- `marketplaceRunUuid` - Charted Sea marketplace-run ID.
- `taskUuid` - Charted Sea scraping-task ID.
- `url` - Original requested URL.
- `status` - Terminal request status.
- `responseBody` - Shopee response for a successful request.
- `error` - Error description for an unsuccessful request.

Rows remain in the same logical request order. One failed request does not hide
successful rows from the same batch.

### Pricing

Pay as you go with no subscription or monthly minimum:

- Successful Shopee Android request: $0.015, flat for every supported API.
- Proxy usage: $0.00013 per started block of 100 proxy units.
- Actor start: $0.00005 per GB of Actor memory, with a minimum of one event.
- Dataset result: $0.00001 per result written to the default dataset.

Every supported Shopee Android API uses the same flat price. There is no
product-detail premium and no per-variant surcharge.

Failed or cancelled requests are not charged as successful Shopee requests.
Proxy usage varies with the requested API, response size, and anti-bot
conditions. Use Apify's maximum total charge setting to bound an execution's
total cost.

### Charging

This is a PAY\_PER\_EVENT Actor. A completed execution can charge:

- One `csea-scrape-shopee-adr` event per successful request.
- Finalized `csea-proxy-unit` events for proxy usage consumed by the requests.

Charging is persisted and resumed without intentionally duplicating events.

### Graceful aborts and retries

A graceful Apify abort cancels known Charted Sea tasks and waits for backend
finalization. Interrupted Actor executions persist their marketplace run,
charging, and output state so they can resume without intentionally duplicating
charges or dataset rows.

### Operational guidance

- Start with small batches when testing new endpoints.
- Monitor success rates during major Shopee campaigns.
- Distribute traffic between the Shopee Web and Android Actors for redundancy;
  they are independent scraping surfaces.

# Actor input Schema

## `requests` (type: `array`):

One to 100 Shopee Android requests. Each request is processed and billed independently.

## `enrichUrlQuery` (type: `boolean`):

Automatically add required Shopee query parameters unless overridden.

## Actor input object example

```json
{
  "requests": [
    {
      "url": "https://mall.shopee.co.id/api/v4/pdp/get_lite?item_id=42723690344&shop_id=29931184"
    }
  ],
  "enrichUrlQuery": true
}
```

# Actor output Schema

## `results` (type: `string`):

Complete Shopee result rows in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "requests": [
        {
            "url": "https://mall.shopee.co.id/api/v4/pdp/get_lite?item_id=42723690344&shop_id=29931184"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("chartedsea/shopee-android-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "requests": [{ "url": "https://mall.shopee.co.id/api/v4/pdp/get_lite?item_id=42723690344&shop_id=29931184" }] }

# Run the Actor and wait for it to finish
run = client.actor("chartedsea/shopee-android-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "requests": [
    {
      "url": "https://mall.shopee.co.id/api/v4/pdp/get_lite?item_id=42723690344&shop_id=29931184"
    }
  ]
}' |
apify call chartedsea/shopee-android-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,chartedsea/shopee-android-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/G6tRr4KjB0jqJQgaH/builds/6yzdtTbwlS6kDbIyH/openapi.json
