Use a Ticketmaster TMPT cookie with Go
Use Solution.Token as the value of a cookie named tmpt. Send the target request through the successful proxy with the returned browser identity. The SDK obtains the solution; your Go HTTP client submits it.
On this page
Choose the action and exact target URL
Create a TaskRequest with Type set to TicketmasterTmptTask, a target URL, an Action, and a proxy input.
- For an event, use
Eventand the exact event URL you intend to request. - For sign-in, use
Loginand the sign-in entry URL.
Don't send Site, RecaptchaType, or a session field. TMPT returns a raw cookie value, not a reCAPTCHA token or a Kasada headers object.
Solve, then send the target request
Use Go 1.22 or newer and the official module solvethree.com/sdk at version v0.1.0. Installation details are in the Go integration documentation. Set SOLVETHREE_API_KEY to your workspace key and SOLVETHREE_PROXY to your proxy URL. Keep the API key on the server.
The example uses Login. For an event, change Action to Event and replace URL with the exact event URL before solving. For login, confirm that URL is the intended sign-in entry URL. The later GET uses that same input.URL.
package main
import (
"context"
"fmt"
"log"
"os"
"net/http"
"net/url"
"time"
solvethree "solvethree.com/sdk"
)
func main() {
client, err := solvethree.NewClient(os.Getenv("SOLVETHREE_API_KEY"), nil)
if err != nil { log.Fatal(err) }
ctx, cancel := context.WithTimeout(context.Background(), 180*time.Second)
defer cancel()
input := solvethree.TaskRequest{Type: "TicketmasterTmptTask", URL: "https://www.ticketmaster.com/", Action: "Login", Proxy: os.Getenv("SOLVETHREE_PROXY")}
result, err := client.Solve(ctx, input, solvethree.SolveOptions{})
if err != nil { log.Fatal(err) }
fmt.Println("Ready task:", result.ID)
proxy, ok := solvethree.SuccessfulProxy(input, result)
if !ok { log.Fatal("No valid successful proxy") }
proxyURL, err := url.Parse(proxy)
if err != nil { log.Fatal(err) }
transport := http.DefaultTransport.(*http.Transport).Clone()
transport.Proxy = http.ProxyURL(proxyURL)
defer transport.CloseIdleConnections()
targetClient := &http.Client{Transport: transport, Timeout: 30*time.Second,
CheckRedirect: func(*http.Request, []*http.Request) error { return http.ErrUseLastResponse }}
request, err := http.NewRequestWithContext(ctx, "GET", input.URL, nil)
if err != nil { log.Fatal(err) }
request.Header.Set("User-Agent", result.Solution.UserAgent)
request.Header.Set("sec-ch-ua", result.Solution.SecChUA)
request.AddCookie(&http.Cookie{Name: "tmpt", Value: result.Solution.Token})
response, err := targetClient.Do(request)
if err != nil { log.Fatal(err) }
defer response.Body.Close()
fmt.Println("Application HTTP status:", response.StatusCode)
// Inspect the application response to determine whether submission succeeded.
}SuccessfulProxy selects the proxy to use for submission. The example configures that proxy on a cloned http.Transport, copies Solution.UserAgent and Solution.SecChUA into the request headers, and attaches Solution.Token as the tmpt cookie. Don't replace those values with an unrelated browser identity or switch proxies between solving and submission.
Inspect the application response
The two printed values answer different questions: the ready task ID identifies the generated solution; the application HTTP status comes from the target request. Inspect the response body as well as the status. A ready task doesn't prove login, event access, or queue admission.
Redirect following is disabled in the example, so you can inspect the initial response and its Location header rather than seeing only the final destination.
- The task is ready, but the target rejects the request.
Inspect the outgoing cookie, target URL, proxy, User-Agent, and sec-ch-ua.
Try this: Send the raw Solution.Token as tmpt to the intended URL, using SuccessfulProxy and the identity returned with that solution.
- Solving fails before the target GET.
Handle the Solve error. For a terminal failed task, inspect errorCode and error.
Try this: Stop polling that task and correct the reported problem before retrying. Don't assume every failure means insufficient credit.
Sources and API reference
Run your first task.
Start with $5 in workspace credit.