MessNoMore Data Tools

MessNoMore Data Tools › How to Check JAKIM and BPJPH Halal Certificates in Bulk

How do you check a JAKIM or BPJPH halal certificate, and verify many suppliers at once?

Updated · By Wong Xian Qi

To check a halal certificate in Malaysia, search the company, brand or product in the JAKIM halal directory (MYeHALAL) on halal.gov.my. In Indonesia, use the BPJPH certificate search. Both registries are public but take one name at a time, so for a supplier list an unofficial API such as the Halal Certificate Checker can run the same public searches in bulk and return status, expiry date and certificate number in one format.

Where do you check a halal certificate officially?

Malaysia (JAKIM). Open the JAKIM halal directory, pick a category (food and beverage products, or food premises such as restaurants) and type a name. The site is in Malay. Results are split into a company tab (Syarikat) and a product tab (Produk); each row lists expiry dates and links to a detail page. The public directory does not show certificate numbers.

Indonesia (BPJPH). The BPJPH search accepts a product name, a business name or a halal certificate number (ID followed by digits). Each result shows the certificate number, issue date, business, product and brand, but no expiry date: under Indonesian law as it stands (Law 6/2023), a certificate stays valid from its issue date while the ingredients and production process do not change.

What are the limits of checking by hand?

How do you verify halal certificates in bulk with an API?

The Halal Certificate Checker is an unofficial Apify Actor. You send company names, brands, products or Indonesian certificate numbers plus the countries to check (MY, ID or both). It reads the live registries and returns one row per query and country. Names are matched fuzzily with legal forms ignored. matchConfidence runs from 0 to 1, and below your matchThreshold (default 0.8) the row becomes not_found with the closest alternatives. On paid Apify plans an AI check also reviews ambiguous matches and rejects restaurants, stalls and resellers that only use a brand name; matchMethod and aiReason show how each match was decided.

FieldWhat it holds
statusvalid, expired or not_found (error means the registry lookup failed)
matchedCompany, matchedProduct, matchedBrandThe certified business, product and brand
certificateNoBPJPH certificate number (empty for JAKIM)
validUntil, daysToExpiry, expiryDatesExpiry data (JAKIM only)
validFromIssue date (BPJPH only)
sourceUrl, checkedAtOfficial registry page to verify the row, and when it was read

Two rows from a real run on 14 October 2026 (fields trimmed, and the Gardenia expiryDates list shortened from 29 dates):

[
  {
    "query": "Gardenia Bakeries",
    "country": "MY",
    "status": "valid",
    "matchedCompany": "GARDENIA BAKERIES (KL) SDN BHD",
    "certificateNo": null,
    "issuingBody": "JAKIM",
    "validUntil": "2026-12-31",
    "daysToExpiry": 78,
    "expiryDates": ["2026-12-31", "2027-01-15", "2027-01-31", "..."],
    "matchConfidence": 0.97,
    "matchedOn": "company",
    "matchMethod": "string",
    "sourceUrl": "https://www.halal.gov.my/directory/slm_viewdetail.php?comp_code=COMP-20050727-143627&type=C&ty=CO",
    "checkedAt": "2026-10-14T11:05:02.466Z"
  },
  {
    "query": "Mayora Indah",
    "country": "ID",
    "status": "valid",
    "matchedCompany": "PT. MAYORA INDAH TBK",
    "matchedProduct": "Astick Singles Vanilla Shake",
    "certificateNo": "ID00410000045791119",
    "issuingBody": "BPJPH",
    "validFrom": "2026-08-05",
    "validUntil": null,
    "matchConfidence": 1,
    "matchedOn": "company",
    "matchMethod": "string",
    "sourceUrl": "https://bpjph.halal.go.id/cari/sertifikat?no_regis=ID00410000045791119",
    "checkedAt": "2026-10-14T11:05:10.045Z"
  }
]

Call it from your own system through the Apify API. For long lists, start the run asynchronously and read the dataset when it finishes: the registries are queried one request at a time, so 100 queries in both countries take about 10 to 15 minutes. Ready-made inputs: JAKIM check and BPJPH check.

curl -X POST "https://api.apify.com/v2/acts/messnomore~halal-certificate-checker/run-sync-get-dataset-items" \
  -H "Authorization: Bearer YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["Gardenia Bakeries", "Mayora Indah"], "countries": ["MY", "ID"]}'

How do you monitor halal certificate expiry?

Set onlyExpiringWithinDays (for example 90) and schedule the run weekly. Every query is checked, but only certificates that expire within that window, have already expired or are no longer listed are returned. This covers Malaysia only, because BPJPH publishes no expiry date. The Malaysian directory appears to drop certificates once they expire, so a vanished certificate comes back as not_found for you to follow up. See the example run Find supplier halal certificates expiring in 90 days.

How much does halal certificate verification cost?

Checking 100 suppliers in Malaysia and Indonesia is 200 results, about $1.00. A weekly monitoring run over 100 Malaysian suppliers costs about $0.20. Apify Bronze, Silver and Gold subscribers get lower prices. maxChecks caps the cost of a run.

What does the halal checker not cover?

FAQ

Is there an API to check JAKIM and BPJPH halal certificates in bulk?

Yes. The unofficial Halal Certificate Checker Apify Actor reads the public JAKIM (Malaysia) and BPJPH (Indonesia) registries and returns status, expiry date, certificate number and a match confidence for each name as JSON, CSV or Excel. It is not affiliated with JAKIM or BPJPH.

Does a BPJPH halal certificate expire?

BPJPH publishes no expiry date. Under Indonesian law as it stands (Law 6/2023), a certificate stays valid from its issue date as long as the ingredients and production process do not change, so you get the issue date in validFrom.

Does "not found" mean a product is not halal?

No. It only means no registry entry matched your query above the match threshold. The product may be certified under another company name, by another country's halal body, or not certified in that country.

Why does one Malaysian company show several expiry dates?

JAKIM certifies products and premises separately, so a company often holds many certificates. The checker returns the soonest upcoming expiry in validUntil and lists every date in expiryDates.

Can I check Singapore MUIS halal certificates?

No. The checker covers only Malaysia's JAKIM directory and Indonesia's BPJPH certificate search. Singapore's MUIS is excluded because its terms of use do not allow commercial reuse of its directory without permission.

Is it legal to check halal certificates this way?

The Actor reads only public registry search pages, one request at a time, and returns the business details those registries publish. Some Indonesian small businesses are registered under the owner's personal name, so results can contain personal data: make sure you have a legitimate reason, and consult a lawyer if unsure.