HomeAPI Documentation

MSIC Public API

Free, open API for accessing Malaysia Standard Industrial Classification codes programmatically.

Free to useNo API key requiredCORS enabled

Base URL

https://www.msicdata.com/api/v1/msic

All endpoints use GET requests and return JSON responses. The API is publicly accessible with no authentication required.

Rate Limits

Please be respectful with your API usage. While there are no strict rate limits, excessive requests may be throttled. For bulk data needs, consider caching responses.

Endpoints

GET

Lookup by Code

Get full details for a specific MSIC code.

Endpoint

/api/v1/msic?code={code}

Parameters

NameRequiredDescription
codeRequiredMSIC code (A-U for sections, 2-5 digits for other levels)

Example Request

curl "https://www.msicdata.com/api/v1/msic?code=62010"

Example Response

{
  "data": {
    "code": "62010",
    "name_en": "Computer programming activities",
    "name_ms": "Aktiviti pengaturcaraan komputer",
    "name_zh": "计算机编程活动",
    "description_en": "...",
    "level": 5,
    "type": "item",
    "class_code": "6201",
    "sst_applicable": true,
    "sst_rate": 6,
    ...
  }
}
GET

Search

Search across all MSIC codes by name (EN/MS/ZH) or description.

Endpoint

/api/v1/msic?q={query}

Parameters

NameRequiredDescription
qRequiredSearch query (min 2 characters)
limitOptionalMax results (default 50, max 100)
offsetOptionalPagination offset (default 0)

Example Request

curl "https://www.msicdata.com/api/v1/msic?q=consulting"

Example Response

{
  "data": [
    { "code": "70201", "name_en": "...", "level": 5, "type": "item" },
    { "code": "70209", "name_en": "...", "level": 5, "type": "item" },
    ...
  ],
  "pagination": {
    "total": 42,
    "limit": 50,
    "offset": 0,
    "hasMore": false
  }
}
GET

Get Children

Get all child codes under a parent code (e.g., all divisions in section M).

Endpoint

/api/v1/msic?parent={code}

Parameters

NameRequiredDescription
parentRequiredParent MSIC code
limitOptionalMax results (default 50, max 100)
offsetOptionalPagination offset (default 0)

Example Request

curl "https://www.msicdata.com/api/v1/msic?parent=M"

Example Response

{
  "parent": "M",
  "data": [
    { "code": "69", "name_en": "Legal and accounting activities", "level": 2, "type": "division" },
    { "code": "70", "name_en": "...", "level": 2, "type": "division" },
    ...
  ],
  "pagination": { ... }
}
GET

List by Level

Get all codes at a specific hierarchy level.

Endpoint

/api/v1/msic?level={1-5}

Parameters

NameRequiredDescription
levelRequired1=section, 2=division, 3=group, 4=class, 5=item
limitOptionalMax results (default 50, max 100)
offsetOptionalPagination offset (default 0)

Example Request

curl "https://www.msicdata.com/api/v1/msic?level=5&limit=100"

Example Response

{
  "level": 5,
  "data": [
    { "code": "01111", "name_en": "...", "level": 5, "type": "item" },
    { "code": "01112", "name_en": "...", "level": 5, "type": "item" },
    ...
  ],
  "pagination": {
    "total": 1526,
    "limit": 100,
    "offset": 0,
    "hasMore": true
  }
}

Response Fields

FieldTypeDescription
codestringMSIC code (e.g., "62010", "M")
name_enstringEnglish name
name_msstringMalay name
name_zhstringChinese name
description_enstringEnglish description
levelnumber1=section, 2=division, 3=group, 4=class, 5=item
typestring"section", "division", "group", "class", or "item"
sst_applicablebooleanWhether SST applies (items only)
sst_ratenumberSST rate percentage (items only)
wht_applicablebooleanWhether withholding tax applies (items only)
einvoice_categorystringe-Invoice category (items only)
risk_levelstring"low", "medium", or "high" (items only)

Code Examples

JavaScript / Node.js
// Fetch MSIC code details
const response = await fetch('https://www.msicdata.com/api/v1/msic?code=62010');
const { data } = await response.json();
console.log(data.name_en); // "Computer programming activities"

// Search for codes
const search = await fetch('https://www.msicdata.com/api/v1/msic?q=consulting');
const { data: results } = await search.json();
results.forEach(item => console.log(item.code, item.name_en));
Python
import requests

# Fetch MSIC code details
response = requests.get('https://www.msicdata.com/api/v1/msic?code=62010')
data = response.json()['data']
print(data['name_en'])  # "Computer programming activities"

# Search for codes
search = requests.get('https://www.msicdata.com/api/v1/msic?q=consulting')
for item in search.json()['data']:
    print(item['code'], item['name_en'])

Need Help?

If you have questions about the API or encounter issues, please contact us at api@msicdata.my.