Shopee API endpoint
Returns the site footer/navigation layout (help topics, about, payment/logistics partners, social links, app download) from the credential-free `api/v4/pages/get_footer_layout` JSON. Public, credential-free endpoint.
/shopee/footerPublic endpoint. Credential-free: no cookie, login or af-ac-enc-dat
anti-content header is required. Backed by Shopee's
api/v4/pages/get_footer_layout JSON.
Query parameters:
region (optional, default my) — one of my, sg, id, th, vn, ph, tw, br, mx, co, cl.Response includes region, layout_id, layout_name, blocks[] (desktop)
and optional mobile_blocks[]. Each block has sections[] with type,
title, links[] (text, url), optional simple (image/text/url),
social_media[], images[], and qr (image/url/extra_images). Covers help
topics, about, payment/logistics partners, social links and app download.
| Field | Filled in, of 5 checked | Values in the sample |
|---|---|---|
| sections | 5 | median 1 entry |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| region | string | No | Shopee region: my, sg, id, th, vn, ph, tw, br, mx, co, cl (default my) Allowed values: my, sg, id, th, vn, ph, tw, br, mx, co, cl. | my | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/shopee/footer?region=my" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"region": "my",
"layout_id": 1,
"layout_name": "Default Layout",
"blocks": [
{
"sections": [
{
"type": 0,
"title": "CUSTOMER SERVICE",
"links": [
{
"text": "Help Centre",
"url": "https://help.shopee.com.my/portal"
}
]
},
{
"type": 3,
"title": "FOLLOW US",
"links": [],
"social_media": [
{
"image": "https://cf.shopee.com.my/file/c11c",
"text": "Facebook",
"url": "https://facebook.com/ShopeeMY"
}
]
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/shopee.footerResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | shopee.FooterResponse | No | ||||
| data.blocks | array | No | ||||
| data.blocks[].sections | array | No | ||||
| data.blocks[].sections[].images | array | No | ||||
| data.blocks[].sections[].images[].image | string | No | ||||
| data.blocks[].sections[].images[].text | string | No | ||||
| data.blocks[].sections[].images[].url | string | No | ||||
| data.blocks[].sections[].links | array | No | ||||
| data.blocks[].sections[].links[].text | string | No | Help Centre | |||
| data.blocks[].sections[].links[].url | string | No | ||||
| data.blocks[].sections[].qr | shopee.FooterQR | No | ||||
| data.blocks[].sections[].qr.extra_images | array | No | ||||
| data.blocks[].sections[].qr.extra_images[].image | string | No | ||||
| data.blocks[].sections[].qr.extra_images[].text | string | No | ||||
| data.blocks[].sections[].qr.extra_images[].url | string | No | ||||
| data.blocks[].sections[].qr.image | string | No | ||||
| data.blocks[].sections[].qr.url | string | No | ||||
| data.blocks[].sections[].simple | shopee.FooterSimple | No | ||||
| data.blocks[].sections[].simple.image | string | No | ||||
| data.blocks[].sections[].simple.text | string | No | ||||
| data.blocks[].sections[].simple.url | string | No | ||||
| data.blocks[].sections[].social_media | array | No | ||||
| data.blocks[].sections[].social_media[].image | string | No | ||||
| data.blocks[].sections[].social_media[].text | string | No | ||||
| data.blocks[].sections[].social_media[].url | string | No | ||||
| data.blocks[].sections[].title | string | No | CUSTOMER SERVICE | |||
| data.blocks[].sections[].type | integer | No | ||||
| data.layout_id | integer | No | 1 | |||
| data.layout_name | string | No | Default Layout | |||
| data.mobile_blocks | array | No | ||||
| data.mobile_blocks[].sections | array | No | ||||
| data.mobile_blocks[].sections[].images | array | No | ||||
| data.mobile_blocks[].sections[].images[].image | string | No | ||||
| data.mobile_blocks[].sections[].images[].text | string | No | ||||
| data.mobile_blocks[].sections[].images[].url | string | No | ||||
| data.mobile_blocks[].sections[].links | array | No | ||||
| data.mobile_blocks[].sections[].links[].text | string | No | Help Centre | |||
| data.mobile_blocks[].sections[].links[].url | string | No | ||||
| data.mobile_blocks[].sections[].qr | shopee.FooterQR | No | ||||
| data.mobile_blocks[].sections[].qr.extra_images | array | No | ||||
| data.mobile_blocks[].sections[].qr.extra_images[].image | string | No | ||||
| data.mobile_blocks[].sections[].qr.extra_images[].text | string | No | ||||
| data.mobile_blocks[].sections[].qr.extra_images[].url | string | No | ||||
| data.mobile_blocks[].sections[].qr.image | string | No | ||||
| data.mobile_blocks[].sections[].qr.url | string | No | ||||
| data.mobile_blocks[].sections[].simple | shopee.FooterSimple | No | ||||
| data.mobile_blocks[].sections[].simple.image | string | No | ||||
| data.mobile_blocks[].sections[].simple.text | string | No | ||||
| data.mobile_blocks[].sections[].simple.url | string | No | ||||
| data.mobile_blocks[].sections[].social_media | array | No | ||||
| data.mobile_blocks[].sections[].social_media[].image | string | No | ||||
| data.mobile_blocks[].sections[].social_media[].text | string | No | ||||
| data.mobile_blocks[].sections[].social_media[].url | string | No | ||||
| data.mobile_blocks[].sections[].title | string | No | CUSTOMER SERVICE | |||
| data.mobile_blocks[].sections[].type | integer | No | ||||
| data.region | string | No | my | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/shopee/footer?region=my" \
-H "x-api-key: $CRAWLORA_API_KEY"