نسخة تجريبية أعاد بناءها فريق الابتكار في IMB. الموقع الرسمي هو peoplegroups.org.

وثائق المطورين متاحة بالإنجليزية.

Data

Using the API

Free, public, read-only access to the research data on every people group. No account or key. Use it to build maps, prayer tools, research applications and more.

Base URL
https://pgorg.donbarger.com/api/v1
Also served at
https://pgorg.donbarger.com/wp-json/pg/v1, the current site's address, so existing integrations keep working unchanged.
Data
Refreshed daily from IMB Global Research. CORS is open (Access-Control-Allow-Origin: *).

Endpoints

EndpointReturns
GET /people-groupsA page of people group records. Takes every filter below.
GET /people-groups/{pgid}One record, e.g. PG006400 (case-insensitive).
GET /people-groups/exportThe filtered set as CSV (23 columns). Pages only if page or per_page is given.
GET /statsTotals for the filtered set, plus facet counts by country, religion, language, indigenous and affinity group.
GET /breakdown/{dimension}Counts and population grouped by one dimension, largest first.
GET /countries, /languages, /religionsEach code with totals by gospel status.
GET /affinity-groupsThe eight IMB affinity groups with totals.
GET /people-groups/{pgid}/geometryThe group's boundary polygon (GeoJSON) and point. New.

Filters

Every filter takes one or more values, comma-separated (country=IND,PAK) or repeated (country[]=IND&country[]=PAK). Values are case-insensitive. Different filters combine with AND; values within one filter combine with OR.

ParameterMatches
engagementStrategic Progress Index: 0 Unengaged and Unreached, 1 Engaged yet Unreached, 2 No Longer Unreached
gsecGSEC code, 0–6
lostnessLostness priority code, 0 (Frontier) – 6
region, subregionUN M49 code (142) or name (Asia)
countryISO 3166 alpha-3 code (PAK) or name (Pakistan)
religionReligion code (MSN) or name
languageISO 639-3 code (snd) or name
language_familyLanguage family name
indigenousIndigenous or Diaspora
affinity_groupAffinity code (AG500), name or short name
rop1, rop2, rop25, rop3Registry of Peoples codes
pgidOne or more PGIDs
qWords that start with the search text, across names, alternate names, the ROP hierarchy, language and country. Every word must match.
min_lat, max_lat, min_lng, max_lngBounding box

Paging and sorting

Examples

One people group

