Discover/Gov API
live

Gov APIportalddms.malaysia.gov.my

Access the DDMS 2.0 Malaysia staff directory via API. Retrieve names, positions, phone numbers, and emails across JDN, ARKIB, and CGSO departments.

This API takes change requests — .
Endpoint health
verified 2h ago
list_personnel
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

What is the Gov API?

The DDMS 2.0 Malaysia Personnel Directory API exposes a single endpoint, list_personnel, that returns the full staff contact directory from the Malaysian government's DDMS 2.0 portal. Each of the 5 response fields per record covers a staff member's name, position, phone number, email address, and department affiliation. An optional department filter lets you narrow results to JDN, ARKIB, or CGSO specifically.

Try it
Filter results to a specific department.
api.parse.bot/scraper/56ef83f5-2db5-4e69-a93c-9cd90cd414f9/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/56ef83f5-2db5-4e69-a93c-9cd90cd414f9/list_personnel?department=JDN' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace portalddms-malaysia-gov-my-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.


"""Walkthrough: DDMS 2.0 Directory SDK — bounded, re-runnable; every call capped."""
from parse_apis.portalddms_malaysia_gov_my_api import DDMSDirectory, Department, DirectoryUnavailable

client = DDMSDirectory()

# List all personnel across all departments
for person in client.people.list(limit=3):
    print(person.name, person.position, person.email)

# Filter by department
for person in client.people.list(department=Department.ARKIB, limit=3):
    print(person.name, person.department, person.phone)

# Handle potential errors
try:
    first = client.people.list(department=Department.JDN, limit=1).first()
    print(first.name, first.email, first.position)
except DirectoryUnavailable as e:
    print("directory unavailable:", e)

print("exercised: people.list")
All endpoints · 1 totalmissing one? ·

Lists all personnel from the DDMS 2.0 team directory. Each record includes the staff member's name, position, phone number, full email address, and department. Results can be filtered by department. Returns the complete directory in a single page.

Input
ParamTypeDescription
departmentstringFilter results to a specific department.
Response
{
  "type": "object",
  "fields": {
    "total": "integer count of personnel returned",
    "personnel": "array of staff directory entries with name, position, phone, email, department"
  },
  "sample": {
    "data": {
      "total": 20,
      "personnel": [
        {
          "name": "John Doe",
          "email": "[email protected]",
          "phone": "+1 (555) 012-3456",
          "number": 1,
          "position": "Timbalan Pengarah (Pengurus Projek)",
          "department": "JDN"
        },
        {
          "name": "Jane Doe",
          "email": "[email protected]",
          "phone": "+1 (555) 012-3456",
          "number": 1,
          "position": "Pengarah Bahagian Pengurusan Rekod Kerajaan",
          "department": "ARKIB"
        }
      ]
    },
    "status": "success"
  }
}

About the Gov API

What the API Returns

The list_personnel endpoint returns the complete DDMS 2.0 team directory in a single response. Each entry in the personnel array includes the staff member's full name, job position, direct phone number, full email address, and department. The top-level total field gives you the integer count of records returned — useful for sanity-checking filtered results against the full directory.

Filtering by Department

The department parameter is optional. When omitted, list_personnel returns all personnel across every department in the directory. To scope results, pass one of the known department identifiers — JDN (Jabatan Digital Negara), ARKIB (Arkib Negara Malaysia), or CGSO (Corporate & General Services Office). The filter is applied server-side, so only matching records are returned in personnel.

Coverage and Scope

The directory reflects the personnel published on the DDMS 2.0 Contact Us page at portalddms.malaysia.gov.my. Coverage is limited to the three departments listed above; staff from other Malaysian government agencies are not included. The directory is a flat, non-paginated list — the full result set is always returned in one response.

Reliability & maintenanceVerified

The Gov API is a managed, monitored endpoint for portalddms.malaysia.gov.my — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when portalddms.malaysia.gov.my changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official portalddms.malaysia.gov.my API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Look up a specific DDMS 2.0 department contact by filtering list_personnel with the department parameter.
  • Build an internal contact card index from staff names, positions, and email addresses across JDN, ARKIB, and CGSO.
  • Automate email list generation for DDMS 2.0 departmental outreach using the email field.
  • Populate a CRM or directory tool with Malaysian government DDMS staff records and their direct phone numbers.
  • Validate or cross-reference government staff roles and positions programmatically using the position field.
  • Monitor department headcount changes over time by comparing total counts across periodic API calls.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does portalddms.malaysia.gov.my offer an official developer API?+
No. The DDMS 2.0 portal does not publish an official public developer API or documented data endpoint. This Parse API is the structured programmatic interface to that directory data.
What does `list_personnel` return when a `department` filter is applied?+
It returns only the personnel records matching that department, along with an updated total reflecting the filtered count. The three supported department values are JDN, ARKIB, and CGSO. Passing a department not present in the directory will return an empty personnel array with a total of 0.
Is the directory paginated, or are all records returned at once?+
All records are returned in a single response — there is no pagination. The total field at the top level of the response confirms how many entries are in the personnel array.
Does the API cover staff from other Malaysian government agencies beyond JDN, ARKIB, and CGSO?+
Not currently. The API covers only the three departments listed in the DDMS 2.0 portal directory: JDN, ARKIB, and CGSO. You can fork this API on Parse and revise it to point at additional Malaysian government directory pages and add the missing department coverage.
Does the API return org-chart relationships, reporting lines, or staff photos?+
Not currently. Each record includes name, position, phone, email, and department only — no hierarchical or visual data is exposed. You can fork this API on Parse and revise it to add any additional fields if the source page exposes them.
Page content last updated . Spec covers 1 endpoint from portalddms.malaysia.gov.my.
Related APIs in Government PublicSee all →
sgdi.gov.sg API
Search for Singapore government personnel, contacts, and organizational details to find the right department or official for your needs. Quickly locate specific government staff members and their contact information, or browse entire organizational structures within the Singapore Government Directory.
sco.ca.gov API
Access data from sco.ca.gov.
americanstaffing.net API
Search and find contact information for over 11,000 staffing firms across the US by keyword, state, employment type, or job category. Access complete details including addresses, phone numbers, and websites for any staffing company in the directory.
cyberbackgroundchecks.com API
Search for people by name or email to instantly retrieve their public information including addresses, phone numbers, relatives, and associates. Access detailed background records to verify identities, reconnect with contacts, or conduct people searches.
pddikti.kemdiktisaintek.go.id API
Search and retrieve comprehensive information about Indonesian higher education institutions, including details about students, lecturers, universities, and their study programs from the official national education database. Quickly look up specific universities, academic staff profiles, and available degree programs to research educational options or verify institution credentials.
dnb.com API
Search millions of companies in Dun & Bradstreet's global business directory to find detailed company profiles and verify D-U-N-S numbers. Look up key business information like company details and identifiers to support due diligence, sales prospecting, and business intelligence needs.
fastpeoplesearch.com API
Find detailed public records and person profiles by searching with a name, phone number, or address. Get comprehensive information about individuals including their contact details, address history, and personal background all in one lookup.
krak.dk API
Search for businesses and people in Denmark, retrieve detailed information like contact details and company profiles, and look up phone numbers to identify callers or report spam statistics. Find what you're looking for in the Danish business and person directory with instant access to company details, personal information, and caller identification data.