LINE Store Web API
Base URL: https://store.line.me
Search product
GET /api/search/:category
Request Headers
Accept-Language: ISO country code- Used to determine the language of search results
Path Parameters
category: 'sticker' | 'emoji' | 'theme' | 'family'- 'sticker'='スタンプ', 'emoji'='絵文字', 'theme'='着せ替え', 'family'='その他'
Query Parameters
query: stringcategory: 'sticker' | 'emoji' | 'theme' | 'family'- Must match the path parameters exactly
type: 'ALL' | 'OFFICIAL' | 'CREATORS' | 'SUBSCRIPTION'- 'ALL'='すべて', 'OFFICIAL'='公式', 'CREATORS'='クリエイターズ', 'SUBSCRIPTION'='LINE スタンプ プレミアム'
offset: numberlimit: number
LINE Product CDN Spec
Base URL: https://stickershop.line-scdn.net
Stickers
Path Parameters
productId: number- Sticker product ID (integer)
Metadata JSON
GET /stickershop/v1/product/:productId/:deviceType/productInfo.meta
Path Parameters
deviceType: 'ios' | 'android' | 'LINEStorePC'
const stickerResourceTypes = ['STATIC', 'ANIMATION', 'SOUND', 'ANIMATION_SOUND'] as const;
type productInfo_meta = {
packageId: number; // productId
onSale: boolean;
validDays: number;
title: { [lang: string]: string }; // Example: {ja: 'タイトル', en: 'Title'}
author: { [lang: string]: string }; // Example: {ja: '名前', en: 'Author'}
price: {
country: string;
currency: string;
symbol: string;
price: number;
}[];
stickers: {
id: number; // stickerId
width: number; // image width
height: number; // image height
}[];
hasAnimation: boolean;
hasSound: boolean;
stickerResourceType: (typeof stickerResourceTypes)[number];
};
Product packed zip
GET /stickershop/v1/product/:productId/:deviceType/:file
Path Parameters
deviceType: 'ios' | 'android'file: 'stickerpack@2x.zip' | 'stickerpack.zip' | 'stickers.zip'- 'stickerpack@2x.zip' = png (2x) + apng (2x) + m4a
- 'stickerpack.zip' = png (1x) + apng (1x) + m4a
- 'stickers.zip' = png (1x) STATIC
- android stickerpack@2x.zip is not available
Independent sticker
GET /stickershop/v1/sticker/:stickerId/:deviceType/:file
Path Parameters
stickerId: numberdeviceType: 'ios' | 'android'file: 'sticker@2x.png' | 'sticker.png'- android sticker@2x.png is not available
Product thumbnail
GET /stickershop/v1/product/:productId/LINEStorePC/main.png
Independent sticker sound
GET /stickershop/v1/sticker/:stickerId/:deviceType/sticker_sound.m4a
Path Parameters
stickerId: numberdeviceType: 'ios' | 'android' | 'LINEStorePC'
Product thumbnail sound
GET /stickershop/v1/product/:productId/:deviceType/main_sound.m4a
Path Parameters
deviceType: 'ios' | 'android' | 'LINEStorePC'
Sticons (emoji)
Path Parameters
productId: string- Sticons product ID (integer) 96 bit hex (deliver func is unknown)
Metadata JSON
GET /sticonshop/v1/sticon/:productId/:deviceType/meta.json
Path Parameters
deviceType: 'iPhone' | 'android'
type meta_json = {
productId: string;
altTexts: { [iconIndex: string]: string };
orders: string[]; // array of iconIndex
sticonResourceType?: 'STATIC' | 'ANIMATION'; // STATIC if key does not exist
};
Product packed zip
GET /sticonshop/v1/sticon/:productId/:deviceType/:file
Path Parameters
deviceType: 'iPhone' | 'android'file: 'package_animation.zip' | 'package.zip'- 'package_animation.zip' = APNG
- 'package.zip' = PNG
Independent sticon
GET /sticonshop/v1/sticon/:productId/:deviceType/:file
Path Parameters
deviceType: 'iPhone' | 'android'file:${iconIndex}_animation.png|${iconIndex}.pngiconIndex: 3-digit icon index string (001-999)${iconIndex}_animation.png= APNG${iconIndex}.png= PNG
Product thumbnail
GET /sticonshop/v1/product/:productId/iPhone/main.png
Themes
?
Family
?
Product packed zip structure
Stickers
- stickerpack@2x.zip | stickerpack.zip
- productInfo.meta (JSON)
${stickerId}@2x.png|${stickerId}.png(PNG STATIC)${stickerId}_key@2x.png|${stickerId}_key.png(PNG STATIC low quality)- tab_on@2x.png | tab_on.png (small thumbnail)
- tab_off@2x.png | tab_off.png (small thumbnail grayscale)
- sound
${stickerId}.m4a(M4A SOUND)
- animation | animation@2x
${stickerId}@2x.png|${stickerId}.png(APNG ANIMATION)
- stickers@2x.zip | stickers.zip
- productInfo.meta
${stickerId}@2x.png|${stickerId}.png(PNG STATIC)${stickerId}_key@2x.png|${stickerId}_key.png(PNG STATIC low quality)- tab_on@2x.png | tab_on.png (small thumbnail)
- tab_off@2x.png | tab_off.png (small thumbnail grayscale)
sound and animation folder may not exist depending on the resource type. (example: STATIC)
Sticons (emoji)
- package_animation.zip
- meta.json
${iconIndex}_animation.png(APNG)${iconIndex}_key_animation.png(APNG)
- package.zip
- meta.json
${iconIndex}.png(PNG)${iconIndex}_key.png(PNG)