NOTE: Get an APIKey.
This code will allow you to get a session, fetch account info, upload a file, and search games. From it you should be able to discern how to work with the entire TGC API.
Imports System.Threading Imports Newtonsoft.Json Imports RestSharp Module Module1 Const API_KEY_ID = "" ' get your own Const USERNAME = "" ' put your username here; Const PASSWORD = "" ' put your password here; Dim client As RestClient Dim session_id As String Dim user_id As String Sub Main() client = New RestClient("https://www.thegamecrafter.com/api/") Console.WriteLine("Getting A Session...") GetASession(USERNAME, PASSWORD) Console.WriteLine("Session ID: " + session_id) Console.WriteLine("User ID: " + user_id) Thread.Sleep(1000) Console.WriteLine(Environment.NewLine) Console.WriteLine("Fetching My Account Info...") Dim user = FetchMyAccountInfo() Console.WriteLine("Display Name: " + user("display_name")) Console.WriteLine("email: " + user("email")) Thread.Sleep(1000) Console.WriteLine(Environment.NewLine) Console.WriteLine("Uploading A File...") Dim file = UploadAFile(user, "path/to/image.png", "image.png") Console.WriteLine("File name: " + file("name")) Console.WriteLine("File ID: " + file("id")) Thread.Sleep(1000) Console.WriteLine(Environment.NewLine) Console.WriteLine("Searching Games...") Dim games = SearchGames() For Each game As Object In games Console.WriteLine("Game Name: " + game("name")) Console.WriteLine("Game ID: " + game("id")) Thread.Sleep(100) Next Console.WriteLine(Environment.NewLine) Console.Write("Hit any key to close...") Console.ReadKey() End Sub Sub GetASession(username As String, password As String) Dim request = New RestRequest("session", Method.POST) request.AddParameter("username", username) request.AddParameter("password", password) request.AddParameter("api_key_id", API_KEY_ID) Dim response = client.Execute(request) Dim data = JsonConvert.DeserializeObject(response.Content) session_id = data("result")("id") user_id = data("result")("user_id") End Sub Function FetchMyAccountInfo() As Object Dim request = New RestRequest("user/" + user_id, Method.GET) request.AddParameter("session_id", session_id) Dim response = client.Execute(request) Dim data = JsonConvert.DeserializeObject(response.Content) Dim user = data("result") Return user End Function Function UploadAFile(user As Object, filepath As String, filename As String) As Object Dim request = New RestRequest("file", Method.POST) request.AddFile("file", filepath) request.AddParameter("name", filename) request.AddParameter("folder_id", user("root_folder_id")) request.AddParameter("session_id", session_id) Dim response = client.Execute(request) Dim data = JsonConvert.DeserializeObject(response.Content) Dim file = data("result") Return file End Function Function SearchGames() As Object Dim request = New RestRequest("game", Method.GET) request.AddParameter("q", "Steampunk") request.AddParameter("session_id", session_id) Dim response = client.Execute(request) Dim data = JsonConvert.DeserializeObject(response.Content) Dim games = data("result")("items") Return games End Function End Module