{
  "id": 12801872,
  "title": "Fetching Instagram profiles concurrently in Go with HikerAPI",
  "url": "https://urgent.news/2026/10/08/fetching-instagram-profiles-concurrently-in-go-with-hikerapi",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-10-08T06:07:09.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/ngel_josuparramendoza/fetching-instagram-profiles-concurrently-in-go-with-hikerapi-13al"
  },
  "original_language": "en",
  "account": "HikerAPI offers official clients for Python and Node, but lacks a Go client. The author decided to create a Go client to retrieve public Instagram profile data (followers, post count, bio) using only the standard library. A CLI was developed that accepts a list of usernames, fetches them concurrently with a worker pool, and prints JSON objects per line ready for jq or .jsonl files. A test is included, running against a fake server to avoid spending API credits. To get started, create an account at hikerapi.com and generate an access key. The endpoint used is GET https://api.hikerapi.com/v2/user/by/username?username= with the header x-access-key: your-access-key. The response wraps the profile in a user object, and only the needed fields are decoded, ignoring the rest. A custom type FlexID handles the user ID (pk) that can appear as a number or string, ensuring proper decoding. A Client struct is defined with a key, base URL, and http.Client for making requests. The UserByUsername method fetches a profile by username, handling potential errors and encoding the response. Two decisions worth noting are setting base as a field for testing and including an empty-username check. To fetch multiple profiles concurrently, a fixed pool of workers reads from a channel. The client is tested using net/http/httptest, covering real parsing and error handling without network requests.",
  "summary": "HikerAPI has official clients for Python and Node, but not for Go. I wanted to pull public Instagram profile data (followers, post count, bio) from a Go program, so I wrote a small client using only the standard library. By the end of this post you'll have a CLI that: takes a list of usernames, fetches them concurrently with a bounded worker pool, prints one JSON object per line (ready for jq or…",
  "key_points": [
    "HikerAPI lacks a Go client for Instagram profiles.",
    "CLI fetches profiles concurrently with worker pool.",
    "Access key required for API endpoint GET request."
  ],
  "editors_take": "This development gives Go developers an official-like way to tap into HikerAPI's Instagram profile data, fitting a growing pattern of language-specific clients for accessing the API's capabilities.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}