diff --git a/src/gourl/go.mod b/src/gourl/go.mod
new file mode 100644
index 0000000000000000000000000000000000000000..6ff37237127ca7b6d95b4850376bb8b662def4ad
--- /dev/null
+++ b/src/gourl/go.mod
@@ -0,0 +1,3 @@
+module github.com/turngeek/examples-go/src/gourl
+
+go 1.16
diff --git a/src/gourl/main.go b/src/gourl/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..46a378e052359c1235ff2ad19cd1ea132f2af557
--- /dev/null
+++ b/src/gourl/main.go
@@ -0,0 +1,24 @@
+package main
+
+import (
+	"fmt"
+	"io"
+	"log"
+	"net/http"
+	"os"
+)
+
+func main() {
+	if len(os.Args) < 2 || len(os.Args) > 3 {
+		fmt.Println("Usage: gourl [url]")
+		return
+	}
+	url := os.Args[1]
+	log.Printf("Calling %s ...", url)
+	response, err := http.Get(url)
+	if err != nil {
+		log.Fatalf("Can't read from %s:\n#%v", url, err)
+	}
+	io.Copy(os.Stdout, response.Body)
+	defer response.Body.Close()
+}