# Connections ## List Page Shield connections `client.PageShield.Connections.List(ctx, params) (*SinglePage[Connection], error)` **get** `/zones/{zone_id}/page_shield/connections` Lists all connections detected by Page Shield. ### Parameters - `params ConnectionListParams` - `ZoneID param.Field[string]` Path param: Identifier - `Direction param.Field[ConnectionListParamsDirection]` Query param: The direction used to sort returned connections. - `const ConnectionListParamsDirectionAsc ConnectionListParamsDirection = "asc"` - `const ConnectionListParamsDirectionDesc ConnectionListParamsDirection = "desc"` - `ExcludeCDNCGI param.Field[bool]` Query param: When true, excludes connections seen in a `/cdn-cgi` path from the returned connections. The default value is true. - `ExcludeURLs param.Field[string]` Query param: Excludes connections whose URL contains one of the URL-encoded URLs separated by commas. - `Export param.Field[ConnectionListParamsExport]` Query param: Export the list of connections as a file, limited to 50000 entries. - `const ConnectionListParamsExportCsv ConnectionListParamsExport = "csv"` - `Hosts param.Field[string]` Query param: Includes connections that match one or more URL-encoded hostnames separated by commas. Wildcards are supported at the start and end of each hostname to support starts with, ends with and contains. If no wildcards are used, results will be filtered by exact match - `OrderBy param.Field[ConnectionListParamsOrderBy]` Query param: The field used to sort returned connections. - `const ConnectionListParamsOrderByFirstSeenAt ConnectionListParamsOrderBy = "first_seen_at"` - `const ConnectionListParamsOrderByLastSeenAt ConnectionListParamsOrderBy = "last_seen_at"` - `Page param.Field[string]` Query param: The current page number of the paginated results. We additionally support a special value "all". When "all" is used, the API will return all the connections with the applied filters in a single page. This feature is best-effort and it may only work for zones with a low number of connections - `PageURL param.Field[string]` Query param: Includes connections that match one or more page URLs (separated by commas) where they were last seen Wildcards are supported at the start and end of each page URL to support starts with, ends with and contains. If no wildcards are used, results will be filtered by exact match - `PerPage param.Field[float64]` Query param: The number of results per page. - `PrioritizeMalicious param.Field[bool]` Query param: When true, malicious connections appear first in the returned connections. - `Status param.Field[string]` Query param: Filters the returned connections using a comma-separated list of connection statuses. Accepted values: `active`, `infrequent`, and `inactive`. The default value is `active`. - `URLs param.Field[string]` Query param: Includes connections whose URL contain one or more URL-encoded URLs separated by commas. ### Returns - `type Connection struct{…}` - `ID string` Identifier - `AddedAt Time` - `FirstSeenAt Time` - `Host string` - `LastSeenAt Time` - `URL string` - `URLContainsCDNCGIPath bool` - `DomainReportedMalicious bool` - `FirstPageURL string` - `MaliciousDomainCategories []string` - `MaliciousURLCategories []string` - `PageURLs []string` - `URLReportedMalicious bool` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/page_shield" ) func main() { client := cloudflare.NewClient( option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), option.WithAPIEmail("user@example.com"), ) page, err := client.PageShield.Connections.List(context.TODO(), page_shield.ConnectionListParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### Response ```json { "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 }, "success": true, "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "result": [ { "id": "023e105f4ecef8ad9ca31a8372d0c353", "added_at": "2021-08-18T10:51:10.09615Z", "first_seen_at": "2021-08-18T10:51:08Z", "host": "blog.cloudflare.com", "last_seen_at": "2021-09-02T09:57:54Z", "url": "https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js", "url_contains_cdn_cgi_path": false, "domain_reported_malicious": false, "first_page_url": "blog.cloudflare.com/page", "malicious_domain_categories": [ "Malware" ], "malicious_url_categories": [ "Malware" ], "page_urls": [ "blog.cloudflare.com/page1", "blog.cloudflare.com/page2" ], "url_reported_malicious": false } ] } ``` ## Get a Page Shield connection `client.PageShield.Connections.Get(ctx, connectionID, query) (*Connection, error)` **get** `/zones/{zone_id}/page_shield/connections/{connection_id}` Fetches a connection detected by Page Shield by connection ID. ### Parameters - `connectionID string` Identifier - `query ConnectionGetParams` - `ZoneID param.Field[string]` Identifier ### Returns - `type Connection struct{…}` - `ID string` Identifier - `AddedAt Time` - `FirstSeenAt Time` - `Host string` - `LastSeenAt Time` - `URL string` - `URLContainsCDNCGIPath bool` - `DomainReportedMalicious bool` - `FirstPageURL string` - `MaliciousDomainCategories []string` - `MaliciousURLCategories []string` - `PageURLs []string` - `URLReportedMalicious bool` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/page_shield" ) func main() { client := cloudflare.NewClient( option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), option.WithAPIEmail("user@example.com"), ) connection, err := client.PageShield.Connections.Get( context.TODO(), "023e105f4ecef8ad9ca31a8372d0c353", page_shield.ConnectionGetParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", connection.ID) } ``` #### Response ```json { "result": { "id": "023e105f4ecef8ad9ca31a8372d0c353", "added_at": "2021-08-18T10:51:10.09615Z", "first_seen_at": "2021-08-18T10:51:08Z", "host": "blog.cloudflare.com", "last_seen_at": "2021-09-02T09:57:54Z", "url": "https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js", "url_contains_cdn_cgi_path": false, "domain_reported_malicious": false, "first_page_url": "blog.cloudflare.com/page", "malicious_domain_categories": [ "Malware" ], "malicious_url_categories": [ "Malware" ], "page_urls": [ "blog.cloudflare.com/page1", "blog.cloudflare.com/page2" ], "url_reported_malicious": false }, "success": true, "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ] } ``` ## Domain Types ### Connection - `type Connection struct{…}` - `ID string` Identifier - `AddedAt Time` - `FirstSeenAt Time` - `Host string` - `LastSeenAt Time` - `URL string` - `URLContainsCDNCGIPath bool` - `DomainReportedMalicious bool` - `FirstPageURL string` - `MaliciousDomainCategories []string` - `MaliciousURLCategories []string` - `PageURLs []string` - `URLReportedMalicious bool`