## Turnstile Widget Details `client.Turnstile.Widgets.Get(ctx, sitekey, query) (*Widget, error)` **get** `/accounts/{account_id}/challenges/widgets/{sitekey}` Show a single challenge widget configuration. ### Parameters - `sitekey string` Widget item identifier tag. - `query WidgetGetParams` - `AccountID param.Field[string]` Identifier ### Returns - `type Widget struct{…}` A Turnstile widget's detailed configuration - `BotFightMode bool` If bot_fight_mode is set to `true`, Cloudflare issues computationally expensive challenges in response to malicious bots (ENT only). - `ClearanceLevel WidgetClearanceLevel` If Turnstile is embedded on a Cloudflare site and the widget should grant challenge clearance, this setting can determine the clearance level to be set - `const WidgetClearanceLevelNoClearance WidgetClearanceLevel = "no_clearance"` - `const WidgetClearanceLevelJschallenge WidgetClearanceLevel = "jschallenge"` - `const WidgetClearanceLevelManaged WidgetClearanceLevel = "managed"` - `const WidgetClearanceLevelInteractive WidgetClearanceLevel = "interactive"` - `CreatedOn Time` When the widget was created. - `Domains []WidgetDomain` - `EphemeralID bool` Return the Ephemeral ID in /siteverify (ENT only). - `Mode WidgetMode` Widget Mode - `const WidgetModeNonInteractive WidgetMode = "non-interactive"` - `const WidgetModeInvisible WidgetMode = "invisible"` - `const WidgetModeManaged WidgetMode = "managed"` - `ModifiedOn Time` When the widget was modified. - `Name string` Human readable widget name. Not unique. Cloudflare suggests that you set this to a meaningful string to make it easier to identify your widget, and where it is used. - `Offlabel bool` Do not show any Cloudflare branding on the widget (ENT only). - `Region WidgetRegion` Region where this widget can be used. This cannot be changed after creation. - `const WidgetRegionWorld WidgetRegion = "world"` - `const WidgetRegionChina WidgetRegion = "china"` - `Secret string` Secret key for this widget. - `Sitekey string` Widget item identifier tag. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/turnstile" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) widget, err := client.Turnstile.Widgets.Get( context.TODO(), "0x4AAF00AAAABn0R22HWm-YUc", turnstile.WidgetGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", widget.EphemeralID) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "bot_fight_mode": false, "clearance_level": "interactive", "created_on": "2014-01-01T05:20:00.123123Z", "domains": [ "203.0.113.1", "cloudflare.com", "blog.example.com" ], "ephemeral_id": false, "mode": "invisible", "modified_on": "2014-01-01T05:20:00.123123Z", "name": "blog.cloudflare.com login form", "offlabel": false, "region": "world", "secret": "0x4AAF00AAAABn0R22HWm098HVBjhdsYUc", "sitekey": "0x4AAF00AAAABn0R22HWm-YUc" } } ```