> For the complete documentation index, see [llms.txt](https://crapsolver.gitbook.io/readme/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://crapsolver.gitbook.io/readme/packages/golang.md).

# Golang

## Installation

```bash
go get -u github.com/Implex-ltd/crapsolver/crapsolver
```

***

## Example

```go
package main

import (
	"fmt"
	"time"
	"github.com/Implex-ltd/crapsolver/crapsolver"
)

var (
	KEY    = "4c672d35-0701-42b2-88c3-78380b0db560"
	DOMAIN = "discord.com"
)

func main() {
	Crap, err := crapsolver.NewSolver("user:superapikey")
	if err != nil {
		panic(err)
	}

	Crap.SetWaitTime(time.Second * 3) // check for complete task every 3s (reduce our load + make less req on your side..)

	// get restriction for the current sitekey
	restrictions, err := crapsolver.GetRestrictions(KEY)
	if err != nil {
		panic(err)
	}

	log.Println(restrictions)

	/**
	 * Use the function "Crap.SolveUntil(config, max_retry...)" to retry if error spawn (leave 0 = infinite) / return list of spawned errors
	 */
	resp, err := Crap.Solve(&crapsolver.TaskConfig{
		SiteKey:  KEY,
		Domain:   DOMAIN,
		TaskType: crapsolver.TASKTYPE_ENTERPRISE,
		A11YTfe:  true,
		Turbo:    true,
		TurboSt:  3200,
	})

	if err != nil {
		panic(err)
	}

	log.Println("solved:", resp.Data.Token)
	log.Println("submit this key using user-agent: ", resp.Data.UserAgent)
}
```

***

## Get site-key restrictions

```go
restrictions, err := crapsolver.GetRestrictions("4c672d35-0701-42b2-88c3-78380b0db560")
if err != nil {
	panic(err)
}

log.Println(restrictions)
```

***

### Get account informations

```go
response, err := crapsolver.GetUser("user:superidofyouraccakaapikey")
if err != nil {
	panic(err)
}

log.Println(response.balance, response.solved_hcaptcha)
```
