{"id":30902908,"url":"https://github.com/jayluxferro/ghanapostgps-rest-api","last_synced_at":"2025-09-09T08:53:47.845Z","repository":{"id":56781709,"uuid":"292926264","full_name":"jayluxferro/GhanaPostGPS-REST-API","owner":"jayluxferro","description":"REST API for GhanaPostGPS ","archived":false,"fork":false,"pushed_at":"2024-12-12T06:19:22.000Z","size":1936,"stargazers_count":51,"open_issues_count":0,"forks_count":26,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-14T10:57:33.978Z","etag":null,"topics":["api","documentation","ghanapost","ghanapostgps","rest-api","restful-api"],"latest_commit_sha":null,"homepage":"https://jayluxferro.github.io/ghpgps/index.html","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jayluxferro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-04T19:04:40.000Z","updated_at":"2024-12-25T23:17:59.000Z","dependencies_parsed_at":"2023-12-19T03:27:53.877Z","dependency_job_id":"c95c4c33-bf4b-47ce-ad5d-380d99fa9744","html_url":"https://github.com/jayluxferro/GhanaPostGPS-REST-API","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jayluxferro/GhanaPostGPS-REST-API","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayluxferro%2FGhanaPostGPS-REST-API","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayluxferro%2FGhanaPostGPS-REST-API/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayluxferro%2FGhanaPostGPS-REST-API/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayluxferro%2FGhanaPostGPS-REST-API/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jayluxferro","download_url":"https://codeload.github.com/jayluxferro/GhanaPostGPS-REST-API/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayluxferro%2FGhanaPostGPS-REST-API/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274268373,"owners_count":25253390,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","documentation","ghanapost","ghanapostgps","rest-api","restful-api"],"created_at":"2025-09-09T08:53:44.737Z","updated_at":"2025-09-09T08:53:47.835Z","avatar_url":"https://github.com/jayluxferro.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"## GhanaPostGPS REST API\n### Whitepaper\n\u003cp\u003e\u003ca target=\"_blank\" href=\"http://dx.doi.org/10.13140/RG.2.2.24355.27684/2\"\u003eRead Now\u003c/a\u003e\u003c/p\u003e\n\u003cbr/\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003ePostman Collection\u003c/summary\u003e\n\u003chr/\u003e\n\n### Postman Collection\nDownload: [GhanaPostGPS-REST-API.postman_collection.json](https://github.com/jayluxferro/GhanaPostGPS-REST-API/blob/master/GhanaPostGPS-REST-API.postman_collection.json)\n\u003c/details\u003e\n\u003cbr/\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eDocker Instance\u003c/summary\u003e\n\u003chr/\u003e\n\n### Docker Deployment\nDetails: https://hub.docker.com/r/jayluxferro/ghanapostgps-api\n1. Pull the docker image. `docker pull jayluxferro/ghanapostgps-api:latest`\n2. Run the docker image. `docker run -d -p 9091:9091 -ti jayluxferro/ghanapostgps-api`.\n\n**NB:**\n* Default port for the service is `9091`.\n* Base URL: `http://localhost:9091`\n\u003c/details\u003e\n\u003cbr/\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eGet Location Coordinates (Latitude/Longitude) from GhanaPostGPS Address.\u003c/summary\u003e\n\u003chr/\u003e\n### API Details\u003cbr\u003e\n\u003cb\u003eEnd Point URL:\u003c/b\u003e https://ghanapostgps.sperixlabs.org/get-location\u003cbr\u003e\n\u003cb\u003eMethod:\u003c/b\u003e POST\u003cbr\u003e\n\u003cb\u003eAPI Parameters:\u003c/b\u003e address (GhanaPostGPS Address)\u003cbr\u003e\n\u003cb\u003eContent-Type:\u003c/b\u003e application/x-www-form-urlencoded\u003cbr\u003e\u003cbr\u003e\n#### Output/Response:\u003cbr\u003e\n\n1. Location found\n\n```json\n{\n    \"data\": {\n        \"Table\": [\n            {\n                \"Area\": \"NEW KAGYASI\",\n                \"CenterLatitude\": 6.650080145273592,\n                \"CenterLongitude\": -1.648700346667856,\n                \"District\": \"Kumasi\",\n                \"EastLat\": 6.65005768739201,\n                \"EastLong\": -1.6486780409076,\n                \"GPSName\": \"AK4849321\",\n                \"NorthLat\": 6.65010262239948,\n                \"NorthLong\": -1.6487229566718,\n                \"PostCode\": \"AK484\",\n                \"Region\": \"Ashanti\",\n                \"SouthLat\": 6.65005768739201,\n                \"SouthLong\": -1.6487229566718,\n                \"Street\": \"Kumasi, Ashanti, GHA\",\n                \"WestLat\": 6.65010262239948,\n                \"WestLong\": -1.6486780409076\n            }\n        ]\n    },\n    \"found\": true\n}\n```\n\n2. Location not found\n\n```json\n{\n    \"data\": {\n        \"Table\": null\n    },\n    \"found\": false\n}\n```\n\n### Sample Codes\n\u003ca href=\"#csharp\"\u003eC-Sharp\u003c/a\u003e | \u003ca href=\"#curl\"\u003ecURL\u003c/a\u003e | \u003ca href=\"#go\"\u003eGolang\u003c/a\u003e | \u003ca href=\"#js\"\u003eJavascript\u003c/a\u003e | \u003ca href=\"#node\"\u003eNodeJS\u003c/a\u003e | \u003ca href=\"#php\"\u003ePHP\u003c/a\u003e | \u003ca href=\"#python\"\u003ePython\u003c/a\u003e | \u003ca href=\"#swift\"\u003eSwift\u003c/a\u003e | \u003ca href=\"#java\"\u003eJava\u003c/a\u003e | \u003ca href=\"#ruby\"\u003eRuby\u003c/a\u003e | \u003ca href=\"#powershell\"\u003ePowerShell\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n\u003chr/\u003e\n\u003cb\u003eAddress:\u003c/b\u003e AK-484-9321 or AK4849321\u003cbr\u003e\u003cbr\u003e\n\n\u003chr id=\"csharp\"\u003e\n\u003ch4\u003eC-Sharp\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```javascript\nvar client = new RestClient(\"https://ghanapostgps.sperixlabs.org/get-location\");\nclient.Timeout = -1;\nvar request = new RestRequest(Method.POST);\nrequest.AddHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\nrequest.AddParameter(\"address\", \"AK-484-9321\");\nrequest.OnBeforeDeserialization = resp =\u003e { resp.ContentType = \"application/json\"; };\nIRestResponse response = client.Execute(request);\nConsole.WriteLine(response.Content);\n```\n\n\u003chr id=\"curl\"\u003e\n\u003ch4\u003ecURL\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```bash\ncurl --location --request POST 'https://ghanapostgps.sperixlabs.org/get-location' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--data-urlencode 'address=AK-484-9321'\n```\n\n\u003chr id=\"go\"\u003e\n\u003ch4\u003eGo\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n  \"strings\"\n  \"net/http\"\n  \"io/ioutil\"\n)\n\nfunc main() {\n\n  url := \"https://ghanapostgps.sperixlabs.org/get-location\"\n  method := \"POST\"\n\n  payload := strings.NewReader(\"address=AK-484-9321\")\n\n  client := \u0026http.Client {\n  }\n  req, err := http.NewRequest(method, url, payload)\n\n  if err != nil {\n    fmt.Println(err)\n  }\n  req.Header.Add(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\n  res, err := client.Do(req)\n  defer res.Body.Close()\n  body, err := ioutil.ReadAll(res.Body)\n\n  fmt.Println(string(body))\n}\n```\n\n\u003chr id=\"js\"\u003e\n\u003ch4\u003eJavscript\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```javascript\nvar myHeaders = new Headers();\nmyHeaders.append(\"Content-Type\", \"application/x-www-form-urlencoded\");\n\nvar urlencoded = new URLSearchParams();\nurlencoded.append(\"address\", \"AK-484-9321\");\n\nvar requestOptions = {\n  method: 'POST',\n  headers: myHeaders,\n  body: urlencoded,\n  redirect: 'follow'\n};\n\nfetch(\"https://ghanapostgps.sperixlabs.org/get-location\", requestOptions)\n  .then(response =\u003e response.json())\n  .then(result =\u003e console.log(result))\n  .catch(error =\u003e console.log('error', error));\n```\n\n\n\n\u003chr id=\"node\"\u003e\n\u003ch4\u003eNodeJS\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```javascript\nvar request = require('request');\nvar options = {\n  'method': 'POST',\n  'url': 'https://ghanapostgps.sperixlabs.org/get-location',\n  'headers': {\n    'Content-Type': 'application/x-www-form-urlencoded'\n  },\n  form: {\n    'address': 'AK-484-9321'\n  }\n};\nrequest(options, function (error, response) {\n  if (error) throw new Error(error);\n  console.log(response.body);\n});\n```\n\n\n\u003chr id=\"php\"\u003e\n\u003ch4\u003ePHP\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```php\n\u003c?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =\u003e \"https://ghanapostgps.sperixlabs.org/get-location\",\n  CURLOPT_RETURNTRANSFER =\u003e true,\n  CURLOPT_ENCODING =\u003e \"\",\n  CURLOPT_MAXREDIRS =\u003e 10,\n  CURLOPT_TIMEOUT =\u003e 0,\n  CURLOPT_FOLLOWLOCATION =\u003e true,\n  CURLOPT_HTTP_VERSION =\u003e CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =\u003e \"POST\",\n  CURLOPT_POSTFIELDS =\u003e \"address=AK-484-9321\",\n  CURLOPT_HTTPHEADER =\u003e array(\n    \"Content-Type: application/x-www-form-urlencoded\"\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n```\n\n\n\u003chr id=\"python\"\u003e\n\u003ch4\u003ePython\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```python\nimport requests\n\nurl = \"https://ghanapostgps.sperixlabs.org/get-location\"\n\npayload = 'address=AK-484-9321'\nheaders = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data = payload)\n\nprint(response.json())\n```\n\n\n\u003chr id=\"swift\"\u003e\n\u003ch4\u003eSwift\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```swift\nimport Foundation\n\nvar semaphore = DispatchSemaphore (value: 0)\n\nlet parameters = \"address=AK-484-9321\"\nlet postData =  parameters.data(using: .utf8)\n\nvar request = URLRequest(url: URL(string: \"https://ghanapostgps.sperixlabs.org/get-location\")!,timeoutInterval: Double.infinity)\nrequest.addValue(\"application/x-www-form-urlencoded\", forHTTPHeaderField: \"Content-Type\")\n\nrequest.httpMethod = \"POST\"\nrequest.httpBody = postData\n\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in \n  guard let data = data else {\n    print(String(describing: error))\n    return\n  }\n  print(String(data: data, encoding: .utf8)!)\n  semaphore.signal()\n}\n\ntask.resume()\nsemaphore.wait()\n```\n\n\n\u003chr id=\"java\"\u003e\n\u003ch4\u003eJava\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```java\nOkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/x-www-form-urlencoded\");\nRequestBody body = RequestBody.create(mediaType, \"address=AK-484-9321\");\nRequest request = new Request.Builder()\n  .url(\"https://ghanapostgps.sperixlabs.org/get-location\")\n  .method(\"POST\", body)\n  .addHeader(\"Content-Type\", \"application/x-www-form-urlencoded\")\n  .build();\nResponse response = client.newCall(request).execute();\n```\n\n\u003chr id=\"ruby\"\u003e\n\u003ch4\u003eRuby\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```ruby\nrequire \"uri\"\nrequire \"net/http\"\n\nurl = URI(\"https://ghanapostgps.sperixlabs.org/get-location\")\n\nhttps = Net::HTTP.new(url.host, url.port);\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Content-Type\"] = \"application/x-www-form-urlencoded\"\nrequest.body = \"address=AK-484-9321\"\n\nresponse = https.request(request)\nputs response.read_body\n```\n\n\n\u003chr id=\"powershell\"\u003e\n\u003ch4\u003ePowerShell\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```powershell\n$headers = New-Object \"System.Collections.Generic.Dictionary[[String],[String]]\"\n$headers.Add(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\n$body = \"address=AK-484-9321\"\n\n$response = Invoke-RestMethod 'https://ghanapostgps.sperixlabs.org/get-location' -Method 'POST' -Headers $headers -Body $body\n$response | ConvertTo-Json\n```\n\u003c/details\u003e\n\u003cbr\u003e\n\n\n\u003cdetails\u003e\n\u003csummary\u003eGet GhanaPostGPS Address from Location Coordinates (Latitude/Longitude).\u003c/summary\u003e\n\u003chr/\u003e\n### API Details\u003cbr\u003e\n\u003cb\u003eEnd Point URL:\u003c/b\u003e https://ghanapostgps.sperixlabs.org/get-address\u003cbr\u003e\n\u003cb\u003eMethod:\u003c/b\u003e POST\u003cbr\u003e\n\u003cb\u003eAPI Parameters:\u003c/b\u003e lat (latitude), long (longitude)\u003cbr\u003e\n\u003cb\u003eContent-Type:\u003c/b\u003e application/x-www-form-urlencoded\u003cbr\u003e\u003cbr\u003e\n#### Output/Response:\u003cbr\u003e\n\n1. Address found\n\n```json\n{\n    \"data\": {\n      \"Table\": [\n        {\n          \"GPSName\": \"AK4849319\",\n          \"Region\": \"Ashanti\",\n          \"District\": \"Kumasi\",\n          \"PostCode\": \"AK484\",\n          \"NLat\": 6.650012752389040,\n          \"SLat\": 6.649967817390580,\n          \"WLong\": -1.648722956671800,\n          \"Elong\": -1.648678040907600,\n          \"Area\": \"NEW KAGYASI\",\n          \"Street\": \"Kumasi, Ashanti, GHA\"\n        }\n      ]\n    },\n    \"found\": true\n}\n```\n\n2. Address not found\n\n```json\n{\n    \"data\": {\n        \"Table\": null\n    },\n    \"found\": false\n}\n```\n\n### Sample Codes\n\u003ca href=\"#csharp2\"\u003eC-Sharp\u003c/a\u003e | \u003ca href=\"#curl2\"\u003ecURL\u003c/a\u003e | \u003ca href=\"#go2\"\u003eGolang\u003c/a\u003e | \u003ca href=\"#js2\"\u003eJavascript\u003c/a\u003e | \u003ca href=\"#node2\"\u003eNodeJS\u003c/a\u003e | \u003ca href=\"#php2\"\u003ePHP\u003c/a\u003e | \u003ca href=\"#python2\"\u003ePython\u003c/a\u003e | \u003ca href=\"#swift2\"\u003eSwift\u003c/a\u003e | \u003ca href=\"#java2\"\u003eJava\u003c/a\u003e | \u003ca href=\"#ruby2\"\u003eRuby\u003c/a\u003e | \u003ca href=\"#powershell2\"\u003ePowerShell\u003c/a\u003e\u003cbr\u003e\u003cbr\u003e\n\u003chr/\u003e\n\u003cb\u003eAddress:\u003c/b\u003e AK-484-9321 or AK4849321\u003cbr\u003e\u003cbr\u003e\n\n\u003chr id=\"csharp2\"\u003e\n\u003ch4\u003eC-Sharp\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```javascript\nvar client = new RestClient(\"https://ghanapostgps.sperixlabs.org/get-address\");\nclient.Timeout = -1;\nvar request = new RestRequest(Method.POST);\nrequest.AddHeader(\"Content-Type\", \"application/x-www-form-urlencoded\");\nrequest.AddParameter(\"lat\", \"6.6500\");\nrequest.AddParameter(\"long\", \"-1.6487\");\nrequest.OnBeforeDeserialization = resp =\u003e { resp.ContentType = \"application/json\"; };\nIRestResponse response = client.Execute(request);\nConsole.WriteLine(response.Content);\n```\n\n\u003chr id=\"curl2\"\u003e\n\u003ch4\u003ecURL\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```bash\ncurl --location --request POST 'https://ghanapostgps.sperixlabs.org/get-address' --form 'lat=\"6.6500\"' --form 'long=\"-1.647\"'\n```\n\n\u003chr id=\"go2\"\u003e\n\u003ch4\u003eGo\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```go\npackage main\n\nimport (\n  \"fmt\"\n  \"bytes\"\n  \"mime/multipart\"\n  \"net/http\"\n  \"io/ioutil\"\n)\n\nfunc main() {\n\n  url := \"https://ghanapostgps.sperixlabs.org/get-address\"\n  method := \"POST\"\n\n  payload := \u0026bytes.Buffer{}\n  writer := multipart.NewWriter(payload)\n  _ = writer.WriteField(\"lat\", \"6.6500\")\n  _ = writer.WriteField(\"long\", \"-1.647\")\n  err := writer.Close()\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n\n\n  client := \u0026http.Client {\n  }\n  req, err := http.NewRequest(method, url, payload)\n\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  req.Header.Add(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\n  req.Header.Set(\"Content-Type\", writer.FormDataContentType())\n  res, err := client.Do(req)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  defer res.Body.Close()\n\n  body, err := ioutil.ReadAll(res.Body)\n  if err != nil {\n    fmt.Println(err)\n    return\n  }\n  fmt.Println(string(body))\n}\n```\n\n\u003chr id=\"js2\"\u003e\n\u003ch4\u003eJavscript\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```javascript\nvar myHeaders = new Headers();\nmyHeaders.append(\"Content-Type\", \"application/x-www-form-urlencoded\");\n\nvar formdata = new FormData();\nformdata.append(\"lat\", \"6.6500\");\nformdata.append(\"long\", \"-1.647\");\n\nvar requestOptions = {\n  method: 'POST',\n  headers: myHeaders,\n  body: formdata\n};\n\nfetch(\"https://ghanapostgps.sperixlabs.org/get-address\", requestOptions)\n  .then(response =\u003e response.json())\n  .then(result =\u003e console.log(result))\n  .catch(error =\u003e console.log('error', error));\n```\n\n\n\n\u003chr id=\"node2\"\u003e\n\u003ch4\u003eNodeJS\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```javascript\nvar request = require('request');\nvar options = {\n  'method': 'POST',\n  'url': 'https://ghanapostgps.sperixlabs.org/get-address',\n  'headers': {\n    'Content-Type': 'application/x-www-form-urlencoded'\n  },\n  formData: {\n    'lat': '6.6500',\n    'long': '-1.647'\n  }\n};\nrequest(options, function (error, response) {\n  if (error) throw new Error(error);\n  console.log(response.body);\n});\n```\n\n\n\u003chr id=\"php2\"\u003e\n\u003ch4\u003ePHP\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```php\n\u003c?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n  CURLOPT_URL =\u003e 'https://ghanapostgps.sperixlabs.org/get-address',\n  CURLOPT_RETURNTRANSFER =\u003e true,\n  CURLOPT_ENCODING =\u003e '',\n  CURLOPT_MAXREDIRS =\u003e 10,\n  CURLOPT_TIMEOUT =\u003e 0,\n  CURLOPT_FOLLOWLOCATION =\u003e true,\n  CURLOPT_HTTP_VERSION =\u003e CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST =\u003e 'POST',\n  CURLOPT_POSTFIELDS =\u003e http_build_query(array('lat' =\u003e '6.6500','long' =\u003e '-1.647')),\n  CURLOPT_HTTPHEADER =\u003e array(\n    'Content-Type: application/x-www-form-urlencoded'\n  ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n```\n\n\n\u003chr id=\"python2\"\u003e\n\u003ch4\u003ePython\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```python\nimport requests\n\nurl = \"https://ghanapostgps.sperixlabs.org/get-address\"\n\npayload={'lat': '6.6500', 'long': '-1.647'}\nfiles=[]\nheaders = {\n  'Content-Type': 'application/x-www-form-urlencoded'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload, files=files)\n\nprint(response.json())\n```\n\n\n\u003chr id=\"swift2\"\u003e\n\u003ch4\u003eSwift\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```swift\nimport Foundation\n#if canImport(FoundationNetworking)\nimport FoundationNetworking\n#endif\n\nvar semaphore = DispatchSemaphore (value: 0)\n\nlet parameters = [\n  [\n    \"key\": \"lat\",\n    \"value\": \"6.6500\",\n    \"type\": \"text\"\n  ],\n  [\n    \"key\": \"long\",\n    \"value\": \"-1.647\",\n    \"type\": \"text\"\n  ]] as [[String : Any]]\n\nlet boundary = \"Boundary-\\(UUID().uuidString)\"\nvar body = \"\"\nvar error: Error? = nil\nfor param in parameters {\n  if param[\"disabled\"] == nil {\n    let paramName = param[\"key\"]!\n    body += \"--\\(boundary)\\r\\n\"\n    body += \"Content-Disposition:form-data; name=\\\"\\(paramName)\\\"\"\n    if param[\"contentType\"] != nil {\n      body += \"\\r\\nContent-Type: \\(param[\"contentType\"] as! String)\"\n    }\n    let paramType = param[\"type\"] as! String\n    if paramType == \"text\" {\n      let paramValue = param[\"value\"] as! String\n      body += \"\\r\\n\\r\\n\\(paramValue)\\r\\n\"\n    } else {\n      let paramSrc = param[\"src\"] as! String\n      let fileData = try NSData(contentsOfFile:paramSrc, options:[]) as Data\n      let fileContent = String(data: fileData, encoding: .utf8)!\n      body += \"; filename=\\\"\\(paramSrc)\\\"\\r\\n\"\n        + \"Content-Type: \\\"content-type header\\\"\\r\\n\\r\\n\\(fileContent)\\r\\n\"\n    }\n  }\n}\nbody += \"--\\(boundary)--\\r\\n\";\nlet postData = body.data(using: .utf8)\n\nvar request = URLRequest(url: URL(string: \"https://ghanapostgps.sperixlabs.org/get-address\")!,timeoutInterval: Double.infinity)\nrequest.addValue(\"application/x-www-form-urlencoded\", forHTTPHeaderField: \"Content-Type\")\nrequest.addValue(\"multipart/form-data; boundary=\\(boundary)\", forHTTPHeaderField: \"Content-Type\")\n\nrequest.httpMethod = \"POST\"\nrequest.httpBody = postData\n\nlet task = URLSession.shared.dataTask(with: request) { data, response, error in \n  guard let data = data else {\n    print(String(describing: error))\n    semaphore.signal()\n    return\n  }\n  print(String(data: data, encoding: .utf8)!)\n  semaphore.signal()\n}\n\ntask.resume()\nsemaphore.wait()\n```\n\n\u003chr id=\"ruby2\"\u003e\n\u003ch4\u003eRuby\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```ruby\nrequire \"uri\"\nrequire \"net/http\"\n\nurl = URI(\"https://ghanapostgps.sperixlabs.org/get-address\")\n\nhttp = Net::HTTP.new(url.host, url.port);\nrequest = Net::HTTP::Post.new(url)\nrequest[\"Content-Type\"] = \"application/x-www-form-urlencoded\"\nform_data = [['lat', '6.6500'],['long', '-1.647']]\nrequest.set_form form_data, 'multipart/form-data'\nresponse = http.request(request)\nputs response.read_body\n```\n\n\n\u003chr id=\"powershell2\"\u003e\n\u003ch4\u003ePowerShell\u003c/h4\u003e\n\u003chr/\u003e\nCode:\n\n```powershell\n$headers = New-Object \"System.Collections.Generic.Dictionary[[String],[String]]\"\n$headers.Add(\"Content-Type\", \"application/x-www-form-urlencoded\")\n\n$multipartContent = [System.Net.Http.MultipartFormDataContent]::new()\n$stringHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new(\"form-data\")\n$stringHeader.Name = \"lat\"\n$stringContent = [System.Net.Http.StringContent]::new(\"6.6500\")\n$stringContent.Headers.ContentDisposition = $stringHeader\n$multipartContent.Add($stringContent)\n\n$stringHeader = [System.Net.Http.Headers.ContentDispositionHeaderValue]::new(\"form-data\")\n$stringHeader.Name = \"long\"\n$stringContent = [System.Net.Http.StringContent]::new(\"-1.647\")\n$stringContent.Headers.ContentDisposition = $stringHeader\n$multipartContent.Add($stringContent)\n\n$body = $multipartContent\n\n$response = Invoke-RestMethod 'https://ghanapostgps.sperixlabs.org/get-address' -Method 'POST' -Headers $headers -Body $body\n$response | ConvertTo-Json\n```\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayluxferro%2Fghanapostgps-rest-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjayluxferro%2Fghanapostgps-rest-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayluxferro%2Fghanapostgps-rest-api/lists"}