GET https://pgorg.donbarger.com/api/v1/people-groups/PG006400
{
  "OBJECTID": 1166,
  "PEID": 6400,
  "PGID": "PG006400",
  "Name": "Sindhi",
  "DisplayName": "Sindhi",
  "AlternateNames": null,
  "PejorativeAltNames": null,
  "ISOAlpha3": "PAK",
  "CountryCode": "PAK",
  "CountryName": "Pakistan",
  "CountryDisplayName": "Pakistan",
  "CountryNameWithArticle": "Pakistan",
  "UNm49RegionName": "Asia",
  "UNm49RegionCode": "142",
  "UNm49Region": "142",
  "UNm49SubRegionName": "Southern Asia",
  "UNm49SubRegionCode": "034",
  "UNm49SubRegion": "34",
  "imbAffinityCode": "AG500",
  "imbAffinityName": "South Asian Peoples",
  "imbAffinityShortName": "ASAP",
  "Description": "an Indo-Aryan ethnolinguistic group who speak the Sindhi language and are native to the Sindh province of Pakistan",
  "LocationDescription": "Balochistan province: Khuzdar and Lasbela districts; Sindh province: widespread, Indus river lower reaches; Hyderabad, Karachi",
  "Population": 28290000,
  "EvangelicalLevel": "Less than 2%",
  "CongregationsExist": "Yes",
  "ChurchPlantingWithinLast2Years": "No Churches Planted",
  "EngagementStatus": "Engaged",
  "GSEC": 1,
  "GSECDescription": "Less than 2% Evangelical, No Recent CP Activity",
  "GSECLongDescription": "this people group is less than 2% evangelical, some evangelical resources are available, but there has been no active church planting among them within the past two years",
  "EngagementProgress": 1,
  "Status": 1,
  "StatusName": "Active",
  "EngagementProgressDesc": "Engaged yet Unreached",
  "LostnessPriority": 0,
  "LostnessPriorityName": "Frontier Unreached People Group",
  "LostnessPriorityDescription": "< 0.1% Evangelical",
  "LanguageCode": "snd",
  "ROLROLV": "snd",
  "LanguageName": "Sindhi",
  "LanguageFamily": "Indo-European",
  "LanguageSpeakers": 100,
  "ROR": "MSN",
  "ReligionCode": "MSN",
  "ReligionName": "Islam - Sunni",
  "ReligionAdherents": 95,
  "ReligionDescription": "Sunni Islam, the largest branch of Islam. Sunni Muslims follow the teachings of the Qur'an and consider the first four caliphs to be the rightful successors of Muhammad.",
  "RlgnBs": "Islam",
  "ROR4": "MSN",
  "ROR3": "M",
  "ReligionDisplayName": "Sunni Islam",
  "ROP3Code": "109027",
  "ROP3Name": "Sindhi",
  "ROP25": "307539",
  "ROP25Code": "307539",
  "ROP25Name": "Sindhi",
  "ROP2Code": "C0192",
  "ROP2Name": "Sindhi",
  "ROP1Code": "A012",
  "ROP1Name": "South Asian Peoples",
  "BibleAvailability": "Available",
  "JesusFilmAvailability": "Available",
  "RadioProgramAvailability": "Available",
  "GospelResourceAvailability": "Available",
  "AudioResourceAvailability": "Available",
  "BibleStoriesAvailability": "Not Available",
  "ResourceTotal": 5,
  "BiblePortionsAvailability": "Bible",
  "BibleYearPublished": "1954",
  "PhotoCredit": "Photo by Google. (2026). Image generated by Gemini 3.1 Flash: Sindhi",
  "PhotoURL": "https://images.peoplegroups.org/imbpeople-featured-images/PG006400.jpg",
  "HasPhoto": "Y",
  "Indigenous": "Indigenous",
  "Lat": 25.39,
  "Long": 68.39,
  "PeopleSearch": "Sindhi of Pakistan (PG006400)",
  "UpdatedDate": "1790348661000",
  "CreatedDate": "978307200000",
  "DeletedDate": null,
  "CaptureDate": "2026-10-03"
}

Unengaged groups in Pakistan, largest first

GET https://pgorg.donbarger.com/api/v1/people-groups?country=PAK&engagement=0&orderby=population&order=desc&per_page=2
X-WP-Total: 28
X-WP-TotalPages: 14

[
  {
    "PGID": "PG046998",
    "DisplayName": "Deaf Pakistanis",
    "CountryName": "Pakistan",
    "Population": 10260000,
    "EngagementProgressDesc": "Unengaged and Unreached",
    "…": "(all fields, as above)"
  },
  {
    "PGID": "PG006346",
    "DisplayName": "Eastern Baloch",
    "CountryName": "Pakistan",
    "Population": 2995000,
    "EngagementProgressDesc": "Unengaged and Unreached",
    "…": "(all fields, as above)"
  }
]

Totals and facets

