Versions in this module Expand all Collapse all v1 v1.5.4 Aug 31, 2026 Changes in this version + var ErrMockSolveFailed = errors.New("captcha: mock solve failed") + var ErrPluginNotRegistered = errors.New("captcha: plugin not registered. Call app.Use(captcha.New())") + func Bindings(c *container.Container, m *Manager) + func GetBalance(ctx context.Context) (float64, error) + func Protect() router.Middleware + func ProtectWithOptions(opts MiddlewareOptions) router.Middleware + type BalanceResponse struct + Balance float64 + ErrorCode string + ErrorDescription string + ErrorId int + type Client struct + func NewClient(cfg *Config) (*Client, error) + func (c *Client) CreateTask(ctx context.Context, payload TaskPayload) (*CreateTaskResponse, error) + func (c *Client) GetBalance(ctx context.Context) (float64, error) + func (c *Client) GetTaskResult(ctx context.Context, taskID string) (*GetTaskResultResponse, error) + func (c *Client) Solve(ctx context.Context, payload TaskPayload) (*Solution, error) + type Config struct + APIKey string + DefaultProvider string + Endpoint string + MaxRetries int + MockMode bool + PollingInterval time.Duration + ProviderSecretKeys map[string]string + Timeout time.Duration + func DefaultConfig() *Config + type CreateTaskRequest struct + AppID string + ClientKey string + Task TaskPayload + type CreateTaskResponse struct + ErrorCode string + ErrorDescription string + ErrorId int + Status string + TaskID string + func CreateTask(ctx context.Context, payload TaskPayload) (*CreateTaskResponse, error) + type GetTaskResultRequest struct + ClientKey string + TaskID string + type GetTaskResultResponse struct + ErrorCode string + ErrorDescription string + ErrorId int + Solution Solution + Status string + func GetTaskResult(ctx context.Context, taskID string) (*GetTaskResultResponse, error) + type Manager struct + Client *Client + Verifier *Verifier + func GetManager() *Manager + func NewManager(cfg *Config) (*Manager, error) + type MiddlewareOptions struct + Provider string + TokenFormField string + TokenHeader string + func DefaultMiddlewareOptions() MiddlewareOptions + type MockSolver struct + MockToken string + ShouldFail bool + func NewMockSolver() *MockSolver + func (m *MockSolver) Solve(ctx context.Context, payload TaskPayload) (*Solution, error) + type Plugin struct + func New(cfg ...*Config) *Plugin + func (p *Plugin) Bindings(c *container.Container) + func (p *Plugin) Boot(app *nimbus.App) error + func (p *Plugin) DefaultConfig() map[string]any + func (p *Plugin) Middleware() map[string]router.Middleware + func (p *Plugin) Register(app *nimbus.App) error + type Solution struct + Extra map[string]any + GRecaptchaResponse string + RespKey string + SolveTime time.Duration + Text string + Token string + UserAgent string + func Solve(ctx context.Context, payload TaskPayload) (*Solution, error) + type TaskPayload struct + Body string + ExtraParams map[string]string + MetaData map[string]any + MinScore float64 + PageAction string + Proxy string + Type TaskType + UserAgent string + WebsiteKey string + WebsiteURL string + type TaskType string + const TaskTypeAmazonWAF + const TaskTypeGeeTest + const TaskTypeHCaptcha + const TaskTypeHCaptchaProxyless + const TaskTypeImageToText + const TaskTypeReCaptchaEnterprise + const TaskTypeReCaptchaV2 + const TaskTypeReCaptchaV2Proxyless + const TaskTypeReCaptchaV3 + const TaskTypeReCaptchaV3Proxyless + const TaskTypeTurnstile + const TaskTypeTurnstileProxyless + type VerificationResult struct + Action string + ChallengeTS time.Time + ErrorCodes []string + Hostname string + Score float64 + Success bool + func Verify(ctx context.Context, provider, token, remoteIP string) (*VerificationResult, error) + type Verifier struct + func NewVerifier(cfg *Config) *Verifier + func (v *Verifier) VerifyToken(ctx context.Context, provider, token, remoteIP string) (*VerificationResult, error)