REST Countries

Oceania · Melanesia

Papua New Guinea

Everything you need to work with Papua New Guinea country data: capital, population, currencies, languages, and codes, sourced from the REST Countries API and ready to drop into your own project.

Papua New Guinea flag

Country facts

Capital Port Moresby
Population 11,781,559
Region Oceania · Melanesia
Codes PG · PNG
Currencies Papua New Guinean kina (PGK)
Languages English Hiri Motu Tok Pisin
More data These are just the highlights. The REST Countries API returns 85+ more fields for Papua New Guinea, including borders, timezones, calling codes, native and translated names, and coordinates. See every field.

Call the Papua New Guinea country API

Request the full Papua New Guinea record from the REST Countries API. Copy the snippet for your language and drop in your own API key.

curl "https://api.restcountries.com/countries/v5/codes.alpha_2/PG?pretty=1" \
  -H "Authorization: Bearer {{your_api_key}}"
const response = await fetch(
  'https://api.restcountries.com/countries/v5/codes.alpha_2/PG',
  { headers: { 'Authorization': 'Bearer {{your_api_key}}' } }
);
const data = await response.json();
fetch(
  'https://api.restcountries.com/countries/v5/codes.alpha_2/PG',
  { headers: { 'Authorization': 'Bearer {{your_api_key}}' } }
)
  .then(function (response) { return response.json(); })
  .then(function (data) { console.log(data); });
import requests
response = requests.get(
  'https://api.restcountries.com/countries/v5/codes.alpha_2/PG',
  headers={'Authorization': 'Bearer {{your_api_key}}'}
)
data = response.json()
$ch = curl_init('https://api.restcountries.com/countries/v5/codes.alpha_2/PG');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer {{your_api_key}}']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = json_decode(curl_exec($ch), true);
require 'net/http'
require 'json'
uri = URI('https://api.restcountries.com/countries/v5/codes.alpha_2/PG')
request = Net::HTTP::Get.new(uri)
request['Authorization'] = 'Bearer {{your_api_key}}'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
  http.request(request)
end
data = JSON.parse(response.body)
package main
import (
  "encoding/json"
  "io"
  "net/http"
)
req, _ := http.NewRequest("GET", "https://api.restcountries.com/countries/v5/codes.alpha_2/PG", nil)
req.Header.Set("Authorization", "Bearer {{your_api_key}}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
var data map[string]interface{}
json.Unmarshal(body, &data)
use reqwest::blocking::Client;
use serde_json::Value;
let client = Client::new();
let response = client
  .get("https://api.restcountries.com/countries/v5/codes.alpha_2/PG")
  .header("Authorization", "Bearer {{your_api_key}}")
  .send()?;
let data: Value = response.json()?;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
  .uri(URI.create("https://api.restcountries.com/countries/v5/codes.alpha_2/PG"))
  .header("Authorization", "Bearer {{your_api_key}}")
  .GET()
  .build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
String body = response.body();
using System.Net.Http;
using System.Net.Http.Json;
using System.Text.Json;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer {{your_api_key}}");
var data = await client.GetFromJsonAsync<JsonElement>(
  "https://api.restcountries.com/countries/v5/codes.alpha_2/PG");
import Foundation
var request = URLRequest(url: URL(string: "https://api.restcountries.com/countries/v5/codes.alpha_2/PG")!)
request.addValue("Bearer {{your_api_key}}", forHTTPHeaderField: "Authorization")
let (data, _) = try await URLSession.shared.data(for: request)
let json = try JSONSerialization.jsonObject(with: data)

View flag assets

Integrate Papua New Guinea data into your app

The REST Countries API returns Papua New Guinea as structured JSON over HTTPS, ready to pull straight into web, mobile, and backend projects with no scraping and no manual data entry. Request only the fields you need and cache the response.

  • Populate country dropdowns, address forms, and checkout or shipping flows.
  • Localize your app with native names, languages, and currency details.
  • Enrich dashboards, CRMs, and analytics with region, population, and ISO codes.
  • Look up Papua New Guinea by alpha-2 code, alpha-3 code, or country name.

Read the API docs