GET https://pgorg.donbarger.com/api/v1/stats?country=PAK
{
  "totals": {
    "total_pgs": 86,
    "total_pg_population": 258483325,
    "total_uupgs": 28,
    "total_uupg_population": 16199025,
    "total_eupgs": 51,
    "total_eupg_population": 239651800,
    "total_upgs": 79,
    "total_upg_population": 255850825,
    "total_nupg": 7,
    "total_nupg_population": 2632500,
    "distinct_countries": 1,
    "distinct_religions": 8,
    "distinct_languages": 69,
    "distinct_rop1": 8,
    "distinct_rop2": 33,
    "distinct_rop25": 72,
    "distinct_rop3": 86
  },
  "facets": {
    "countries": [
      {
        "code": "ABW",
        "total_pgs": 5,
        "total_pg_population": 108500
      },
      {
        "code": "AFG",
        "total_pgs": 45,
        "total_pg_population": 45040000
      },
      "…"
    ],
    "religions": [
      {
        "code": "BLA",
        "total_pgs": 2,
        "total_pg_population": 22300
      },
      {
        "code": "CPR",
        "total_pgs": 2,
        "total_pg_population": 771000
      },
      "…"
    ],
    "languages": [
      {
        "code": "arb",
        "total_pgs": 1,
        "total_pg_population": 248000
      },
      {
        "code": "bcc",
        "total_pgs": 1,
        "total_pg_population": 4590000
      },
      "…"
    ],
    "indigenous": [
      {
        "code": "Diaspora",
        "total_pgs": 13,
        "total_pg_population": 4208500
      },
      {
        "code": "Indigenous",
        "total_pgs": 73,
        "total_pg_population": 254274825
      },
      "…"
    ],
    "affinity_groups": [
      {
        "code": "AG100",
        "total_pgs": 2,
        "total_pg_population": 43500
      },
      {
        "code": "AG200",
        "total_pgs": 1,
        "total_pg_population": 248000
      },
      "…"
    ]
  }
}

Each facet ignores its own filter: filtering to Pakistan still lists every country in facets.countries, so you can show the alternatives. Facet order is not significant.

Breakdown by region

GET https://pgorg.donbarger.com/api/v1/breakdown/region
[
  {
    "code": "142",
    "name": "Asia",
    "total_pgs": 5073,
    "total_pg_population": 4905691085
  },
  {
    "code": "002",
    "name": "Africa",
    "total_pgs": 3076,
    "total_pg_population": 1550709325
  },
  {
    "code": "019",
    "name": "Americas",
    "total_pgs": 2118,
    "total_pg_population": 1063488010
  },
  {
    "code": "009",
    "name": "Oceania",
    "total_pgs": 1325,
    "total_pg_population": 47610895
  },
  {
    "code": "150",
    "name": "Europe",
    "total_pgs": 790,
    "total_pg_population": 742508780
  }
]

Dimensions: engagement, gsec, lostness, region, subregion, rop1, rop2, rop25, rop3, country, religion, language, language_family.

Code

JavaScript: page through every group

const all = [];
for (let page = 1, pages = 1; page <= pages; page++) {
  const res = await fetch(`https://pgorg.donbarger.com/api/v1/people-groups?per_page=250&page=${page}`);
  pages = Number(res.headers.get('X-WP-TotalPages'));
  all.push(...(await res.json()));
}
console.log(all.length, 'people groups');

Python: unreached groups in a country

import requests

r = requests.get("https://pgorg.donbarger.com/api/v1/people-groups",
                 params={"country": "PAK", "engagement": "0,1", "per_page": 250})
r.raise_for_status()
for g in r.json():
    print(g["PGID"], g["DisplayName"], g["Population"], g["EngagementProgressDesc"])

curl: download a filtered CSV

curl -o unengaged.csv "https://pgorg.donbarger.com/api/v1/people-groups/export?engagement=0"

Errors

Errors use the same shape everywhere, with a matching HTTP status:

{
  "code": "pg_not_found",
  "message": "No people group found for PGID: PG999999",
  "data": {
    "status": 404
  }
}

Differences from the current peoplegroups.org API

Field definitions: People Group Field Descriptions (PDF). Filter names: engagement, gsec, lostness, region, subregion, rop1, rop2, rop25, rop3, country, religion, language, language_family, indigenous, affinity_group, pgid.