# Email ## Domain Types ### Radar Email Series - `type RadarEmailSeries struct{…}` - `Fail []string` - `None []string` - `Pass []string` ### Radar Email Summary - `type RadarEmailSummary struct{…}` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. # Routing ## Get email routing summary by dimension `client.Radar.Email.Routing.SummaryV2(ctx, dimension, query) (*EmailRoutingSummaryV2Response, error)` **get** `/radar/email/routing/summary/{dimension}` Retrieves the distribution of email routing metrics by the specified dimension. ### Parameters - `dimension EmailRoutingSummaryV2ParamsDimension` Specifies the attribute by which to group the results. - `const EmailRoutingSummaryV2ParamsDimensionIPVersion EmailRoutingSummaryV2ParamsDimension = "IP_VERSION"` - `const EmailRoutingSummaryV2ParamsDimensionEncrypted EmailRoutingSummaryV2ParamsDimension = "ENCRYPTED"` - `const EmailRoutingSummaryV2ParamsDimensionARC EmailRoutingSummaryV2ParamsDimension = "ARC"` - `const EmailRoutingSummaryV2ParamsDimensionDKIM EmailRoutingSummaryV2ParamsDimension = "DKIM"` - `const EmailRoutingSummaryV2ParamsDimensionDMARC EmailRoutingSummaryV2ParamsDimension = "DMARC"` - `const EmailRoutingSummaryV2ParamsDimensionSPF EmailRoutingSummaryV2ParamsDimension = "SPF"` - `query EmailRoutingSummaryV2Params` - `ARC param.Field[[]EmailRoutingSummaryV2ParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingSummaryV2ParamsARCPass EmailRoutingSummaryV2ParamsARC = "PASS"` - `const EmailRoutingSummaryV2ParamsARCNone EmailRoutingSummaryV2ParamsARC = "NONE"` - `const EmailRoutingSummaryV2ParamsARCFail EmailRoutingSummaryV2ParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingSummaryV2ParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingSummaryV2ParamsDKIMPass EmailRoutingSummaryV2ParamsDKIM = "PASS"` - `const EmailRoutingSummaryV2ParamsDKIMNone EmailRoutingSummaryV2ParamsDKIM = "NONE"` - `const EmailRoutingSummaryV2ParamsDKIMFail EmailRoutingSummaryV2ParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingSummaryV2ParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingSummaryV2ParamsDMARCPass EmailRoutingSummaryV2ParamsDMARC = "PASS"` - `const EmailRoutingSummaryV2ParamsDMARCNone EmailRoutingSummaryV2ParamsDMARC = "NONE"` - `const EmailRoutingSummaryV2ParamsDMARCFail EmailRoutingSummaryV2ParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingSummaryV2ParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingSummaryV2ParamsEncryptedEncrypted EmailRoutingSummaryV2ParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingSummaryV2ParamsEncryptedNotEncrypted EmailRoutingSummaryV2ParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingSummaryV2ParamsFormat]` Format in which results will be returned. - `const EmailRoutingSummaryV2ParamsFormatJson EmailRoutingSummaryV2ParamsFormat = "JSON"` - `const EmailRoutingSummaryV2ParamsFormatCsv EmailRoutingSummaryV2ParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingSummaryV2ParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingSummaryV2ParamsIPVersionIPv4 EmailRoutingSummaryV2ParamsIPVersion = "IPv4"` - `const EmailRoutingSummaryV2ParamsIPVersionIPv6 EmailRoutingSummaryV2ParamsIPVersion = "IPv6"` - `LimitPerGroup param.Field[int64]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingSummaryV2ParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingSummaryV2ParamsSPFPass EmailRoutingSummaryV2ParamsSPF = "PASS"` - `const EmailRoutingSummaryV2ParamsSPFNone EmailRoutingSummaryV2ParamsSPF = "NONE"` - `const EmailRoutingSummaryV2ParamsSPFFail EmailRoutingSummaryV2ParamsSPF = "FAIL"` ### Returns - `type EmailRoutingSummaryV2Response struct{…}` - `Meta EmailRoutingSummaryV2ResponseMeta` Metadata for the results. - `ConfidenceInfo EmailRoutingSummaryV2ResponseMetaConfidenceInfo` - `Annotations []EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingSummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingSummaryV2ResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingSummaryV2ResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingSummaryV2ResponseMetaNormalizationPercentage EmailRoutingSummaryV2ResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingSummaryV2ResponseMetaNormalizationMin0Max EmailRoutingSummaryV2ResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingSummaryV2ResponseMetaNormalizationMinMax EmailRoutingSummaryV2ResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingSummaryV2ResponseMetaNormalizationRawValues EmailRoutingSummaryV2ResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingSummaryV2ResponseMetaNormalizationPercentageChange EmailRoutingSummaryV2ResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingSummaryV2ResponseMetaNormalizationRollingAverage EmailRoutingSummaryV2ResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingSummaryV2ResponseMetaNormalizationOverlappedPercentage EmailRoutingSummaryV2ResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingSummaryV2ResponseMetaNormalizationRatio EmailRoutingSummaryV2ResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingSummaryV2ResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 map[string, string]` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.SummaryV2( context.TODO(), radar.EmailRoutingSummaryV2ParamsDimensionIPVersion, radar.EmailRoutingSummaryV2Params{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "25.084366", "PASS": "50.168733" } }, "success": true } ``` ## Get email routing time series grouped by dimension `client.Radar.Email.Routing.TimeseriesGroupsV2(ctx, dimension, query) (*EmailRoutingTimeseriesGroupsV2Response, error)` **get** `/radar/email/routing/timeseries_groups/{dimension}` Retrieves the distribution of email routing metrics grouped by dimension over time. ### Parameters - `dimension EmailRoutingTimeseriesGroupsV2ParamsDimension` Specifies the attribute by which to group the results. - `const EmailRoutingTimeseriesGroupsV2ParamsDimensionIPVersion EmailRoutingTimeseriesGroupsV2ParamsDimension = "IP_VERSION"` - `const EmailRoutingTimeseriesGroupsV2ParamsDimensionEncrypted EmailRoutingTimeseriesGroupsV2ParamsDimension = "ENCRYPTED"` - `const EmailRoutingTimeseriesGroupsV2ParamsDimensionARC EmailRoutingTimeseriesGroupsV2ParamsDimension = "ARC"` - `const EmailRoutingTimeseriesGroupsV2ParamsDimensionDKIM EmailRoutingTimeseriesGroupsV2ParamsDimension = "DKIM"` - `const EmailRoutingTimeseriesGroupsV2ParamsDimensionDMARC EmailRoutingTimeseriesGroupsV2ParamsDimension = "DMARC"` - `const EmailRoutingTimeseriesGroupsV2ParamsDimensionSPF EmailRoutingTimeseriesGroupsV2ParamsDimension = "SPF"` - `query EmailRoutingTimeseriesGroupsV2Params` - `AggInterval param.Field[EmailRoutingTimeseriesGroupsV2ParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupsV2ParamsAggInterval15m EmailRoutingTimeseriesGroupsV2ParamsAggInterval = "15m"` - `const EmailRoutingTimeseriesGroupsV2ParamsAggInterval1h EmailRoutingTimeseriesGroupsV2ParamsAggInterval = "1h"` - `const EmailRoutingTimeseriesGroupsV2ParamsAggInterval1d EmailRoutingTimeseriesGroupsV2ParamsAggInterval = "1d"` - `const EmailRoutingTimeseriesGroupsV2ParamsAggInterval1w EmailRoutingTimeseriesGroupsV2ParamsAggInterval = "1w"` - `ARC param.Field[[]EmailRoutingTimeseriesGroupsV2ParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingTimeseriesGroupsV2ParamsARCPass EmailRoutingTimeseriesGroupsV2ParamsARC = "PASS"` - `const EmailRoutingTimeseriesGroupsV2ParamsARCNone EmailRoutingTimeseriesGroupsV2ParamsARC = "NONE"` - `const EmailRoutingTimeseriesGroupsV2ParamsARCFail EmailRoutingTimeseriesGroupsV2ParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingTimeseriesGroupsV2ParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingTimeseriesGroupsV2ParamsDKIMPass EmailRoutingTimeseriesGroupsV2ParamsDKIM = "PASS"` - `const EmailRoutingTimeseriesGroupsV2ParamsDKIMNone EmailRoutingTimeseriesGroupsV2ParamsDKIM = "NONE"` - `const EmailRoutingTimeseriesGroupsV2ParamsDKIMFail EmailRoutingTimeseriesGroupsV2ParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingTimeseriesGroupsV2ParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingTimeseriesGroupsV2ParamsDMARCPass EmailRoutingTimeseriesGroupsV2ParamsDMARC = "PASS"` - `const EmailRoutingTimeseriesGroupsV2ParamsDMARCNone EmailRoutingTimeseriesGroupsV2ParamsDMARC = "NONE"` - `const EmailRoutingTimeseriesGroupsV2ParamsDMARCFail EmailRoutingTimeseriesGroupsV2ParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingTimeseriesGroupsV2ParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingTimeseriesGroupsV2ParamsEncryptedEncrypted EmailRoutingTimeseriesGroupsV2ParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingTimeseriesGroupsV2ParamsEncryptedNotEncrypted EmailRoutingTimeseriesGroupsV2ParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingTimeseriesGroupsV2ParamsFormat]` Format in which results will be returned. - `const EmailRoutingTimeseriesGroupsV2ParamsFormatJson EmailRoutingTimeseriesGroupsV2ParamsFormat = "JSON"` - `const EmailRoutingTimeseriesGroupsV2ParamsFormatCsv EmailRoutingTimeseriesGroupsV2ParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingTimeseriesGroupsV2ParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingTimeseriesGroupsV2ParamsIPVersionIPv4 EmailRoutingTimeseriesGroupsV2ParamsIPVersion = "IPv4"` - `const EmailRoutingTimeseriesGroupsV2ParamsIPVersionIPv6 EmailRoutingTimeseriesGroupsV2ParamsIPVersion = "IPv6"` - `LimitPerGroup param.Field[int64]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingTimeseriesGroupsV2ParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingTimeseriesGroupsV2ParamsSPFPass EmailRoutingTimeseriesGroupsV2ParamsSPF = "PASS"` - `const EmailRoutingTimeseriesGroupsV2ParamsSPFNone EmailRoutingTimeseriesGroupsV2ParamsSPF = "NONE"` - `const EmailRoutingTimeseriesGroupsV2ParamsSPFFail EmailRoutingTimeseriesGroupsV2ParamsSPF = "FAIL"` ### Returns - `type EmailRoutingTimeseriesGroupsV2Response struct{…}` - `Meta EmailRoutingTimeseriesGroupsV2ResponseMeta` Metadata for the results. - `AggInterval EmailRoutingTimeseriesGroupsV2ResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupsV2ResponseMetaAggIntervalFifteenMinutes EmailRoutingTimeseriesGroupsV2ResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaAggIntervalOneHour EmailRoutingTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_HOUR"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaAggIntervalOneDay EmailRoutingTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_DAY"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaAggIntervalOneWeek EmailRoutingTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_WEEK"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaAggIntervalOneMonth EmailRoutingTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfo` - `Annotations []EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingTimeseriesGroupsV2ResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationPercentage EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationMin0Max EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationMinMax EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationRawValues EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationPercentageChange EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationRollingAverage EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationOverlappedPercentage EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingTimeseriesGroupsV2ResponseMetaNormalizationRatio EmailRoutingTimeseriesGroupsV2ResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingTimeseriesGroupsV2ResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailRoutingTimeseriesGroupsV2ResponseSerie0` - `Timestamps []Time` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.TimeseriesGroupsV2( context.TODO(), radar.EmailRoutingTimeseriesGroupsV2ParamsDimensionIPVersion, radar.EmailRoutingTimeseriesGroupsV2Params{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` # Summary ## Get email ARC validation summary `client.Radar.Email.Routing.Summary.ARC(ctx, query) (*EmailRoutingSummaryARCResponse, error)` **get** `/radar/email/routing/summary/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation. ### Parameters - `query EmailRoutingSummaryARCParams` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingSummaryARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingSummaryARCParamsDKIMPass EmailRoutingSummaryARCParamsDKIM = "PASS"` - `const EmailRoutingSummaryARCParamsDKIMNone EmailRoutingSummaryARCParamsDKIM = "NONE"` - `const EmailRoutingSummaryARCParamsDKIMFail EmailRoutingSummaryARCParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingSummaryARCParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingSummaryARCParamsDMARCPass EmailRoutingSummaryARCParamsDMARC = "PASS"` - `const EmailRoutingSummaryARCParamsDMARCNone EmailRoutingSummaryARCParamsDMARC = "NONE"` - `const EmailRoutingSummaryARCParamsDMARCFail EmailRoutingSummaryARCParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingSummaryARCParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingSummaryARCParamsEncryptedEncrypted EmailRoutingSummaryARCParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingSummaryARCParamsEncryptedNotEncrypted EmailRoutingSummaryARCParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingSummaryARCParamsFormat]` Format in which results will be returned. - `const EmailRoutingSummaryARCParamsFormatJson EmailRoutingSummaryARCParamsFormat = "JSON"` - `const EmailRoutingSummaryARCParamsFormatCsv EmailRoutingSummaryARCParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingSummaryARCParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingSummaryARCParamsIPVersionIPv4 EmailRoutingSummaryARCParamsIPVersion = "IPv4"` - `const EmailRoutingSummaryARCParamsIPVersionIPv6 EmailRoutingSummaryARCParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingSummaryARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingSummaryARCParamsSPFPass EmailRoutingSummaryARCParamsSPF = "PASS"` - `const EmailRoutingSummaryARCParamsSPFNone EmailRoutingSummaryARCParamsSPF = "NONE"` - `const EmailRoutingSummaryARCParamsSPFFail EmailRoutingSummaryARCParamsSPF = "FAIL"` ### Returns - `type EmailRoutingSummaryARCResponse struct{…}` - `Meta EmailRoutingSummaryARCResponseMeta` Metadata for the results. - `ConfidenceInfo EmailRoutingSummaryARCResponseMetaConfidenceInfo` - `Annotations []EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingSummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingSummaryARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingSummaryARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingSummaryARCResponseMetaNormalizationPercentage EmailRoutingSummaryARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingSummaryARCResponseMetaNormalizationMin0Max EmailRoutingSummaryARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingSummaryARCResponseMetaNormalizationMinMax EmailRoutingSummaryARCResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingSummaryARCResponseMetaNormalizationRawValues EmailRoutingSummaryARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingSummaryARCResponseMetaNormalizationPercentageChange EmailRoutingSummaryARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingSummaryARCResponseMetaNormalizationRollingAverage EmailRoutingSummaryARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingSummaryARCResponseMetaNormalizationOverlappedPercentage EmailRoutingSummaryARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingSummaryARCResponseMetaNormalizationRatio EmailRoutingSummaryARCResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingSummaryARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.Summary.ARC(context.TODO(), radar.EmailRoutingSummaryARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DKIM validation summary `client.Radar.Email.Routing.Summary.DKIM(ctx, query) (*EmailRoutingSummaryDKIMResponse, error)` **get** `/radar/email/routing/summary/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation. ### Parameters - `query EmailRoutingSummaryDKIMParams` - `ARC param.Field[[]EmailRoutingSummaryDKIMParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingSummaryDKIMParamsARCPass EmailRoutingSummaryDKIMParamsARC = "PASS"` - `const EmailRoutingSummaryDKIMParamsARCNone EmailRoutingSummaryDKIMParamsARC = "NONE"` - `const EmailRoutingSummaryDKIMParamsARCFail EmailRoutingSummaryDKIMParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DMARC param.Field[[]EmailRoutingSummaryDKIMParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingSummaryDKIMParamsDMARCPass EmailRoutingSummaryDKIMParamsDMARC = "PASS"` - `const EmailRoutingSummaryDKIMParamsDMARCNone EmailRoutingSummaryDKIMParamsDMARC = "NONE"` - `const EmailRoutingSummaryDKIMParamsDMARCFail EmailRoutingSummaryDKIMParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingSummaryDKIMParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingSummaryDKIMParamsEncryptedEncrypted EmailRoutingSummaryDKIMParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingSummaryDKIMParamsEncryptedNotEncrypted EmailRoutingSummaryDKIMParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingSummaryDKIMParamsFormat]` Format in which results will be returned. - `const EmailRoutingSummaryDKIMParamsFormatJson EmailRoutingSummaryDKIMParamsFormat = "JSON"` - `const EmailRoutingSummaryDKIMParamsFormatCsv EmailRoutingSummaryDKIMParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingSummaryDKIMParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingSummaryDKIMParamsIPVersionIPv4 EmailRoutingSummaryDKIMParamsIPVersion = "IPv4"` - `const EmailRoutingSummaryDKIMParamsIPVersionIPv6 EmailRoutingSummaryDKIMParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingSummaryDKIMParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingSummaryDKIMParamsSPFPass EmailRoutingSummaryDKIMParamsSPF = "PASS"` - `const EmailRoutingSummaryDKIMParamsSPFNone EmailRoutingSummaryDKIMParamsSPF = "NONE"` - `const EmailRoutingSummaryDKIMParamsSPFFail EmailRoutingSummaryDKIMParamsSPF = "FAIL"` ### Returns - `type EmailRoutingSummaryDKIMResponse struct{…}` - `Meta EmailRoutingSummaryDKIMResponseMeta` Metadata for the results. - `ConfidenceInfo EmailRoutingSummaryDKIMResponseMetaConfidenceInfo` - `Annotations []EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingSummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingSummaryDKIMResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingSummaryDKIMResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingSummaryDKIMResponseMetaNormalizationPercentage EmailRoutingSummaryDKIMResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingSummaryDKIMResponseMetaNormalizationMin0Max EmailRoutingSummaryDKIMResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingSummaryDKIMResponseMetaNormalizationMinMax EmailRoutingSummaryDKIMResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingSummaryDKIMResponseMetaNormalizationRawValues EmailRoutingSummaryDKIMResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingSummaryDKIMResponseMetaNormalizationPercentageChange EmailRoutingSummaryDKIMResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingSummaryDKIMResponseMetaNormalizationRollingAverage EmailRoutingSummaryDKIMResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingSummaryDKIMResponseMetaNormalizationOverlappedPercentage EmailRoutingSummaryDKIMResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingSummaryDKIMResponseMetaNormalizationRatio EmailRoutingSummaryDKIMResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingSummaryDKIMResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.Summary.DKIM(context.TODO(), radar.EmailRoutingSummaryDKIMParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DMARC validation summary `client.Radar.Email.Routing.Summary.DMARC(ctx, query) (*EmailRoutingSummaryDMARCResponse, error)` **get** `/radar/email/routing/summary/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation. ### Parameters - `query EmailRoutingSummaryDMARCParams` - `ARC param.Field[[]EmailRoutingSummaryDMARCParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingSummaryDMARCParamsARCPass EmailRoutingSummaryDMARCParamsARC = "PASS"` - `const EmailRoutingSummaryDMARCParamsARCNone EmailRoutingSummaryDMARCParamsARC = "NONE"` - `const EmailRoutingSummaryDMARCParamsARCFail EmailRoutingSummaryDMARCParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingSummaryDMARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingSummaryDMARCParamsDKIMPass EmailRoutingSummaryDMARCParamsDKIM = "PASS"` - `const EmailRoutingSummaryDMARCParamsDKIMNone EmailRoutingSummaryDMARCParamsDKIM = "NONE"` - `const EmailRoutingSummaryDMARCParamsDKIMFail EmailRoutingSummaryDMARCParamsDKIM = "FAIL"` - `Encrypted param.Field[[]EmailRoutingSummaryDMARCParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingSummaryDMARCParamsEncryptedEncrypted EmailRoutingSummaryDMARCParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingSummaryDMARCParamsEncryptedNotEncrypted EmailRoutingSummaryDMARCParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingSummaryDMARCParamsFormat]` Format in which results will be returned. - `const EmailRoutingSummaryDMARCParamsFormatJson EmailRoutingSummaryDMARCParamsFormat = "JSON"` - `const EmailRoutingSummaryDMARCParamsFormatCsv EmailRoutingSummaryDMARCParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingSummaryDMARCParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingSummaryDMARCParamsIPVersionIPv4 EmailRoutingSummaryDMARCParamsIPVersion = "IPv4"` - `const EmailRoutingSummaryDMARCParamsIPVersionIPv6 EmailRoutingSummaryDMARCParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingSummaryDMARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingSummaryDMARCParamsSPFPass EmailRoutingSummaryDMARCParamsSPF = "PASS"` - `const EmailRoutingSummaryDMARCParamsSPFNone EmailRoutingSummaryDMARCParamsSPF = "NONE"` - `const EmailRoutingSummaryDMARCParamsSPFFail EmailRoutingSummaryDMARCParamsSPF = "FAIL"` ### Returns - `type EmailRoutingSummaryDMARCResponse struct{…}` - `Meta EmailRoutingSummaryDMARCResponseMeta` Metadata for the results. - `ConfidenceInfo EmailRoutingSummaryDMARCResponseMetaConfidenceInfo` - `Annotations []EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingSummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingSummaryDMARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingSummaryDMARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingSummaryDMARCResponseMetaNormalizationPercentage EmailRoutingSummaryDMARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingSummaryDMARCResponseMetaNormalizationMin0Max EmailRoutingSummaryDMARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingSummaryDMARCResponseMetaNormalizationMinMax EmailRoutingSummaryDMARCResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingSummaryDMARCResponseMetaNormalizationRawValues EmailRoutingSummaryDMARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingSummaryDMARCResponseMetaNormalizationPercentageChange EmailRoutingSummaryDMARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingSummaryDMARCResponseMetaNormalizationRollingAverage EmailRoutingSummaryDMARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingSummaryDMARCResponseMetaNormalizationOverlappedPercentage EmailRoutingSummaryDMARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingSummaryDMARCResponseMetaNormalizationRatio EmailRoutingSummaryDMARCResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingSummaryDMARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.Summary.DMARC(context.TODO(), radar.EmailRoutingSummaryDMARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email encryption status summary `client.Radar.Email.Routing.Summary.Encrypted(ctx, query) (*EmailRoutingSummaryEncryptedResponse, error)` **get** `/radar/email/routing/summary/encrypted` Retrieves the distribution of emails by encryption status (encrypted vs. not-encrypted). ### Parameters - `query EmailRoutingSummaryEncryptedParams` - `ARC param.Field[[]EmailRoutingSummaryEncryptedParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingSummaryEncryptedParamsARCPass EmailRoutingSummaryEncryptedParamsARC = "PASS"` - `const EmailRoutingSummaryEncryptedParamsARCNone EmailRoutingSummaryEncryptedParamsARC = "NONE"` - `const EmailRoutingSummaryEncryptedParamsARCFail EmailRoutingSummaryEncryptedParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingSummaryEncryptedParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingSummaryEncryptedParamsDKIMPass EmailRoutingSummaryEncryptedParamsDKIM = "PASS"` - `const EmailRoutingSummaryEncryptedParamsDKIMNone EmailRoutingSummaryEncryptedParamsDKIM = "NONE"` - `const EmailRoutingSummaryEncryptedParamsDKIMFail EmailRoutingSummaryEncryptedParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingSummaryEncryptedParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingSummaryEncryptedParamsDMARCPass EmailRoutingSummaryEncryptedParamsDMARC = "PASS"` - `const EmailRoutingSummaryEncryptedParamsDMARCNone EmailRoutingSummaryEncryptedParamsDMARC = "NONE"` - `const EmailRoutingSummaryEncryptedParamsDMARCFail EmailRoutingSummaryEncryptedParamsDMARC = "FAIL"` - `Format param.Field[EmailRoutingSummaryEncryptedParamsFormat]` Format in which results will be returned. - `const EmailRoutingSummaryEncryptedParamsFormatJson EmailRoutingSummaryEncryptedParamsFormat = "JSON"` - `const EmailRoutingSummaryEncryptedParamsFormatCsv EmailRoutingSummaryEncryptedParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingSummaryEncryptedParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingSummaryEncryptedParamsIPVersionIPv4 EmailRoutingSummaryEncryptedParamsIPVersion = "IPv4"` - `const EmailRoutingSummaryEncryptedParamsIPVersionIPv6 EmailRoutingSummaryEncryptedParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingSummaryEncryptedParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingSummaryEncryptedParamsSPFPass EmailRoutingSummaryEncryptedParamsSPF = "PASS"` - `const EmailRoutingSummaryEncryptedParamsSPFNone EmailRoutingSummaryEncryptedParamsSPF = "NONE"` - `const EmailRoutingSummaryEncryptedParamsSPFFail EmailRoutingSummaryEncryptedParamsSPF = "FAIL"` ### Returns - `type EmailRoutingSummaryEncryptedResponse struct{…}` - `Meta EmailRoutingSummaryEncryptedResponseMeta` Metadata for the results. - `ConfidenceInfo EmailRoutingSummaryEncryptedResponseMetaConfidenceInfo` - `Annotations []EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingSummaryEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingSummaryEncryptedResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingSummaryEncryptedResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationPercentage EmailRoutingSummaryEncryptedResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationMin0Max EmailRoutingSummaryEncryptedResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationMinMax EmailRoutingSummaryEncryptedResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationRawValues EmailRoutingSummaryEncryptedResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationPercentageChange EmailRoutingSummaryEncryptedResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationRollingAverage EmailRoutingSummaryEncryptedResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationOverlappedPercentage EmailRoutingSummaryEncryptedResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingSummaryEncryptedResponseMetaNormalizationRatio EmailRoutingSummaryEncryptedResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingSummaryEncryptedResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 EmailRoutingSummaryEncryptedResponseSummary0` - `Encrypted string` A numeric string. - `NotEncrypted string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.Summary.Encrypted(context.TODO(), radar.EmailRoutingSummaryEncryptedParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "ENCRYPTED": "10", "NOT_ENCRYPTED": "10" } }, "success": true } ``` ## Get email IP version summary `client.Radar.Email.Routing.Summary.IPVersion(ctx, query) (*EmailRoutingSummaryIPVersionResponse, error)` **get** `/radar/email/routing/summary/ip_version` Retrieves the distribution of emails by IP version. ### Parameters - `query EmailRoutingSummaryIPVersionParams` - `ARC param.Field[[]EmailRoutingSummaryIPVersionParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingSummaryIPVersionParamsARCPass EmailRoutingSummaryIPVersionParamsARC = "PASS"` - `const EmailRoutingSummaryIPVersionParamsARCNone EmailRoutingSummaryIPVersionParamsARC = "NONE"` - `const EmailRoutingSummaryIPVersionParamsARCFail EmailRoutingSummaryIPVersionParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingSummaryIPVersionParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingSummaryIPVersionParamsDKIMPass EmailRoutingSummaryIPVersionParamsDKIM = "PASS"` - `const EmailRoutingSummaryIPVersionParamsDKIMNone EmailRoutingSummaryIPVersionParamsDKIM = "NONE"` - `const EmailRoutingSummaryIPVersionParamsDKIMFail EmailRoutingSummaryIPVersionParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingSummaryIPVersionParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingSummaryIPVersionParamsDMARCPass EmailRoutingSummaryIPVersionParamsDMARC = "PASS"` - `const EmailRoutingSummaryIPVersionParamsDMARCNone EmailRoutingSummaryIPVersionParamsDMARC = "NONE"` - `const EmailRoutingSummaryIPVersionParamsDMARCFail EmailRoutingSummaryIPVersionParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingSummaryIPVersionParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingSummaryIPVersionParamsEncryptedEncrypted EmailRoutingSummaryIPVersionParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingSummaryIPVersionParamsEncryptedNotEncrypted EmailRoutingSummaryIPVersionParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingSummaryIPVersionParamsFormat]` Format in which results will be returned. - `const EmailRoutingSummaryIPVersionParamsFormatJson EmailRoutingSummaryIPVersionParamsFormat = "JSON"` - `const EmailRoutingSummaryIPVersionParamsFormatCsv EmailRoutingSummaryIPVersionParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingSummaryIPVersionParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingSummaryIPVersionParamsSPFPass EmailRoutingSummaryIPVersionParamsSPF = "PASS"` - `const EmailRoutingSummaryIPVersionParamsSPFNone EmailRoutingSummaryIPVersionParamsSPF = "NONE"` - `const EmailRoutingSummaryIPVersionParamsSPFFail EmailRoutingSummaryIPVersionParamsSPF = "FAIL"` ### Returns - `type EmailRoutingSummaryIPVersionResponse struct{…}` - `Meta EmailRoutingSummaryIPVersionResponseMeta` Metadata for the results. - `ConfidenceInfo EmailRoutingSummaryIPVersionResponseMetaConfidenceInfo` - `Annotations []EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingSummaryIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingSummaryIPVersionResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingSummaryIPVersionResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationPercentage EmailRoutingSummaryIPVersionResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationMin0Max EmailRoutingSummaryIPVersionResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationMinMax EmailRoutingSummaryIPVersionResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationRawValues EmailRoutingSummaryIPVersionResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationPercentageChange EmailRoutingSummaryIPVersionResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationRollingAverage EmailRoutingSummaryIPVersionResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationOverlappedPercentage EmailRoutingSummaryIPVersionResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingSummaryIPVersionResponseMetaNormalizationRatio EmailRoutingSummaryIPVersionResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingSummaryIPVersionResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 EmailRoutingSummaryIPVersionResponseSummary0` - `IPv4 string` A numeric string. - `IPv6 string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.Summary.IPVersion(context.TODO(), radar.EmailRoutingSummaryIPVersionParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "IPv4": "10", "IPv6": "10" } }, "success": true } ``` ## Get email SPF validation summary `client.Radar.Email.Routing.Summary.SPF(ctx, query) (*EmailRoutingSummarySPFResponse, error)` **get** `/radar/email/routing/summary/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation. ### Parameters - `query EmailRoutingSummarySPFParams` - `ARC param.Field[[]EmailRoutingSummarySPFParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingSummarySPFParamsARCPass EmailRoutingSummarySPFParamsARC = "PASS"` - `const EmailRoutingSummarySPFParamsARCNone EmailRoutingSummarySPFParamsARC = "NONE"` - `const EmailRoutingSummarySPFParamsARCFail EmailRoutingSummarySPFParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingSummarySPFParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingSummarySPFParamsDKIMPass EmailRoutingSummarySPFParamsDKIM = "PASS"` - `const EmailRoutingSummarySPFParamsDKIMNone EmailRoutingSummarySPFParamsDKIM = "NONE"` - `const EmailRoutingSummarySPFParamsDKIMFail EmailRoutingSummarySPFParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingSummarySPFParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingSummarySPFParamsDMARCPass EmailRoutingSummarySPFParamsDMARC = "PASS"` - `const EmailRoutingSummarySPFParamsDMARCNone EmailRoutingSummarySPFParamsDMARC = "NONE"` - `const EmailRoutingSummarySPFParamsDMARCFail EmailRoutingSummarySPFParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingSummarySPFParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingSummarySPFParamsEncryptedEncrypted EmailRoutingSummarySPFParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingSummarySPFParamsEncryptedNotEncrypted EmailRoutingSummarySPFParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingSummarySPFParamsFormat]` Format in which results will be returned. - `const EmailRoutingSummarySPFParamsFormatJson EmailRoutingSummarySPFParamsFormat = "JSON"` - `const EmailRoutingSummarySPFParamsFormatCsv EmailRoutingSummarySPFParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingSummarySPFParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingSummarySPFParamsIPVersionIPv4 EmailRoutingSummarySPFParamsIPVersion = "IPv4"` - `const EmailRoutingSummarySPFParamsIPVersionIPv6 EmailRoutingSummarySPFParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. ### Returns - `type EmailRoutingSummarySPFResponse struct{…}` - `Meta EmailRoutingSummarySPFResponseMeta` Metadata for the results. - `ConfidenceInfo EmailRoutingSummarySPFResponseMetaConfidenceInfo` - `Annotations []EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingSummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingSummarySPFResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingSummarySPFResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingSummarySPFResponseMetaNormalizationPercentage EmailRoutingSummarySPFResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingSummarySPFResponseMetaNormalizationMin0Max EmailRoutingSummarySPFResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingSummarySPFResponseMetaNormalizationMinMax EmailRoutingSummarySPFResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingSummarySPFResponseMetaNormalizationRawValues EmailRoutingSummarySPFResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingSummarySPFResponseMetaNormalizationPercentageChange EmailRoutingSummarySPFResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingSummarySPFResponseMetaNormalizationRollingAverage EmailRoutingSummarySPFResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingSummarySPFResponseMetaNormalizationOverlappedPercentage EmailRoutingSummarySPFResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingSummarySPFResponseMetaNormalizationRatio EmailRoutingSummarySPFResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingSummarySPFResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.Summary.SPF(context.TODO(), radar.EmailRoutingSummarySPFParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` # Timeseries Groups ## Get email ARC validation time series `client.Radar.Email.Routing.TimeseriesGroups.ARC(ctx, query) (*EmailRoutingTimeseriesGroupARCResponse, error)` **get** `/radar/email/routing/timeseries_groups/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation over time. ### Parameters - `query EmailRoutingTimeseriesGroupARCParams` - `AggInterval param.Field[EmailRoutingTimeseriesGroupARCParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupARCParamsAggInterval15m EmailRoutingTimeseriesGroupARCParamsAggInterval = "15m"` - `const EmailRoutingTimeseriesGroupARCParamsAggInterval1h EmailRoutingTimeseriesGroupARCParamsAggInterval = "1h"` - `const EmailRoutingTimeseriesGroupARCParamsAggInterval1d EmailRoutingTimeseriesGroupARCParamsAggInterval = "1d"` - `const EmailRoutingTimeseriesGroupARCParamsAggInterval1w EmailRoutingTimeseriesGroupARCParamsAggInterval = "1w"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingTimeseriesGroupARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingTimeseriesGroupARCParamsDKIMPass EmailRoutingTimeseriesGroupARCParamsDKIM = "PASS"` - `const EmailRoutingTimeseriesGroupARCParamsDKIMNone EmailRoutingTimeseriesGroupARCParamsDKIM = "NONE"` - `const EmailRoutingTimeseriesGroupARCParamsDKIMFail EmailRoutingTimeseriesGroupARCParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingTimeseriesGroupARCParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingTimeseriesGroupARCParamsDMARCPass EmailRoutingTimeseriesGroupARCParamsDMARC = "PASS"` - `const EmailRoutingTimeseriesGroupARCParamsDMARCNone EmailRoutingTimeseriesGroupARCParamsDMARC = "NONE"` - `const EmailRoutingTimeseriesGroupARCParamsDMARCFail EmailRoutingTimeseriesGroupARCParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingTimeseriesGroupARCParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingTimeseriesGroupARCParamsEncryptedEncrypted EmailRoutingTimeseriesGroupARCParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingTimeseriesGroupARCParamsEncryptedNotEncrypted EmailRoutingTimeseriesGroupARCParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingTimeseriesGroupARCParamsFormat]` Format in which results will be returned. - `const EmailRoutingTimeseriesGroupARCParamsFormatJson EmailRoutingTimeseriesGroupARCParamsFormat = "JSON"` - `const EmailRoutingTimeseriesGroupARCParamsFormatCsv EmailRoutingTimeseriesGroupARCParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingTimeseriesGroupARCParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingTimeseriesGroupARCParamsIPVersionIPv4 EmailRoutingTimeseriesGroupARCParamsIPVersion = "IPv4"` - `const EmailRoutingTimeseriesGroupARCParamsIPVersionIPv6 EmailRoutingTimeseriesGroupARCParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingTimeseriesGroupARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingTimeseriesGroupARCParamsSPFPass EmailRoutingTimeseriesGroupARCParamsSPF = "PASS"` - `const EmailRoutingTimeseriesGroupARCParamsSPFNone EmailRoutingTimeseriesGroupARCParamsSPF = "NONE"` - `const EmailRoutingTimeseriesGroupARCParamsSPFFail EmailRoutingTimeseriesGroupARCParamsSPF = "FAIL"` ### Returns - `type EmailRoutingTimeseriesGroupARCResponse struct{…}` - `Meta EmailRoutingTimeseriesGroupARCResponseMeta` Metadata for the results. - `AggInterval EmailRoutingTimeseriesGroupARCResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupARCResponseMetaAggIntervalFifteenMinutes EmailRoutingTimeseriesGroupARCResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailRoutingTimeseriesGroupARCResponseMetaAggIntervalOneHour EmailRoutingTimeseriesGroupARCResponseMetaAggInterval = "ONE_HOUR"` - `const EmailRoutingTimeseriesGroupARCResponseMetaAggIntervalOneDay EmailRoutingTimeseriesGroupARCResponseMetaAggInterval = "ONE_DAY"` - `const EmailRoutingTimeseriesGroupARCResponseMetaAggIntervalOneWeek EmailRoutingTimeseriesGroupARCResponseMetaAggInterval = "ONE_WEEK"` - `const EmailRoutingTimeseriesGroupARCResponseMetaAggIntervalOneMonth EmailRoutingTimeseriesGroupARCResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfo` - `Annotations []EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingTimeseriesGroupARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingTimeseriesGroupARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationPercentage EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationMin0Max EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationMinMax EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationRawValues EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationPercentageChange EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationRollingAverage EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationOverlappedPercentage EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingTimeseriesGroupARCResponseMetaNormalizationRatio EmailRoutingTimeseriesGroupARCResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingTimeseriesGroupARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.TimeseriesGroups.ARC(context.TODO(), radar.EmailRoutingTimeseriesGroupARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DKIM validation time series `client.Radar.Email.Routing.TimeseriesGroups.DKIM(ctx, query) (*EmailRoutingTimeseriesGroupDKIMResponse, error)` **get** `/radar/email/routing/timeseries_groups/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation over time. ### Parameters - `query EmailRoutingTimeseriesGroupDKIMParams` - `AggInterval param.Field[EmailRoutingTimeseriesGroupDKIMParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupDKIMParamsAggInterval15m EmailRoutingTimeseriesGroupDKIMParamsAggInterval = "15m"` - `const EmailRoutingTimeseriesGroupDKIMParamsAggInterval1h EmailRoutingTimeseriesGroupDKIMParamsAggInterval = "1h"` - `const EmailRoutingTimeseriesGroupDKIMParamsAggInterval1d EmailRoutingTimeseriesGroupDKIMParamsAggInterval = "1d"` - `const EmailRoutingTimeseriesGroupDKIMParamsAggInterval1w EmailRoutingTimeseriesGroupDKIMParamsAggInterval = "1w"` - `ARC param.Field[[]EmailRoutingTimeseriesGroupDKIMParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingTimeseriesGroupDKIMParamsARCPass EmailRoutingTimeseriesGroupDKIMParamsARC = "PASS"` - `const EmailRoutingTimeseriesGroupDKIMParamsARCNone EmailRoutingTimeseriesGroupDKIMParamsARC = "NONE"` - `const EmailRoutingTimeseriesGroupDKIMParamsARCFail EmailRoutingTimeseriesGroupDKIMParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DMARC param.Field[[]EmailRoutingTimeseriesGroupDKIMParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingTimeseriesGroupDKIMParamsDMARCPass EmailRoutingTimeseriesGroupDKIMParamsDMARC = "PASS"` - `const EmailRoutingTimeseriesGroupDKIMParamsDMARCNone EmailRoutingTimeseriesGroupDKIMParamsDMARC = "NONE"` - `const EmailRoutingTimeseriesGroupDKIMParamsDMARCFail EmailRoutingTimeseriesGroupDKIMParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingTimeseriesGroupDKIMParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingTimeseriesGroupDKIMParamsEncryptedEncrypted EmailRoutingTimeseriesGroupDKIMParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingTimeseriesGroupDKIMParamsEncryptedNotEncrypted EmailRoutingTimeseriesGroupDKIMParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingTimeseriesGroupDKIMParamsFormat]` Format in which results will be returned. - `const EmailRoutingTimeseriesGroupDKIMParamsFormatJson EmailRoutingTimeseriesGroupDKIMParamsFormat = "JSON"` - `const EmailRoutingTimeseriesGroupDKIMParamsFormatCsv EmailRoutingTimeseriesGroupDKIMParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingTimeseriesGroupDKIMParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingTimeseriesGroupDKIMParamsIPVersionIPv4 EmailRoutingTimeseriesGroupDKIMParamsIPVersion = "IPv4"` - `const EmailRoutingTimeseriesGroupDKIMParamsIPVersionIPv6 EmailRoutingTimeseriesGroupDKIMParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingTimeseriesGroupDKIMParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingTimeseriesGroupDKIMParamsSPFPass EmailRoutingTimeseriesGroupDKIMParamsSPF = "PASS"` - `const EmailRoutingTimeseriesGroupDKIMParamsSPFNone EmailRoutingTimeseriesGroupDKIMParamsSPF = "NONE"` - `const EmailRoutingTimeseriesGroupDKIMParamsSPFFail EmailRoutingTimeseriesGroupDKIMParamsSPF = "FAIL"` ### Returns - `type EmailRoutingTimeseriesGroupDKIMResponse struct{…}` - `Meta EmailRoutingTimeseriesGroupDKIMResponseMeta` Metadata for the results. - `AggInterval EmailRoutingTimeseriesGroupDKIMResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupDKIMResponseMetaAggIntervalFifteenMinutes EmailRoutingTimeseriesGroupDKIMResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaAggIntervalOneHour EmailRoutingTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_HOUR"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaAggIntervalOneDay EmailRoutingTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_DAY"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaAggIntervalOneWeek EmailRoutingTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_WEEK"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaAggIntervalOneMonth EmailRoutingTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfo` - `Annotations []EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingTimeseriesGroupDKIMResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationPercentage EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationMin0Max EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationMinMax EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationRawValues EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationPercentageChange EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationRollingAverage EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationOverlappedPercentage EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingTimeseriesGroupDKIMResponseMetaNormalizationRatio EmailRoutingTimeseriesGroupDKIMResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingTimeseriesGroupDKIMResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.TimeseriesGroups.DKIM(context.TODO(), radar.EmailRoutingTimeseriesGroupDKIMParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DMARC validation time series `client.Radar.Email.Routing.TimeseriesGroups.DMARC(ctx, query) (*EmailRoutingTimeseriesGroupDMARCResponse, error)` **get** `/radar/email/routing/timeseries_groups/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation over time. ### Parameters - `query EmailRoutingTimeseriesGroupDMARCParams` - `AggInterval param.Field[EmailRoutingTimeseriesGroupDMARCParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupDMARCParamsAggInterval15m EmailRoutingTimeseriesGroupDMARCParamsAggInterval = "15m"` - `const EmailRoutingTimeseriesGroupDMARCParamsAggInterval1h EmailRoutingTimeseriesGroupDMARCParamsAggInterval = "1h"` - `const EmailRoutingTimeseriesGroupDMARCParamsAggInterval1d EmailRoutingTimeseriesGroupDMARCParamsAggInterval = "1d"` - `const EmailRoutingTimeseriesGroupDMARCParamsAggInterval1w EmailRoutingTimeseriesGroupDMARCParamsAggInterval = "1w"` - `ARC param.Field[[]EmailRoutingTimeseriesGroupDMARCParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingTimeseriesGroupDMARCParamsARCPass EmailRoutingTimeseriesGroupDMARCParamsARC = "PASS"` - `const EmailRoutingTimeseriesGroupDMARCParamsARCNone EmailRoutingTimeseriesGroupDMARCParamsARC = "NONE"` - `const EmailRoutingTimeseriesGroupDMARCParamsARCFail EmailRoutingTimeseriesGroupDMARCParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingTimeseriesGroupDMARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingTimeseriesGroupDMARCParamsDKIMPass EmailRoutingTimeseriesGroupDMARCParamsDKIM = "PASS"` - `const EmailRoutingTimeseriesGroupDMARCParamsDKIMNone EmailRoutingTimeseriesGroupDMARCParamsDKIM = "NONE"` - `const EmailRoutingTimeseriesGroupDMARCParamsDKIMFail EmailRoutingTimeseriesGroupDMARCParamsDKIM = "FAIL"` - `Encrypted param.Field[[]EmailRoutingTimeseriesGroupDMARCParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingTimeseriesGroupDMARCParamsEncryptedEncrypted EmailRoutingTimeseriesGroupDMARCParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingTimeseriesGroupDMARCParamsEncryptedNotEncrypted EmailRoutingTimeseriesGroupDMARCParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingTimeseriesGroupDMARCParamsFormat]` Format in which results will be returned. - `const EmailRoutingTimeseriesGroupDMARCParamsFormatJson EmailRoutingTimeseriesGroupDMARCParamsFormat = "JSON"` - `const EmailRoutingTimeseriesGroupDMARCParamsFormatCsv EmailRoutingTimeseriesGroupDMARCParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingTimeseriesGroupDMARCParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingTimeseriesGroupDMARCParamsIPVersionIPv4 EmailRoutingTimeseriesGroupDMARCParamsIPVersion = "IPv4"` - `const EmailRoutingTimeseriesGroupDMARCParamsIPVersionIPv6 EmailRoutingTimeseriesGroupDMARCParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingTimeseriesGroupDMARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingTimeseriesGroupDMARCParamsSPFPass EmailRoutingTimeseriesGroupDMARCParamsSPF = "PASS"` - `const EmailRoutingTimeseriesGroupDMARCParamsSPFNone EmailRoutingTimeseriesGroupDMARCParamsSPF = "NONE"` - `const EmailRoutingTimeseriesGroupDMARCParamsSPFFail EmailRoutingTimeseriesGroupDMARCParamsSPF = "FAIL"` ### Returns - `type EmailRoutingTimeseriesGroupDMARCResponse struct{…}` - `Meta EmailRoutingTimeseriesGroupDMARCResponseMeta` Metadata for the results. - `AggInterval EmailRoutingTimeseriesGroupDMARCResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupDMARCResponseMetaAggIntervalFifteenMinutes EmailRoutingTimeseriesGroupDMARCResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaAggIntervalOneHour EmailRoutingTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_HOUR"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaAggIntervalOneDay EmailRoutingTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_DAY"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaAggIntervalOneWeek EmailRoutingTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_WEEK"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaAggIntervalOneMonth EmailRoutingTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfo` - `Annotations []EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingTimeseriesGroupDMARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationPercentage EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationMin0Max EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationMinMax EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationRawValues EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationPercentageChange EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationRollingAverage EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationOverlappedPercentage EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingTimeseriesGroupDMARCResponseMetaNormalizationRatio EmailRoutingTimeseriesGroupDMARCResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingTimeseriesGroupDMARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.TimeseriesGroups.DMARC(context.TODO(), radar.EmailRoutingTimeseriesGroupDMARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email encryption status time series `client.Radar.Email.Routing.TimeseriesGroups.Encrypted(ctx, query) (*EmailRoutingTimeseriesGroupEncryptedResponse, error)` **get** `/radar/email/routing/timeseries_groups/encrypted` Retrieves the distribution of emails by encryption status (encrypted vs. not-encrypted) over time. ### Parameters - `query EmailRoutingTimeseriesGroupEncryptedParams` - `AggInterval param.Field[EmailRoutingTimeseriesGroupEncryptedParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupEncryptedParamsAggInterval15m EmailRoutingTimeseriesGroupEncryptedParamsAggInterval = "15m"` - `const EmailRoutingTimeseriesGroupEncryptedParamsAggInterval1h EmailRoutingTimeseriesGroupEncryptedParamsAggInterval = "1h"` - `const EmailRoutingTimeseriesGroupEncryptedParamsAggInterval1d EmailRoutingTimeseriesGroupEncryptedParamsAggInterval = "1d"` - `const EmailRoutingTimeseriesGroupEncryptedParamsAggInterval1w EmailRoutingTimeseriesGroupEncryptedParamsAggInterval = "1w"` - `ARC param.Field[[]EmailRoutingTimeseriesGroupEncryptedParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingTimeseriesGroupEncryptedParamsARCPass EmailRoutingTimeseriesGroupEncryptedParamsARC = "PASS"` - `const EmailRoutingTimeseriesGroupEncryptedParamsARCNone EmailRoutingTimeseriesGroupEncryptedParamsARC = "NONE"` - `const EmailRoutingTimeseriesGroupEncryptedParamsARCFail EmailRoutingTimeseriesGroupEncryptedParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingTimeseriesGroupEncryptedParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingTimeseriesGroupEncryptedParamsDKIMPass EmailRoutingTimeseriesGroupEncryptedParamsDKIM = "PASS"` - `const EmailRoutingTimeseriesGroupEncryptedParamsDKIMNone EmailRoutingTimeseriesGroupEncryptedParamsDKIM = "NONE"` - `const EmailRoutingTimeseriesGroupEncryptedParamsDKIMFail EmailRoutingTimeseriesGroupEncryptedParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingTimeseriesGroupEncryptedParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingTimeseriesGroupEncryptedParamsDMARCPass EmailRoutingTimeseriesGroupEncryptedParamsDMARC = "PASS"` - `const EmailRoutingTimeseriesGroupEncryptedParamsDMARCNone EmailRoutingTimeseriesGroupEncryptedParamsDMARC = "NONE"` - `const EmailRoutingTimeseriesGroupEncryptedParamsDMARCFail EmailRoutingTimeseriesGroupEncryptedParamsDMARC = "FAIL"` - `Format param.Field[EmailRoutingTimeseriesGroupEncryptedParamsFormat]` Format in which results will be returned. - `const EmailRoutingTimeseriesGroupEncryptedParamsFormatJson EmailRoutingTimeseriesGroupEncryptedParamsFormat = "JSON"` - `const EmailRoutingTimeseriesGroupEncryptedParamsFormatCsv EmailRoutingTimeseriesGroupEncryptedParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingTimeseriesGroupEncryptedParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingTimeseriesGroupEncryptedParamsIPVersionIPv4 EmailRoutingTimeseriesGroupEncryptedParamsIPVersion = "IPv4"` - `const EmailRoutingTimeseriesGroupEncryptedParamsIPVersionIPv6 EmailRoutingTimeseriesGroupEncryptedParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingTimeseriesGroupEncryptedParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingTimeseriesGroupEncryptedParamsSPFPass EmailRoutingTimeseriesGroupEncryptedParamsSPF = "PASS"` - `const EmailRoutingTimeseriesGroupEncryptedParamsSPFNone EmailRoutingTimeseriesGroupEncryptedParamsSPF = "NONE"` - `const EmailRoutingTimeseriesGroupEncryptedParamsSPFFail EmailRoutingTimeseriesGroupEncryptedParamsSPF = "FAIL"` ### Returns - `type EmailRoutingTimeseriesGroupEncryptedResponse struct{…}` - `Meta EmailRoutingTimeseriesGroupEncryptedResponseMeta` Metadata for the results. - `AggInterval EmailRoutingTimeseriesGroupEncryptedResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaAggIntervalFifteenMinutes EmailRoutingTimeseriesGroupEncryptedResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaAggIntervalOneHour EmailRoutingTimeseriesGroupEncryptedResponseMetaAggInterval = "ONE_HOUR"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaAggIntervalOneDay EmailRoutingTimeseriesGroupEncryptedResponseMetaAggInterval = "ONE_DAY"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaAggIntervalOneWeek EmailRoutingTimeseriesGroupEncryptedResponseMetaAggInterval = "ONE_WEEK"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaAggIntervalOneMonth EmailRoutingTimeseriesGroupEncryptedResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfo` - `Annotations []EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingTimeseriesGroupEncryptedResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingTimeseriesGroupEncryptedResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationPercentage EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationMin0Max EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationMinMax EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationRawValues EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationPercentageChange EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationRollingAverage EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationOverlappedPercentage EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalizationRatio EmailRoutingTimeseriesGroupEncryptedResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingTimeseriesGroupEncryptedResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailRoutingTimeseriesGroupEncryptedResponseSerie0` - `Encrypted []string` - `NotEncrypted []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.TimeseriesGroups.Encrypted(context.TODO(), radar.EmailRoutingTimeseriesGroupEncryptedParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "ENCRYPTED": [ "10" ], "NOT_ENCRYPTED": [ "10" ] } }, "success": true } ``` ## Get email IP version time series `client.Radar.Email.Routing.TimeseriesGroups.IPVersion(ctx, query) (*EmailRoutingTimeseriesGroupIPVersionResponse, error)` **get** `/radar/email/routing/timeseries_groups/ip_version` Retrieves the distribution of emails by IP version over time. ### Parameters - `query EmailRoutingTimeseriesGroupIPVersionParams` - `AggInterval param.Field[EmailRoutingTimeseriesGroupIPVersionParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupIPVersionParamsAggInterval15m EmailRoutingTimeseriesGroupIPVersionParamsAggInterval = "15m"` - `const EmailRoutingTimeseriesGroupIPVersionParamsAggInterval1h EmailRoutingTimeseriesGroupIPVersionParamsAggInterval = "1h"` - `const EmailRoutingTimeseriesGroupIPVersionParamsAggInterval1d EmailRoutingTimeseriesGroupIPVersionParamsAggInterval = "1d"` - `const EmailRoutingTimeseriesGroupIPVersionParamsAggInterval1w EmailRoutingTimeseriesGroupIPVersionParamsAggInterval = "1w"` - `ARC param.Field[[]EmailRoutingTimeseriesGroupIPVersionParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingTimeseriesGroupIPVersionParamsARCPass EmailRoutingTimeseriesGroupIPVersionParamsARC = "PASS"` - `const EmailRoutingTimeseriesGroupIPVersionParamsARCNone EmailRoutingTimeseriesGroupIPVersionParamsARC = "NONE"` - `const EmailRoutingTimeseriesGroupIPVersionParamsARCFail EmailRoutingTimeseriesGroupIPVersionParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingTimeseriesGroupIPVersionParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingTimeseriesGroupIPVersionParamsDKIMPass EmailRoutingTimeseriesGroupIPVersionParamsDKIM = "PASS"` - `const EmailRoutingTimeseriesGroupIPVersionParamsDKIMNone EmailRoutingTimeseriesGroupIPVersionParamsDKIM = "NONE"` - `const EmailRoutingTimeseriesGroupIPVersionParamsDKIMFail EmailRoutingTimeseriesGroupIPVersionParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingTimeseriesGroupIPVersionParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingTimeseriesGroupIPVersionParamsDMARCPass EmailRoutingTimeseriesGroupIPVersionParamsDMARC = "PASS"` - `const EmailRoutingTimeseriesGroupIPVersionParamsDMARCNone EmailRoutingTimeseriesGroupIPVersionParamsDMARC = "NONE"` - `const EmailRoutingTimeseriesGroupIPVersionParamsDMARCFail EmailRoutingTimeseriesGroupIPVersionParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingTimeseriesGroupIPVersionParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingTimeseriesGroupIPVersionParamsEncryptedEncrypted EmailRoutingTimeseriesGroupIPVersionParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingTimeseriesGroupIPVersionParamsEncryptedNotEncrypted EmailRoutingTimeseriesGroupIPVersionParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingTimeseriesGroupIPVersionParamsFormat]` Format in which results will be returned. - `const EmailRoutingTimeseriesGroupIPVersionParamsFormatJson EmailRoutingTimeseriesGroupIPVersionParamsFormat = "JSON"` - `const EmailRoutingTimeseriesGroupIPVersionParamsFormatCsv EmailRoutingTimeseriesGroupIPVersionParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailRoutingTimeseriesGroupIPVersionParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailRoutingTimeseriesGroupIPVersionParamsSPFPass EmailRoutingTimeseriesGroupIPVersionParamsSPF = "PASS"` - `const EmailRoutingTimeseriesGroupIPVersionParamsSPFNone EmailRoutingTimeseriesGroupIPVersionParamsSPF = "NONE"` - `const EmailRoutingTimeseriesGroupIPVersionParamsSPFFail EmailRoutingTimeseriesGroupIPVersionParamsSPF = "FAIL"` ### Returns - `type EmailRoutingTimeseriesGroupIPVersionResponse struct{…}` - `Meta EmailRoutingTimeseriesGroupIPVersionResponseMeta` Metadata for the results. - `AggInterval EmailRoutingTimeseriesGroupIPVersionResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaAggIntervalFifteenMinutes EmailRoutingTimeseriesGroupIPVersionResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaAggIntervalOneHour EmailRoutingTimeseriesGroupIPVersionResponseMetaAggInterval = "ONE_HOUR"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaAggIntervalOneDay EmailRoutingTimeseriesGroupIPVersionResponseMetaAggInterval = "ONE_DAY"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaAggIntervalOneWeek EmailRoutingTimeseriesGroupIPVersionResponseMetaAggInterval = "ONE_WEEK"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaAggIntervalOneMonth EmailRoutingTimeseriesGroupIPVersionResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfo` - `Annotations []EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingTimeseriesGroupIPVersionResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingTimeseriesGroupIPVersionResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationPercentage EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationMin0Max EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationMinMax EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationRawValues EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationPercentageChange EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationRollingAverage EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationOverlappedPercentage EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalizationRatio EmailRoutingTimeseriesGroupIPVersionResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingTimeseriesGroupIPVersionResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailRoutingTimeseriesGroupIPVersionResponseSerie0` - `IPv4 []string` - `IPv6 []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.TimeseriesGroups.IPVersion(context.TODO(), radar.EmailRoutingTimeseriesGroupIPVersionParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "IPv4": [ "10" ], "IPv6": [ "10" ] } }, "success": true } ``` ## Get email SPF validation time series `client.Radar.Email.Routing.TimeseriesGroups.SPF(ctx, query) (*EmailRoutingTimeseriesGroupSPFResponse, error)` **get** `/radar/email/routing/timeseries_groups/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation over time. ### Parameters - `query EmailRoutingTimeseriesGroupSPFParams` - `AggInterval param.Field[EmailRoutingTimeseriesGroupSPFParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupSPFParamsAggInterval15m EmailRoutingTimeseriesGroupSPFParamsAggInterval = "15m"` - `const EmailRoutingTimeseriesGroupSPFParamsAggInterval1h EmailRoutingTimeseriesGroupSPFParamsAggInterval = "1h"` - `const EmailRoutingTimeseriesGroupSPFParamsAggInterval1d EmailRoutingTimeseriesGroupSPFParamsAggInterval = "1d"` - `const EmailRoutingTimeseriesGroupSPFParamsAggInterval1w EmailRoutingTimeseriesGroupSPFParamsAggInterval = "1w"` - `ARC param.Field[[]EmailRoutingTimeseriesGroupSPFParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailRoutingTimeseriesGroupSPFParamsARCPass EmailRoutingTimeseriesGroupSPFParamsARC = "PASS"` - `const EmailRoutingTimeseriesGroupSPFParamsARCNone EmailRoutingTimeseriesGroupSPFParamsARC = "NONE"` - `const EmailRoutingTimeseriesGroupSPFParamsARCFail EmailRoutingTimeseriesGroupSPFParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailRoutingTimeseriesGroupSPFParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailRoutingTimeseriesGroupSPFParamsDKIMPass EmailRoutingTimeseriesGroupSPFParamsDKIM = "PASS"` - `const EmailRoutingTimeseriesGroupSPFParamsDKIMNone EmailRoutingTimeseriesGroupSPFParamsDKIM = "NONE"` - `const EmailRoutingTimeseriesGroupSPFParamsDKIMFail EmailRoutingTimeseriesGroupSPFParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailRoutingTimeseriesGroupSPFParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailRoutingTimeseriesGroupSPFParamsDMARCPass EmailRoutingTimeseriesGroupSPFParamsDMARC = "PASS"` - `const EmailRoutingTimeseriesGroupSPFParamsDMARCNone EmailRoutingTimeseriesGroupSPFParamsDMARC = "NONE"` - `const EmailRoutingTimeseriesGroupSPFParamsDMARCFail EmailRoutingTimeseriesGroupSPFParamsDMARC = "FAIL"` - `Encrypted param.Field[[]EmailRoutingTimeseriesGroupSPFParamsEncrypted]` Filters results by encryption status (encrypted vs. not-encrypted). - `const EmailRoutingTimeseriesGroupSPFParamsEncryptedEncrypted EmailRoutingTimeseriesGroupSPFParamsEncrypted = "ENCRYPTED"` - `const EmailRoutingTimeseriesGroupSPFParamsEncryptedNotEncrypted EmailRoutingTimeseriesGroupSPFParamsEncrypted = "NOT_ENCRYPTED"` - `Format param.Field[EmailRoutingTimeseriesGroupSPFParamsFormat]` Format in which results will be returned. - `const EmailRoutingTimeseriesGroupSPFParamsFormatJson EmailRoutingTimeseriesGroupSPFParamsFormat = "JSON"` - `const EmailRoutingTimeseriesGroupSPFParamsFormatCsv EmailRoutingTimeseriesGroupSPFParamsFormat = "CSV"` - `IPVersion param.Field[[]EmailRoutingTimeseriesGroupSPFParamsIPVersion]` Filters results by IP version (Ipv4 vs. IPv6). - `const EmailRoutingTimeseriesGroupSPFParamsIPVersionIPv4 EmailRoutingTimeseriesGroupSPFParamsIPVersion = "IPv4"` - `const EmailRoutingTimeseriesGroupSPFParamsIPVersionIPv6 EmailRoutingTimeseriesGroupSPFParamsIPVersion = "IPv6"` - `Name param.Field[[]string]` Array of names used to label the series in the response. ### Returns - `type EmailRoutingTimeseriesGroupSPFResponse struct{…}` - `Meta EmailRoutingTimeseriesGroupSPFResponseMeta` Metadata for the results. - `AggInterval EmailRoutingTimeseriesGroupSPFResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailRoutingTimeseriesGroupSPFResponseMetaAggIntervalFifteenMinutes EmailRoutingTimeseriesGroupSPFResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaAggIntervalOneHour EmailRoutingTimeseriesGroupSPFResponseMetaAggInterval = "ONE_HOUR"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaAggIntervalOneDay EmailRoutingTimeseriesGroupSPFResponseMetaAggInterval = "ONE_DAY"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaAggIntervalOneWeek EmailRoutingTimeseriesGroupSPFResponseMetaAggInterval = "ONE_WEEK"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaAggIntervalOneMonth EmailRoutingTimeseriesGroupSPFResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfo` - `Annotations []EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotation` - `DataSource EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailRoutingTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailRoutingTimeseriesGroupSPFResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailRoutingTimeseriesGroupSPFResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationPercentage EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "PERCENTAGE"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationMin0Max EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "MIN0_MAX"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationMinMax EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "MIN_MAX"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationRawValues EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "RAW_VALUES"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationPercentageChange EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationRollingAverage EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationOverlappedPercentage EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailRoutingTimeseriesGroupSPFResponseMetaNormalizationRatio EmailRoutingTimeseriesGroupSPFResponseMetaNormalization = "RATIO"` - `Units []EmailRoutingTimeseriesGroupSPFResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Routing.TimeseriesGroups.SPF(context.TODO(), radar.EmailRoutingTimeseriesGroupSPFParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` # Security ## Get email security summary by dimension `client.Radar.Email.Security.SummaryV2(ctx, dimension, query) (*EmailSecuritySummaryV2Response, error)` **get** `/radar/email/security/summary/{dimension}` Retrieves the distribution of email security metrics by the specified dimension. ### Parameters - `dimension EmailSecuritySummaryV2ParamsDimension` Specifies the attribute by which to group the results. - `const EmailSecuritySummaryV2ParamsDimensionSpam EmailSecuritySummaryV2ParamsDimension = "SPAM"` - `const EmailSecuritySummaryV2ParamsDimensionMalicious EmailSecuritySummaryV2ParamsDimension = "MALICIOUS"` - `const EmailSecuritySummaryV2ParamsDimensionSpoof EmailSecuritySummaryV2ParamsDimension = "SPOOF"` - `const EmailSecuritySummaryV2ParamsDimensionThreatCategory EmailSecuritySummaryV2ParamsDimension = "THREAT_CATEGORY"` - `const EmailSecuritySummaryV2ParamsDimensionARC EmailSecuritySummaryV2ParamsDimension = "ARC"` - `const EmailSecuritySummaryV2ParamsDimensionDKIM EmailSecuritySummaryV2ParamsDimension = "DKIM"` - `const EmailSecuritySummaryV2ParamsDimensionDMARC EmailSecuritySummaryV2ParamsDimension = "DMARC"` - `const EmailSecuritySummaryV2ParamsDimensionSPF EmailSecuritySummaryV2ParamsDimension = "SPF"` - `const EmailSecuritySummaryV2ParamsDimensionTLSVersion EmailSecuritySummaryV2ParamsDimension = "TLS_VERSION"` - `query EmailSecuritySummaryV2Params` - `ARC param.Field[[]EmailSecuritySummaryV2ParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummaryV2ParamsARCPass EmailSecuritySummaryV2ParamsARC = "PASS"` - `const EmailSecuritySummaryV2ParamsARCNone EmailSecuritySummaryV2ParamsARC = "NONE"` - `const EmailSecuritySummaryV2ParamsARCFail EmailSecuritySummaryV2ParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummaryV2ParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummaryV2ParamsDKIMPass EmailSecuritySummaryV2ParamsDKIM = "PASS"` - `const EmailSecuritySummaryV2ParamsDKIMNone EmailSecuritySummaryV2ParamsDKIM = "NONE"` - `const EmailSecuritySummaryV2ParamsDKIMFail EmailSecuritySummaryV2ParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummaryV2ParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummaryV2ParamsDMARCPass EmailSecuritySummaryV2ParamsDMARC = "PASS"` - `const EmailSecuritySummaryV2ParamsDMARCNone EmailSecuritySummaryV2ParamsDMARC = "NONE"` - `const EmailSecuritySummaryV2ParamsDMARCFail EmailSecuritySummaryV2ParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummaryV2ParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummaryV2ParamsFormatJson EmailSecuritySummaryV2ParamsFormat = "JSON"` - `const EmailSecuritySummaryV2ParamsFormatCsv EmailSecuritySummaryV2ParamsFormat = "CSV"` - `LimitPerGroup param.Field[int64]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummaryV2ParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummaryV2ParamsSPFPass EmailSecuritySummaryV2ParamsSPF = "PASS"` - `const EmailSecuritySummaryV2ParamsSPFNone EmailSecuritySummaryV2ParamsSPF = "NONE"` - `const EmailSecuritySummaryV2ParamsSPFFail EmailSecuritySummaryV2ParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummaryV2ParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummaryV2ParamsTLSVersionTlSv1_0 EmailSecuritySummaryV2ParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummaryV2ParamsTLSVersionTlSv1_1 EmailSecuritySummaryV2ParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummaryV2ParamsTLSVersionTlSv1_2 EmailSecuritySummaryV2ParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummaryV2ParamsTLSVersionTlSv1_3 EmailSecuritySummaryV2ParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummaryV2Response struct{…}` - `Meta EmailSecuritySummaryV2ResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummaryV2ResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummaryV2ResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummaryV2ResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummaryV2ResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummaryV2ResponseMetaNormalizationPercentage EmailSecuritySummaryV2ResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummaryV2ResponseMetaNormalizationMin0Max EmailSecuritySummaryV2ResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummaryV2ResponseMetaNormalizationMinMax EmailSecuritySummaryV2ResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummaryV2ResponseMetaNormalizationRawValues EmailSecuritySummaryV2ResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummaryV2ResponseMetaNormalizationPercentageChange EmailSecuritySummaryV2ResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummaryV2ResponseMetaNormalizationRollingAverage EmailSecuritySummaryV2ResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummaryV2ResponseMetaNormalizationOverlappedPercentage EmailSecuritySummaryV2ResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummaryV2ResponseMetaNormalizationRatio EmailSecuritySummaryV2ResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummaryV2ResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 map[string, string]` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.SummaryV2( context.TODO(), radar.EmailSecuritySummaryV2ParamsDimensionSpam, radar.EmailSecuritySummaryV2Params{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "25.084366", "PASS": "50.168733" } }, "success": true } ``` ## Get email security time series grouped by dimension `client.Radar.Email.Security.TimeseriesGroupsV2(ctx, dimension, query) (*EmailSecurityTimeseriesGroupsV2Response, error)` **get** `/radar/email/security/timeseries_groups/{dimension}` Retrieves the distribution of email security metrics grouped by dimension over time. ### Parameters - `dimension EmailSecurityTimeseriesGroupsV2ParamsDimension` Specifies the attribute by which to group the results. - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionSpam EmailSecurityTimeseriesGroupsV2ParamsDimension = "SPAM"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionMalicious EmailSecurityTimeseriesGroupsV2ParamsDimension = "MALICIOUS"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionSpoof EmailSecurityTimeseriesGroupsV2ParamsDimension = "SPOOF"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionThreatCategory EmailSecurityTimeseriesGroupsV2ParamsDimension = "THREAT_CATEGORY"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionARC EmailSecurityTimeseriesGroupsV2ParamsDimension = "ARC"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionDKIM EmailSecurityTimeseriesGroupsV2ParamsDimension = "DKIM"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionDMARC EmailSecurityTimeseriesGroupsV2ParamsDimension = "DMARC"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionSPF EmailSecurityTimeseriesGroupsV2ParamsDimension = "SPF"` - `const EmailSecurityTimeseriesGroupsV2ParamsDimensionTLSVersion EmailSecurityTimeseriesGroupsV2ParamsDimension = "TLS_VERSION"` - `query EmailSecurityTimeseriesGroupsV2Params` - `AggInterval param.Field[EmailSecurityTimeseriesGroupsV2ParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupsV2ParamsAggInterval15m EmailSecurityTimeseriesGroupsV2ParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupsV2ParamsAggInterval1h EmailSecurityTimeseriesGroupsV2ParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupsV2ParamsAggInterval1d EmailSecurityTimeseriesGroupsV2ParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupsV2ParamsAggInterval1w EmailSecurityTimeseriesGroupsV2ParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupsV2ParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupsV2ParamsARCPass EmailSecurityTimeseriesGroupsV2ParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupsV2ParamsARCNone EmailSecurityTimeseriesGroupsV2ParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupsV2ParamsARCFail EmailSecurityTimeseriesGroupsV2ParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupsV2ParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupsV2ParamsDKIMPass EmailSecurityTimeseriesGroupsV2ParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupsV2ParamsDKIMNone EmailSecurityTimeseriesGroupsV2ParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupsV2ParamsDKIMFail EmailSecurityTimeseriesGroupsV2ParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupsV2ParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupsV2ParamsDMARCPass EmailSecurityTimeseriesGroupsV2ParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupsV2ParamsDMARCNone EmailSecurityTimeseriesGroupsV2ParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupsV2ParamsDMARCFail EmailSecurityTimeseriesGroupsV2ParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupsV2ParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupsV2ParamsFormatJson EmailSecurityTimeseriesGroupsV2ParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupsV2ParamsFormatCsv EmailSecurityTimeseriesGroupsV2ParamsFormat = "CSV"` - `LimitPerGroup param.Field[int64]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupsV2ParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupsV2ParamsSPFPass EmailSecurityTimeseriesGroupsV2ParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupsV2ParamsSPFNone EmailSecurityTimeseriesGroupsV2ParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupsV2ParamsSPFFail EmailSecurityTimeseriesGroupsV2ParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupsV2ParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupsV2ParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupsV2ParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupsV2ParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupsV2ParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupsV2ParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupsV2ParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupsV2ParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupsV2ParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupsV2Response struct{…}` - `Meta EmailSecurityTimeseriesGroupsV2ResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupsV2ResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupsV2ResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupsV2ResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupsV2ResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupsV2ResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupsV2ResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupsV2ResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupsV2ResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupsV2ResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailSecurityTimeseriesGroupsV2ResponseSerie0` - `Timestamps []Time` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroupsV2( context.TODO(), radar.EmailSecurityTimeseriesGroupsV2ParamsDimensionSpam, radar.EmailSecurityTimeseriesGroupsV2Params{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` # Top # TLDs ## Get top TLDs by email message volume `client.Radar.Email.Security.Top.TLDs.Get(ctx, query) (*EmailSecurityTopTLDGetResponse, error)` **get** `/radar/email/security/top/tlds` Retrieves the top TLDs by number of email messages. ### Parameters - `query EmailSecurityTopTLDGetParams` - `ARC param.Field[[]EmailSecurityTopTLDGetParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTopTLDGetParamsARCPass EmailSecurityTopTLDGetParamsARC = "PASS"` - `const EmailSecurityTopTLDGetParamsARCNone EmailSecurityTopTLDGetParamsARC = "NONE"` - `const EmailSecurityTopTLDGetParamsARCFail EmailSecurityTopTLDGetParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTopTLDGetParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTopTLDGetParamsDKIMPass EmailSecurityTopTLDGetParamsDKIM = "PASS"` - `const EmailSecurityTopTLDGetParamsDKIMNone EmailSecurityTopTLDGetParamsDKIM = "NONE"` - `const EmailSecurityTopTLDGetParamsDKIMFail EmailSecurityTopTLDGetParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTopTLDGetParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTopTLDGetParamsDMARCPass EmailSecurityTopTLDGetParamsDMARC = "PASS"` - `const EmailSecurityTopTLDGetParamsDMARCNone EmailSecurityTopTLDGetParamsDMARC = "NONE"` - `const EmailSecurityTopTLDGetParamsDMARCFail EmailSecurityTopTLDGetParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTopTLDGetParamsFormat]` Format in which results will be returned. - `const EmailSecurityTopTLDGetParamsFormatJson EmailSecurityTopTLDGetParamsFormat = "JSON"` - `const EmailSecurityTopTLDGetParamsFormatCsv EmailSecurityTopTLDGetParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTopTLDGetParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTopTLDGetParamsSPFPass EmailSecurityTopTLDGetParamsSPF = "PASS"` - `const EmailSecurityTopTLDGetParamsSPFNone EmailSecurityTopTLDGetParamsSPF = "NONE"` - `const EmailSecurityTopTLDGetParamsSPFFail EmailSecurityTopTLDGetParamsSPF = "FAIL"` - `TLDCategory param.Field[EmailSecurityTopTLDGetParamsTLDCategory]` Filters results by TLD category. - `const EmailSecurityTopTLDGetParamsTLDCategoryClassic EmailSecurityTopTLDGetParamsTLDCategory = "CLASSIC"` - `const EmailSecurityTopTLDGetParamsTLDCategoryCountry EmailSecurityTopTLDGetParamsTLDCategory = "COUNTRY"` - `TLSVersion param.Field[[]EmailSecurityTopTLDGetParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTopTLDGetParamsTLSVersionTlSv1_0 EmailSecurityTopTLDGetParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTopTLDGetParamsTLSVersionTlSv1_1 EmailSecurityTopTLDGetParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTopTLDGetParamsTLSVersionTlSv1_2 EmailSecurityTopTLDGetParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTopTLDGetParamsTLSVersionTlSv1_3 EmailSecurityTopTLDGetParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTopTLDGetResponse struct{…}` - `Meta EmailSecurityTopTLDGetResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecurityTopTLDGetResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTopTLDGetResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTopTLDGetResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTopTLDGetResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTopTLDGetResponseMetaNormalizationPercentage EmailSecurityTopTLDGetResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTopTLDGetResponseMetaNormalizationMin0Max EmailSecurityTopTLDGetResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTopTLDGetResponseMetaNormalizationMinMax EmailSecurityTopTLDGetResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTopTLDGetResponseMetaNormalizationRawValues EmailSecurityTopTLDGetResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTopTLDGetResponseMetaNormalizationPercentageChange EmailSecurityTopTLDGetResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTopTLDGetResponseMetaNormalizationRollingAverage EmailSecurityTopTLDGetResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTopTLDGetResponseMetaNormalizationOverlappedPercentage EmailSecurityTopTLDGetResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTopTLDGetResponseMetaNormalizationRatio EmailSecurityTopTLDGetResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTopTLDGetResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Top0 []EmailSecurityTopTLDGetResponseTop0` - `Name string` - `Value string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) tld, err := client.Radar.Email.Security.Top.TLDs.Get(context.TODO(), radar.EmailSecurityTopTLDGetParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", tld.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` # Malicious ## Get top TLDs by email malicious classification `client.Radar.Email.Security.Top.TLDs.Malicious.Get(ctx, malicious, query) (*EmailSecurityTopTLDMaliciousGetResponse, error)` **get** `/radar/email/security/top/tlds/malicious/{malicious}` Retrieves the top TLDs by emails classified as malicious or not. ### Parameters - `malicious EmailSecurityTopTLDMaliciousGetParamsMalicious` Malicious classification. - `const EmailSecurityTopTLDMaliciousGetParamsMaliciousMalicious EmailSecurityTopTLDMaliciousGetParamsMalicious = "MALICIOUS"` - `const EmailSecurityTopTLDMaliciousGetParamsMaliciousNotMalicious EmailSecurityTopTLDMaliciousGetParamsMalicious = "NOT_MALICIOUS"` - `query EmailSecurityTopTLDMaliciousGetParams` - `ARC param.Field[[]EmailSecurityTopTLDMaliciousGetParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTopTLDMaliciousGetParamsARCPass EmailSecurityTopTLDMaliciousGetParamsARC = "PASS"` - `const EmailSecurityTopTLDMaliciousGetParamsARCNone EmailSecurityTopTLDMaliciousGetParamsARC = "NONE"` - `const EmailSecurityTopTLDMaliciousGetParamsARCFail EmailSecurityTopTLDMaliciousGetParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTopTLDMaliciousGetParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTopTLDMaliciousGetParamsDKIMPass EmailSecurityTopTLDMaliciousGetParamsDKIM = "PASS"` - `const EmailSecurityTopTLDMaliciousGetParamsDKIMNone EmailSecurityTopTLDMaliciousGetParamsDKIM = "NONE"` - `const EmailSecurityTopTLDMaliciousGetParamsDKIMFail EmailSecurityTopTLDMaliciousGetParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTopTLDMaliciousGetParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTopTLDMaliciousGetParamsDMARCPass EmailSecurityTopTLDMaliciousGetParamsDMARC = "PASS"` - `const EmailSecurityTopTLDMaliciousGetParamsDMARCNone EmailSecurityTopTLDMaliciousGetParamsDMARC = "NONE"` - `const EmailSecurityTopTLDMaliciousGetParamsDMARCFail EmailSecurityTopTLDMaliciousGetParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTopTLDMaliciousGetParamsFormat]` Format in which results will be returned. - `const EmailSecurityTopTLDMaliciousGetParamsFormatJson EmailSecurityTopTLDMaliciousGetParamsFormat = "JSON"` - `const EmailSecurityTopTLDMaliciousGetParamsFormatCsv EmailSecurityTopTLDMaliciousGetParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTopTLDMaliciousGetParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTopTLDMaliciousGetParamsSPFPass EmailSecurityTopTLDMaliciousGetParamsSPF = "PASS"` - `const EmailSecurityTopTLDMaliciousGetParamsSPFNone EmailSecurityTopTLDMaliciousGetParamsSPF = "NONE"` - `const EmailSecurityTopTLDMaliciousGetParamsSPFFail EmailSecurityTopTLDMaliciousGetParamsSPF = "FAIL"` - `TLDCategory param.Field[EmailSecurityTopTLDMaliciousGetParamsTLDCategory]` Filters results by TLD category. - `const EmailSecurityTopTLDMaliciousGetParamsTLDCategoryClassic EmailSecurityTopTLDMaliciousGetParamsTLDCategory = "CLASSIC"` - `const EmailSecurityTopTLDMaliciousGetParamsTLDCategoryCountry EmailSecurityTopTLDMaliciousGetParamsTLDCategory = "COUNTRY"` - `TLSVersion param.Field[[]EmailSecurityTopTLDMaliciousGetParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTopTLDMaliciousGetParamsTLSVersionTlSv1_0 EmailSecurityTopTLDMaliciousGetParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTopTLDMaliciousGetParamsTLSVersionTlSv1_1 EmailSecurityTopTLDMaliciousGetParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTopTLDMaliciousGetParamsTLSVersionTlSv1_2 EmailSecurityTopTLDMaliciousGetParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTopTLDMaliciousGetParamsTLSVersionTlSv1_3 EmailSecurityTopTLDMaliciousGetParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTopTLDMaliciousGetResponse struct{…}` - `Meta EmailSecurityTopTLDMaliciousGetResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTopTLDMaliciousGetResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTopTLDMaliciousGetResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTopTLDMaliciousGetResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationPercentage EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationMin0Max EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationMinMax EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationRawValues EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationPercentageChange EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationRollingAverage EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationOverlappedPercentage EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTopTLDMaliciousGetResponseMetaNormalizationRatio EmailSecurityTopTLDMaliciousGetResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTopTLDMaliciousGetResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Top0 []EmailSecurityTopTLDMaliciousGetResponseTop0` - `Name string` - `Value string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) malicious, err := client.Radar.Email.Security.Top.TLDs.Malicious.Get( context.TODO(), radar.EmailSecurityTopTLDMaliciousGetParamsMaliciousMalicious, radar.EmailSecurityTopTLDMaliciousGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", malicious.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` # Spam ## Get top TLDs by email spam classification `client.Radar.Email.Security.Top.TLDs.Spam.Get(ctx, spam, query) (*EmailSecurityTopTLDSpamGetResponse, error)` **get** `/radar/email/security/top/tlds/spam/{spam}` Retrieves the top TLDs by emails classified as spam or not. ### Parameters - `spam EmailSecurityTopTLDSpamGetParamsSpam` Spam classification. - `const EmailSecurityTopTLDSpamGetParamsSpamSpam EmailSecurityTopTLDSpamGetParamsSpam = "SPAM"` - `const EmailSecurityTopTLDSpamGetParamsSpamNotSpam EmailSecurityTopTLDSpamGetParamsSpam = "NOT_SPAM"` - `query EmailSecurityTopTLDSpamGetParams` - `ARC param.Field[[]EmailSecurityTopTLDSpamGetParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTopTLDSpamGetParamsARCPass EmailSecurityTopTLDSpamGetParamsARC = "PASS"` - `const EmailSecurityTopTLDSpamGetParamsARCNone EmailSecurityTopTLDSpamGetParamsARC = "NONE"` - `const EmailSecurityTopTLDSpamGetParamsARCFail EmailSecurityTopTLDSpamGetParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTopTLDSpamGetParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTopTLDSpamGetParamsDKIMPass EmailSecurityTopTLDSpamGetParamsDKIM = "PASS"` - `const EmailSecurityTopTLDSpamGetParamsDKIMNone EmailSecurityTopTLDSpamGetParamsDKIM = "NONE"` - `const EmailSecurityTopTLDSpamGetParamsDKIMFail EmailSecurityTopTLDSpamGetParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTopTLDSpamGetParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTopTLDSpamGetParamsDMARCPass EmailSecurityTopTLDSpamGetParamsDMARC = "PASS"` - `const EmailSecurityTopTLDSpamGetParamsDMARCNone EmailSecurityTopTLDSpamGetParamsDMARC = "NONE"` - `const EmailSecurityTopTLDSpamGetParamsDMARCFail EmailSecurityTopTLDSpamGetParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTopTLDSpamGetParamsFormat]` Format in which results will be returned. - `const EmailSecurityTopTLDSpamGetParamsFormatJson EmailSecurityTopTLDSpamGetParamsFormat = "JSON"` - `const EmailSecurityTopTLDSpamGetParamsFormatCsv EmailSecurityTopTLDSpamGetParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTopTLDSpamGetParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTopTLDSpamGetParamsSPFPass EmailSecurityTopTLDSpamGetParamsSPF = "PASS"` - `const EmailSecurityTopTLDSpamGetParamsSPFNone EmailSecurityTopTLDSpamGetParamsSPF = "NONE"` - `const EmailSecurityTopTLDSpamGetParamsSPFFail EmailSecurityTopTLDSpamGetParamsSPF = "FAIL"` - `TLDCategory param.Field[EmailSecurityTopTLDSpamGetParamsTLDCategory]` Filters results by TLD category. - `const EmailSecurityTopTLDSpamGetParamsTLDCategoryClassic EmailSecurityTopTLDSpamGetParamsTLDCategory = "CLASSIC"` - `const EmailSecurityTopTLDSpamGetParamsTLDCategoryCountry EmailSecurityTopTLDSpamGetParamsTLDCategory = "COUNTRY"` - `TLSVersion param.Field[[]EmailSecurityTopTLDSpamGetParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTopTLDSpamGetParamsTLSVersionTlSv1_0 EmailSecurityTopTLDSpamGetParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTopTLDSpamGetParamsTLSVersionTlSv1_1 EmailSecurityTopTLDSpamGetParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTopTLDSpamGetParamsTLSVersionTlSv1_2 EmailSecurityTopTLDSpamGetParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTopTLDSpamGetParamsTLSVersionTlSv1_3 EmailSecurityTopTLDSpamGetParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTopTLDSpamGetResponse struct{…}` - `Meta EmailSecurityTopTLDSpamGetResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTopTLDSpamGetResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTopTLDSpamGetResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTopTLDSpamGetResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationPercentage EmailSecurityTopTLDSpamGetResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationMin0Max EmailSecurityTopTLDSpamGetResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationMinMax EmailSecurityTopTLDSpamGetResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationRawValues EmailSecurityTopTLDSpamGetResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationPercentageChange EmailSecurityTopTLDSpamGetResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationRollingAverage EmailSecurityTopTLDSpamGetResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationOverlappedPercentage EmailSecurityTopTLDSpamGetResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTopTLDSpamGetResponseMetaNormalizationRatio EmailSecurityTopTLDSpamGetResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTopTLDSpamGetResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Top0 []EmailSecurityTopTLDSpamGetResponseTop0` - `Name string` - `Value string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) spam, err := client.Radar.Email.Security.Top.TLDs.Spam.Get( context.TODO(), radar.EmailSecurityTopTLDSpamGetParamsSpamSpam, radar.EmailSecurityTopTLDSpamGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", spam.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` # Spoof ## Get top TLDs by email spoof classification `client.Radar.Email.Security.Top.TLDs.Spoof.Get(ctx, spoof, query) (*EmailSecurityTopTLDSpoofGetResponse, error)` **get** `/radar/email/security/top/tlds/spoof/{spoof}` Retrieves the top TLDs by emails classified as spoof or not. ### Parameters - `spoof EmailSecurityTopTLDSpoofGetParamsSpoof` Spoof classification. - `const EmailSecurityTopTLDSpoofGetParamsSpoofSpoof EmailSecurityTopTLDSpoofGetParamsSpoof = "SPOOF"` - `const EmailSecurityTopTLDSpoofGetParamsSpoofNotSpoof EmailSecurityTopTLDSpoofGetParamsSpoof = "NOT_SPOOF"` - `query EmailSecurityTopTLDSpoofGetParams` - `ARC param.Field[[]EmailSecurityTopTLDSpoofGetParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTopTLDSpoofGetParamsARCPass EmailSecurityTopTLDSpoofGetParamsARC = "PASS"` - `const EmailSecurityTopTLDSpoofGetParamsARCNone EmailSecurityTopTLDSpoofGetParamsARC = "NONE"` - `const EmailSecurityTopTLDSpoofGetParamsARCFail EmailSecurityTopTLDSpoofGetParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTopTLDSpoofGetParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTopTLDSpoofGetParamsDKIMPass EmailSecurityTopTLDSpoofGetParamsDKIM = "PASS"` - `const EmailSecurityTopTLDSpoofGetParamsDKIMNone EmailSecurityTopTLDSpoofGetParamsDKIM = "NONE"` - `const EmailSecurityTopTLDSpoofGetParamsDKIMFail EmailSecurityTopTLDSpoofGetParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTopTLDSpoofGetParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTopTLDSpoofGetParamsDMARCPass EmailSecurityTopTLDSpoofGetParamsDMARC = "PASS"` - `const EmailSecurityTopTLDSpoofGetParamsDMARCNone EmailSecurityTopTLDSpoofGetParamsDMARC = "NONE"` - `const EmailSecurityTopTLDSpoofGetParamsDMARCFail EmailSecurityTopTLDSpoofGetParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTopTLDSpoofGetParamsFormat]` Format in which results will be returned. - `const EmailSecurityTopTLDSpoofGetParamsFormatJson EmailSecurityTopTLDSpoofGetParamsFormat = "JSON"` - `const EmailSecurityTopTLDSpoofGetParamsFormatCsv EmailSecurityTopTLDSpoofGetParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTopTLDSpoofGetParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTopTLDSpoofGetParamsSPFPass EmailSecurityTopTLDSpoofGetParamsSPF = "PASS"` - `const EmailSecurityTopTLDSpoofGetParamsSPFNone EmailSecurityTopTLDSpoofGetParamsSPF = "NONE"` - `const EmailSecurityTopTLDSpoofGetParamsSPFFail EmailSecurityTopTLDSpoofGetParamsSPF = "FAIL"` - `TLDCategory param.Field[EmailSecurityTopTLDSpoofGetParamsTLDCategory]` Filters results by TLD category. - `const EmailSecurityTopTLDSpoofGetParamsTLDCategoryClassic EmailSecurityTopTLDSpoofGetParamsTLDCategory = "CLASSIC"` - `const EmailSecurityTopTLDSpoofGetParamsTLDCategoryCountry EmailSecurityTopTLDSpoofGetParamsTLDCategory = "COUNTRY"` - `TLSVersion param.Field[[]EmailSecurityTopTLDSpoofGetParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTopTLDSpoofGetParamsTLSVersionTlSv1_0 EmailSecurityTopTLDSpoofGetParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTopTLDSpoofGetParamsTLSVersionTlSv1_1 EmailSecurityTopTLDSpoofGetParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTopTLDSpoofGetParamsTLSVersionTlSv1_2 EmailSecurityTopTLDSpoofGetParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTopTLDSpoofGetParamsTLSVersionTlSv1_3 EmailSecurityTopTLDSpoofGetParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTopTLDSpoofGetResponse struct{…}` - `Meta EmailSecurityTopTLDSpoofGetResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTopTLDSpoofGetResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTopTLDSpoofGetResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTopTLDSpoofGetResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationPercentage EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationMin0Max EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationMinMax EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationRawValues EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationPercentageChange EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationRollingAverage EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationOverlappedPercentage EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTopTLDSpoofGetResponseMetaNormalizationRatio EmailSecurityTopTLDSpoofGetResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTopTLDSpoofGetResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Top0 []EmailSecurityTopTLDSpoofGetResponseTop0` - `Name string` - `Value string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) spoof, err := client.Radar.Email.Security.Top.TLDs.Spoof.Get( context.TODO(), radar.EmailSecurityTopTLDSpoofGetParamsSpoofSpoof, radar.EmailSecurityTopTLDSpoofGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", spoof.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "top_0": [ { "name": "com.", "value": "10" } ] }, "success": true } ``` # Summary ## Get email ARC validation summary `client.Radar.Email.Security.Summary.ARC(ctx, query) (*EmailSecuritySummaryARCResponse, error)` **get** `/radar/email/security/summary/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation. ### Parameters - `query EmailSecuritySummaryARCParams` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummaryARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummaryARCParamsDKIMPass EmailSecuritySummaryARCParamsDKIM = "PASS"` - `const EmailSecuritySummaryARCParamsDKIMNone EmailSecuritySummaryARCParamsDKIM = "NONE"` - `const EmailSecuritySummaryARCParamsDKIMFail EmailSecuritySummaryARCParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummaryARCParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummaryARCParamsDMARCPass EmailSecuritySummaryARCParamsDMARC = "PASS"` - `const EmailSecuritySummaryARCParamsDMARCNone EmailSecuritySummaryARCParamsDMARC = "NONE"` - `const EmailSecuritySummaryARCParamsDMARCFail EmailSecuritySummaryARCParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummaryARCParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummaryARCParamsFormatJson EmailSecuritySummaryARCParamsFormat = "JSON"` - `const EmailSecuritySummaryARCParamsFormatCsv EmailSecuritySummaryARCParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummaryARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummaryARCParamsSPFPass EmailSecuritySummaryARCParamsSPF = "PASS"` - `const EmailSecuritySummaryARCParamsSPFNone EmailSecuritySummaryARCParamsSPF = "NONE"` - `const EmailSecuritySummaryARCParamsSPFFail EmailSecuritySummaryARCParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummaryARCParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummaryARCParamsTLSVersionTlSv1_0 EmailSecuritySummaryARCParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummaryARCParamsTLSVersionTlSv1_1 EmailSecuritySummaryARCParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummaryARCParamsTLSVersionTlSv1_2 EmailSecuritySummaryARCParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummaryARCParamsTLSVersionTlSv1_3 EmailSecuritySummaryARCParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummaryARCResponse struct{…}` - `Meta EmailSecuritySummaryARCResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummaryARCResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummaryARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummaryARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummaryARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummaryARCResponseMetaNormalizationPercentage EmailSecuritySummaryARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummaryARCResponseMetaNormalizationMin0Max EmailSecuritySummaryARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummaryARCResponseMetaNormalizationMinMax EmailSecuritySummaryARCResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummaryARCResponseMetaNormalizationRawValues EmailSecuritySummaryARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummaryARCResponseMetaNormalizationPercentageChange EmailSecuritySummaryARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummaryARCResponseMetaNormalizationRollingAverage EmailSecuritySummaryARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummaryARCResponseMetaNormalizationOverlappedPercentage EmailSecuritySummaryARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummaryARCResponseMetaNormalizationRatio EmailSecuritySummaryARCResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummaryARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.ARC(context.TODO(), radar.EmailSecuritySummaryARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DKIM validation summary `client.Radar.Email.Security.Summary.DKIM(ctx, query) (*EmailSecuritySummaryDKIMResponse, error)` **get** `/radar/email/security/summary/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation. ### Parameters - `query EmailSecuritySummaryDKIMParams` - `ARC param.Field[[]EmailSecuritySummaryDKIMParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummaryDKIMParamsARCPass EmailSecuritySummaryDKIMParamsARC = "PASS"` - `const EmailSecuritySummaryDKIMParamsARCNone EmailSecuritySummaryDKIMParamsARC = "NONE"` - `const EmailSecuritySummaryDKIMParamsARCFail EmailSecuritySummaryDKIMParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DMARC param.Field[[]EmailSecuritySummaryDKIMParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummaryDKIMParamsDMARCPass EmailSecuritySummaryDKIMParamsDMARC = "PASS"` - `const EmailSecuritySummaryDKIMParamsDMARCNone EmailSecuritySummaryDKIMParamsDMARC = "NONE"` - `const EmailSecuritySummaryDKIMParamsDMARCFail EmailSecuritySummaryDKIMParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummaryDKIMParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummaryDKIMParamsFormatJson EmailSecuritySummaryDKIMParamsFormat = "JSON"` - `const EmailSecuritySummaryDKIMParamsFormatCsv EmailSecuritySummaryDKIMParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummaryDKIMParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummaryDKIMParamsSPFPass EmailSecuritySummaryDKIMParamsSPF = "PASS"` - `const EmailSecuritySummaryDKIMParamsSPFNone EmailSecuritySummaryDKIMParamsSPF = "NONE"` - `const EmailSecuritySummaryDKIMParamsSPFFail EmailSecuritySummaryDKIMParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummaryDKIMParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummaryDKIMParamsTLSVersionTlSv1_0 EmailSecuritySummaryDKIMParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummaryDKIMParamsTLSVersionTlSv1_1 EmailSecuritySummaryDKIMParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummaryDKIMParamsTLSVersionTlSv1_2 EmailSecuritySummaryDKIMParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummaryDKIMParamsTLSVersionTlSv1_3 EmailSecuritySummaryDKIMParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummaryDKIMResponse struct{…}` - `Meta EmailSecuritySummaryDKIMResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummaryDKIMResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummaryDKIMResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummaryDKIMResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummaryDKIMResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummaryDKIMResponseMetaNormalizationPercentage EmailSecuritySummaryDKIMResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummaryDKIMResponseMetaNormalizationMin0Max EmailSecuritySummaryDKIMResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummaryDKIMResponseMetaNormalizationMinMax EmailSecuritySummaryDKIMResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummaryDKIMResponseMetaNormalizationRawValues EmailSecuritySummaryDKIMResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummaryDKIMResponseMetaNormalizationPercentageChange EmailSecuritySummaryDKIMResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummaryDKIMResponseMetaNormalizationRollingAverage EmailSecuritySummaryDKIMResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummaryDKIMResponseMetaNormalizationOverlappedPercentage EmailSecuritySummaryDKIMResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummaryDKIMResponseMetaNormalizationRatio EmailSecuritySummaryDKIMResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummaryDKIMResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.DKIM(context.TODO(), radar.EmailSecuritySummaryDKIMParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email DMARC validation summary `client.Radar.Email.Security.Summary.DMARC(ctx, query) (*EmailSecuritySummaryDMARCResponse, error)` **get** `/radar/email/security/summary/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation. ### Parameters - `query EmailSecuritySummaryDMARCParams` - `ARC param.Field[[]EmailSecuritySummaryDMARCParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummaryDMARCParamsARCPass EmailSecuritySummaryDMARCParamsARC = "PASS"` - `const EmailSecuritySummaryDMARCParamsARCNone EmailSecuritySummaryDMARCParamsARC = "NONE"` - `const EmailSecuritySummaryDMARCParamsARCFail EmailSecuritySummaryDMARCParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummaryDMARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummaryDMARCParamsDKIMPass EmailSecuritySummaryDMARCParamsDKIM = "PASS"` - `const EmailSecuritySummaryDMARCParamsDKIMNone EmailSecuritySummaryDMARCParamsDKIM = "NONE"` - `const EmailSecuritySummaryDMARCParamsDKIMFail EmailSecuritySummaryDMARCParamsDKIM = "FAIL"` - `Format param.Field[EmailSecuritySummaryDMARCParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummaryDMARCParamsFormatJson EmailSecuritySummaryDMARCParamsFormat = "JSON"` - `const EmailSecuritySummaryDMARCParamsFormatCsv EmailSecuritySummaryDMARCParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummaryDMARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummaryDMARCParamsSPFPass EmailSecuritySummaryDMARCParamsSPF = "PASS"` - `const EmailSecuritySummaryDMARCParamsSPFNone EmailSecuritySummaryDMARCParamsSPF = "NONE"` - `const EmailSecuritySummaryDMARCParamsSPFFail EmailSecuritySummaryDMARCParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummaryDMARCParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummaryDMARCParamsTLSVersionTlSv1_0 EmailSecuritySummaryDMARCParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummaryDMARCParamsTLSVersionTlSv1_1 EmailSecuritySummaryDMARCParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummaryDMARCParamsTLSVersionTlSv1_2 EmailSecuritySummaryDMARCParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummaryDMARCParamsTLSVersionTlSv1_3 EmailSecuritySummaryDMARCParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummaryDMARCResponse struct{…}` - `Meta EmailSecuritySummaryDMARCResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummaryDMARCResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummaryDMARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummaryDMARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummaryDMARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummaryDMARCResponseMetaNormalizationPercentage EmailSecuritySummaryDMARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummaryDMARCResponseMetaNormalizationMin0Max EmailSecuritySummaryDMARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummaryDMARCResponseMetaNormalizationMinMax EmailSecuritySummaryDMARCResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummaryDMARCResponseMetaNormalizationRawValues EmailSecuritySummaryDMARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummaryDMARCResponseMetaNormalizationPercentageChange EmailSecuritySummaryDMARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummaryDMARCResponseMetaNormalizationRollingAverage EmailSecuritySummaryDMARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummaryDMARCResponseMetaNormalizationOverlappedPercentage EmailSecuritySummaryDMARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummaryDMARCResponseMetaNormalizationRatio EmailSecuritySummaryDMARCResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummaryDMARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.DMARC(context.TODO(), radar.EmailSecuritySummaryDMARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email malicious classification summary `client.Radar.Email.Security.Summary.Malicious(ctx, query) (*EmailSecuritySummaryMaliciousResponse, error)` **get** `/radar/email/security/summary/malicious` Retrieves the distribution of emails by malicious classification. ### Parameters - `query EmailSecuritySummaryMaliciousParams` - `ARC param.Field[[]EmailSecuritySummaryMaliciousParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummaryMaliciousParamsARCPass EmailSecuritySummaryMaliciousParamsARC = "PASS"` - `const EmailSecuritySummaryMaliciousParamsARCNone EmailSecuritySummaryMaliciousParamsARC = "NONE"` - `const EmailSecuritySummaryMaliciousParamsARCFail EmailSecuritySummaryMaliciousParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummaryMaliciousParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummaryMaliciousParamsDKIMPass EmailSecuritySummaryMaliciousParamsDKIM = "PASS"` - `const EmailSecuritySummaryMaliciousParamsDKIMNone EmailSecuritySummaryMaliciousParamsDKIM = "NONE"` - `const EmailSecuritySummaryMaliciousParamsDKIMFail EmailSecuritySummaryMaliciousParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummaryMaliciousParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummaryMaliciousParamsDMARCPass EmailSecuritySummaryMaliciousParamsDMARC = "PASS"` - `const EmailSecuritySummaryMaliciousParamsDMARCNone EmailSecuritySummaryMaliciousParamsDMARC = "NONE"` - `const EmailSecuritySummaryMaliciousParamsDMARCFail EmailSecuritySummaryMaliciousParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummaryMaliciousParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummaryMaliciousParamsFormatJson EmailSecuritySummaryMaliciousParamsFormat = "JSON"` - `const EmailSecuritySummaryMaliciousParamsFormatCsv EmailSecuritySummaryMaliciousParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummaryMaliciousParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummaryMaliciousParamsSPFPass EmailSecuritySummaryMaliciousParamsSPF = "PASS"` - `const EmailSecuritySummaryMaliciousParamsSPFNone EmailSecuritySummaryMaliciousParamsSPF = "NONE"` - `const EmailSecuritySummaryMaliciousParamsSPFFail EmailSecuritySummaryMaliciousParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummaryMaliciousParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummaryMaliciousParamsTLSVersionTlSv1_0 EmailSecuritySummaryMaliciousParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummaryMaliciousParamsTLSVersionTlSv1_1 EmailSecuritySummaryMaliciousParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummaryMaliciousParamsTLSVersionTlSv1_2 EmailSecuritySummaryMaliciousParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummaryMaliciousParamsTLSVersionTlSv1_3 EmailSecuritySummaryMaliciousParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummaryMaliciousResponse struct{…}` - `Meta EmailSecuritySummaryMaliciousResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummaryMaliciousResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummaryMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummaryMaliciousResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummaryMaliciousResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationPercentage EmailSecuritySummaryMaliciousResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationMin0Max EmailSecuritySummaryMaliciousResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationMinMax EmailSecuritySummaryMaliciousResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationRawValues EmailSecuritySummaryMaliciousResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationPercentageChange EmailSecuritySummaryMaliciousResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationRollingAverage EmailSecuritySummaryMaliciousResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationOverlappedPercentage EmailSecuritySummaryMaliciousResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummaryMaliciousResponseMetaNormalizationRatio EmailSecuritySummaryMaliciousResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummaryMaliciousResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 EmailSecuritySummaryMaliciousResponseSummary0` - `Malicious string` A numeric string. - `NotMalicious string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.Malicious(context.TODO(), radar.EmailSecuritySummaryMaliciousParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "MALICIOUS": "10", "NOT_MALICIOUS": "10" } }, "success": true } ``` ## Get email spam classification summary `client.Radar.Email.Security.Summary.Spam(ctx, query) (*EmailSecuritySummarySpamResponse, error)` **get** `/radar/email/security/summary/spam` Retrieves the proportion of emails by spam classification (spam vs. non-spam). ### Parameters - `query EmailSecuritySummarySpamParams` - `ARC param.Field[[]EmailSecuritySummarySpamParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummarySpamParamsARCPass EmailSecuritySummarySpamParamsARC = "PASS"` - `const EmailSecuritySummarySpamParamsARCNone EmailSecuritySummarySpamParamsARC = "NONE"` - `const EmailSecuritySummarySpamParamsARCFail EmailSecuritySummarySpamParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummarySpamParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummarySpamParamsDKIMPass EmailSecuritySummarySpamParamsDKIM = "PASS"` - `const EmailSecuritySummarySpamParamsDKIMNone EmailSecuritySummarySpamParamsDKIM = "NONE"` - `const EmailSecuritySummarySpamParamsDKIMFail EmailSecuritySummarySpamParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummarySpamParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummarySpamParamsDMARCPass EmailSecuritySummarySpamParamsDMARC = "PASS"` - `const EmailSecuritySummarySpamParamsDMARCNone EmailSecuritySummarySpamParamsDMARC = "NONE"` - `const EmailSecuritySummarySpamParamsDMARCFail EmailSecuritySummarySpamParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummarySpamParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummarySpamParamsFormatJson EmailSecuritySummarySpamParamsFormat = "JSON"` - `const EmailSecuritySummarySpamParamsFormatCsv EmailSecuritySummarySpamParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummarySpamParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummarySpamParamsSPFPass EmailSecuritySummarySpamParamsSPF = "PASS"` - `const EmailSecuritySummarySpamParamsSPFNone EmailSecuritySummarySpamParamsSPF = "NONE"` - `const EmailSecuritySummarySpamParamsSPFFail EmailSecuritySummarySpamParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummarySpamParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummarySpamParamsTLSVersionTlSv1_0 EmailSecuritySummarySpamParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummarySpamParamsTLSVersionTlSv1_1 EmailSecuritySummarySpamParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummarySpamParamsTLSVersionTlSv1_2 EmailSecuritySummarySpamParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummarySpamParamsTLSVersionTlSv1_3 EmailSecuritySummarySpamParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummarySpamResponse struct{…}` - `Meta EmailSecuritySummarySpamResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummarySpamResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummarySpamResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummarySpamResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummarySpamResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummarySpamResponseMetaNormalizationPercentage EmailSecuritySummarySpamResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummarySpamResponseMetaNormalizationMin0Max EmailSecuritySummarySpamResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummarySpamResponseMetaNormalizationMinMax EmailSecuritySummarySpamResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummarySpamResponseMetaNormalizationRawValues EmailSecuritySummarySpamResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummarySpamResponseMetaNormalizationPercentageChange EmailSecuritySummarySpamResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummarySpamResponseMetaNormalizationRollingAverage EmailSecuritySummarySpamResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummarySpamResponseMetaNormalizationOverlappedPercentage EmailSecuritySummarySpamResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummarySpamResponseMetaNormalizationRatio EmailSecuritySummarySpamResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummarySpamResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 EmailSecuritySummarySpamResponseSummary0` - `NotSpam string` A numeric string. - `Spam string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.Spam(context.TODO(), radar.EmailSecuritySummarySpamParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SPAM": "10", "SPAM": "10" } }, "success": true } ``` ## Get email SPF validation summary `client.Radar.Email.Security.Summary.SPF(ctx, query) (*EmailSecuritySummarySPFResponse, error)` **get** `/radar/email/security/summary/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation. ### Parameters - `query EmailSecuritySummarySPFParams` - `ARC param.Field[[]EmailSecuritySummarySPFParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummarySPFParamsARCPass EmailSecuritySummarySPFParamsARC = "PASS"` - `const EmailSecuritySummarySPFParamsARCNone EmailSecuritySummarySPFParamsARC = "NONE"` - `const EmailSecuritySummarySPFParamsARCFail EmailSecuritySummarySPFParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummarySPFParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummarySPFParamsDKIMPass EmailSecuritySummarySPFParamsDKIM = "PASS"` - `const EmailSecuritySummarySPFParamsDKIMNone EmailSecuritySummarySPFParamsDKIM = "NONE"` - `const EmailSecuritySummarySPFParamsDKIMFail EmailSecuritySummarySPFParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummarySPFParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummarySPFParamsDMARCPass EmailSecuritySummarySPFParamsDMARC = "PASS"` - `const EmailSecuritySummarySPFParamsDMARCNone EmailSecuritySummarySPFParamsDMARC = "NONE"` - `const EmailSecuritySummarySPFParamsDMARCFail EmailSecuritySummarySPFParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummarySPFParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummarySPFParamsFormatJson EmailSecuritySummarySPFParamsFormat = "JSON"` - `const EmailSecuritySummarySPFParamsFormatCsv EmailSecuritySummarySPFParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `TLSVersion param.Field[[]EmailSecuritySummarySPFParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummarySPFParamsTLSVersionTlSv1_0 EmailSecuritySummarySPFParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummarySPFParamsTLSVersionTlSv1_1 EmailSecuritySummarySPFParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummarySPFParamsTLSVersionTlSv1_2 EmailSecuritySummarySPFParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummarySPFParamsTLSVersionTlSv1_3 EmailSecuritySummarySPFParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummarySPFResponse struct{…}` - `Meta EmailSecuritySummarySPFResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummarySPFResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummarySPFResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummarySPFResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummarySPFResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummarySPFResponseMetaNormalizationPercentage EmailSecuritySummarySPFResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummarySPFResponseMetaNormalizationMin0Max EmailSecuritySummarySPFResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummarySPFResponseMetaNormalizationMinMax EmailSecuritySummarySPFResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummarySPFResponseMetaNormalizationRawValues EmailSecuritySummarySPFResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummarySPFResponseMetaNormalizationPercentageChange EmailSecuritySummarySPFResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummarySPFResponseMetaNormalizationRollingAverage EmailSecuritySummarySPFResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummarySPFResponseMetaNormalizationOverlappedPercentage EmailSecuritySummarySPFResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummarySPFResponseMetaNormalizationRatio EmailSecuritySummarySPFResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummarySPFResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 RadarEmailSummary` - `Fail string` A numeric string. - `None string` A numeric string. - `Pass string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.SPF(context.TODO(), radar.EmailSecuritySummarySPFParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "FAIL": "10", "NONE": "10", "PASS": "10" } }, "success": true } ``` ## Get email threat category summary `client.Radar.Email.Security.Summary.ThreatCategory(ctx, query) (*EmailSecuritySummaryThreatCategoryResponse, error)` **get** `/radar/email/security/summary/threat_category` Retrieves the distribution of emails by threat categories. ### Parameters - `query EmailSecuritySummaryThreatCategoryParams` - `ARC param.Field[[]EmailSecuritySummaryThreatCategoryParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummaryThreatCategoryParamsARCPass EmailSecuritySummaryThreatCategoryParamsARC = "PASS"` - `const EmailSecuritySummaryThreatCategoryParamsARCNone EmailSecuritySummaryThreatCategoryParamsARC = "NONE"` - `const EmailSecuritySummaryThreatCategoryParamsARCFail EmailSecuritySummaryThreatCategoryParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummaryThreatCategoryParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummaryThreatCategoryParamsDKIMPass EmailSecuritySummaryThreatCategoryParamsDKIM = "PASS"` - `const EmailSecuritySummaryThreatCategoryParamsDKIMNone EmailSecuritySummaryThreatCategoryParamsDKIM = "NONE"` - `const EmailSecuritySummaryThreatCategoryParamsDKIMFail EmailSecuritySummaryThreatCategoryParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummaryThreatCategoryParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummaryThreatCategoryParamsDMARCPass EmailSecuritySummaryThreatCategoryParamsDMARC = "PASS"` - `const EmailSecuritySummaryThreatCategoryParamsDMARCNone EmailSecuritySummaryThreatCategoryParamsDMARC = "NONE"` - `const EmailSecuritySummaryThreatCategoryParamsDMARCFail EmailSecuritySummaryThreatCategoryParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummaryThreatCategoryParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummaryThreatCategoryParamsFormatJson EmailSecuritySummaryThreatCategoryParamsFormat = "JSON"` - `const EmailSecuritySummaryThreatCategoryParamsFormatCsv EmailSecuritySummaryThreatCategoryParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummaryThreatCategoryParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummaryThreatCategoryParamsSPFPass EmailSecuritySummaryThreatCategoryParamsSPF = "PASS"` - `const EmailSecuritySummaryThreatCategoryParamsSPFNone EmailSecuritySummaryThreatCategoryParamsSPF = "NONE"` - `const EmailSecuritySummaryThreatCategoryParamsSPFFail EmailSecuritySummaryThreatCategoryParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummaryThreatCategoryParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummaryThreatCategoryParamsTLSVersionTlSv1_0 EmailSecuritySummaryThreatCategoryParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummaryThreatCategoryParamsTLSVersionTlSv1_1 EmailSecuritySummaryThreatCategoryParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummaryThreatCategoryParamsTLSVersionTlSv1_2 EmailSecuritySummaryThreatCategoryParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummaryThreatCategoryParamsTLSVersionTlSv1_3 EmailSecuritySummaryThreatCategoryParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummaryThreatCategoryResponse struct{…}` - `Meta EmailSecuritySummaryThreatCategoryResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummaryThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummaryThreatCategoryResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummaryThreatCategoryResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationPercentage EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationMin0Max EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationMinMax EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationRawValues EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationPercentageChange EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationRollingAverage EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationOverlappedPercentage EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummaryThreatCategoryResponseMetaNormalizationRatio EmailSecuritySummaryThreatCategoryResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummaryThreatCategoryResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 EmailSecuritySummaryThreatCategoryResponseSummary0` - `BrandImpersonation string` A numeric string. - `CredentialHarvester string` A numeric string. - `IdentityDeception string` A numeric string. - `Link string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.ThreatCategory(context.TODO(), radar.EmailSecuritySummaryThreatCategoryParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "BrandImpersonation": "10", "CredentialHarvester": "10", "IdentityDeception": "10", "Link": "10" } }, "success": true } ``` ## Get email spoof classification summary `client.Radar.Email.Security.Summary.Spoof(ctx, query) (*EmailSecuritySummarySpoofResponse, error)` **get** `/radar/email/security/summary/spoof` Retrieves the proportion of emails by spoof classification (spoof vs. non-spoof). ### Parameters - `query EmailSecuritySummarySpoofParams` - `ARC param.Field[[]EmailSecuritySummarySpoofParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummarySpoofParamsARCPass EmailSecuritySummarySpoofParamsARC = "PASS"` - `const EmailSecuritySummarySpoofParamsARCNone EmailSecuritySummarySpoofParamsARC = "NONE"` - `const EmailSecuritySummarySpoofParamsARCFail EmailSecuritySummarySpoofParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummarySpoofParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummarySpoofParamsDKIMPass EmailSecuritySummarySpoofParamsDKIM = "PASS"` - `const EmailSecuritySummarySpoofParamsDKIMNone EmailSecuritySummarySpoofParamsDKIM = "NONE"` - `const EmailSecuritySummarySpoofParamsDKIMFail EmailSecuritySummarySpoofParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummarySpoofParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummarySpoofParamsDMARCPass EmailSecuritySummarySpoofParamsDMARC = "PASS"` - `const EmailSecuritySummarySpoofParamsDMARCNone EmailSecuritySummarySpoofParamsDMARC = "NONE"` - `const EmailSecuritySummarySpoofParamsDMARCFail EmailSecuritySummarySpoofParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummarySpoofParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummarySpoofParamsFormatJson EmailSecuritySummarySpoofParamsFormat = "JSON"` - `const EmailSecuritySummarySpoofParamsFormatCsv EmailSecuritySummarySpoofParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummarySpoofParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummarySpoofParamsSPFPass EmailSecuritySummarySpoofParamsSPF = "PASS"` - `const EmailSecuritySummarySpoofParamsSPFNone EmailSecuritySummarySpoofParamsSPF = "NONE"` - `const EmailSecuritySummarySpoofParamsSPFFail EmailSecuritySummarySpoofParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecuritySummarySpoofParamsTLSVersion]` Filters results by TLS version. - `const EmailSecuritySummarySpoofParamsTLSVersionTlSv1_0 EmailSecuritySummarySpoofParamsTLSVersion = "TLSv1_0"` - `const EmailSecuritySummarySpoofParamsTLSVersionTlSv1_1 EmailSecuritySummarySpoofParamsTLSVersion = "TLSv1_1"` - `const EmailSecuritySummarySpoofParamsTLSVersionTlSv1_2 EmailSecuritySummarySpoofParamsTLSVersion = "TLSv1_2"` - `const EmailSecuritySummarySpoofParamsTLSVersionTlSv1_3 EmailSecuritySummarySpoofParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecuritySummarySpoofResponse struct{…}` - `Meta EmailSecuritySummarySpoofResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummarySpoofResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummarySpoofResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummarySpoofResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummarySpoofResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummarySpoofResponseMetaNormalizationPercentage EmailSecuritySummarySpoofResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummarySpoofResponseMetaNormalizationMin0Max EmailSecuritySummarySpoofResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummarySpoofResponseMetaNormalizationMinMax EmailSecuritySummarySpoofResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummarySpoofResponseMetaNormalizationRawValues EmailSecuritySummarySpoofResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummarySpoofResponseMetaNormalizationPercentageChange EmailSecuritySummarySpoofResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummarySpoofResponseMetaNormalizationRollingAverage EmailSecuritySummarySpoofResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummarySpoofResponseMetaNormalizationOverlappedPercentage EmailSecuritySummarySpoofResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummarySpoofResponseMetaNormalizationRatio EmailSecuritySummarySpoofResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummarySpoofResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 EmailSecuritySummarySpoofResponseSummary0` - `NotSpoof string` A numeric string. - `Spoof string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.Spoof(context.TODO(), radar.EmailSecuritySummarySpoofParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "NOT_SPOOF": "10", "SPOOF": "10" } }, "success": true } ``` ## Get email TLS version summary `client.Radar.Email.Security.Summary.TLSVersion(ctx, query) (*EmailSecuritySummaryTLSVersionResponse, error)` **get** `/radar/email/security/summary/tls_version` Retrieves the distribution of emails by TLS version. ### Parameters - `query EmailSecuritySummaryTLSVersionParams` - `ARC param.Field[[]EmailSecuritySummaryTLSVersionParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecuritySummaryTLSVersionParamsARCPass EmailSecuritySummaryTLSVersionParamsARC = "PASS"` - `const EmailSecuritySummaryTLSVersionParamsARCNone EmailSecuritySummaryTLSVersionParamsARC = "NONE"` - `const EmailSecuritySummaryTLSVersionParamsARCFail EmailSecuritySummaryTLSVersionParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecuritySummaryTLSVersionParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecuritySummaryTLSVersionParamsDKIMPass EmailSecuritySummaryTLSVersionParamsDKIM = "PASS"` - `const EmailSecuritySummaryTLSVersionParamsDKIMNone EmailSecuritySummaryTLSVersionParamsDKIM = "NONE"` - `const EmailSecuritySummaryTLSVersionParamsDKIMFail EmailSecuritySummaryTLSVersionParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecuritySummaryTLSVersionParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecuritySummaryTLSVersionParamsDMARCPass EmailSecuritySummaryTLSVersionParamsDMARC = "PASS"` - `const EmailSecuritySummaryTLSVersionParamsDMARCNone EmailSecuritySummaryTLSVersionParamsDMARC = "NONE"` - `const EmailSecuritySummaryTLSVersionParamsDMARCFail EmailSecuritySummaryTLSVersionParamsDMARC = "FAIL"` - `Format param.Field[EmailSecuritySummaryTLSVersionParamsFormat]` Format in which results will be returned. - `const EmailSecuritySummaryTLSVersionParamsFormatJson EmailSecuritySummaryTLSVersionParamsFormat = "JSON"` - `const EmailSecuritySummaryTLSVersionParamsFormatCsv EmailSecuritySummaryTLSVersionParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecuritySummaryTLSVersionParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecuritySummaryTLSVersionParamsSPFPass EmailSecuritySummaryTLSVersionParamsSPF = "PASS"` - `const EmailSecuritySummaryTLSVersionParamsSPFNone EmailSecuritySummaryTLSVersionParamsSPF = "NONE"` - `const EmailSecuritySummaryTLSVersionParamsSPFFail EmailSecuritySummaryTLSVersionParamsSPF = "FAIL"` ### Returns - `type EmailSecuritySummaryTLSVersionResponse struct{…}` - `Meta EmailSecuritySummaryTLSVersionResponseMeta` Metadata for the results. - `ConfidenceInfo EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfo` - `Annotations []EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecuritySummaryTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecuritySummaryTLSVersionResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecuritySummaryTLSVersionResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationPercentage EmailSecuritySummaryTLSVersionResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationMin0Max EmailSecuritySummaryTLSVersionResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationMinMax EmailSecuritySummaryTLSVersionResponseMetaNormalization = "MIN_MAX"` - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationRawValues EmailSecuritySummaryTLSVersionResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationPercentageChange EmailSecuritySummaryTLSVersionResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationRollingAverage EmailSecuritySummaryTLSVersionResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationOverlappedPercentage EmailSecuritySummaryTLSVersionResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecuritySummaryTLSVersionResponseMetaNormalizationRatio EmailSecuritySummaryTLSVersionResponseMetaNormalization = "RATIO"` - `Units []EmailSecuritySummaryTLSVersionResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 EmailSecuritySummaryTLSVersionResponseSummary0` - `TLS1_0 string` A numeric string. - `TLS1_1 string` A numeric string. - `TLS1_2 string` A numeric string. - `TLS1_3 string` A numeric string. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.Summary.TLSVersion(context.TODO(), radar.EmailSecuritySummaryTLSVersionParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "TLS 1.0": "10", "TLS 1.1": "10", "TLS 1.2": "10", "TLS 1.3": "10" } }, "success": true } ``` # Timeseries Groups ## Get email ARC validation time series `client.Radar.Email.Security.TimeseriesGroups.ARC(ctx, query) (*EmailSecurityTimeseriesGroupARCResponse, error)` **get** `/radar/email/security/timeseries_groups/arc` Retrieves the distribution of emails by ARC (Authenticated Received Chain) validation over time. ### Parameters - `query EmailSecurityTimeseriesGroupARCParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupARCParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupARCParamsAggInterval15m EmailSecurityTimeseriesGroupARCParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupARCParamsAggInterval1h EmailSecurityTimeseriesGroupARCParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupARCParamsAggInterval1d EmailSecurityTimeseriesGroupARCParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupARCParamsAggInterval1w EmailSecurityTimeseriesGroupARCParamsAggInterval = "1w"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupARCParamsDKIMPass EmailSecurityTimeseriesGroupARCParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupARCParamsDKIMNone EmailSecurityTimeseriesGroupARCParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupARCParamsDKIMFail EmailSecurityTimeseriesGroupARCParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupARCParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupARCParamsDMARCPass EmailSecurityTimeseriesGroupARCParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupARCParamsDMARCNone EmailSecurityTimeseriesGroupARCParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupARCParamsDMARCFail EmailSecurityTimeseriesGroupARCParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupARCParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupARCParamsFormatJson EmailSecurityTimeseriesGroupARCParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupARCParamsFormatCsv EmailSecurityTimeseriesGroupARCParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupARCParamsSPFPass EmailSecurityTimeseriesGroupARCParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupARCParamsSPFNone EmailSecurityTimeseriesGroupARCParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupARCParamsSPFFail EmailSecurityTimeseriesGroupARCParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupARCParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupARCParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupARCParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupARCParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupARCParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupARCParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupARCParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupARCParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupARCParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupARCResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupARCResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupARCResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupARCResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupARCResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupARCResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupARCResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupARCResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupARCResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupARCResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupARCResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupARCResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupARCResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupARCResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupARCResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.ARC(context.TODO(), radar.EmailSecurityTimeseriesGroupARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DKIM validation time series `client.Radar.Email.Security.TimeseriesGroups.DKIM(ctx, query) (*EmailSecurityTimeseriesGroupDKIMResponse, error)` **get** `/radar/email/security/timeseries_groups/dkim` Retrieves the distribution of emails by DKIM (DomainKeys Identified Mail) validation over time. ### Parameters - `query EmailSecurityTimeseriesGroupDKIMParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupDKIMParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupDKIMParamsAggInterval15m EmailSecurityTimeseriesGroupDKIMParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupDKIMParamsAggInterval1h EmailSecurityTimeseriesGroupDKIMParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupDKIMParamsAggInterval1d EmailSecurityTimeseriesGroupDKIMParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupDKIMParamsAggInterval1w EmailSecurityTimeseriesGroupDKIMParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupDKIMParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupDKIMParamsARCPass EmailSecurityTimeseriesGroupDKIMParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupDKIMParamsARCNone EmailSecurityTimeseriesGroupDKIMParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupDKIMParamsARCFail EmailSecurityTimeseriesGroupDKIMParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DMARC param.Field[[]EmailSecurityTimeseriesGroupDKIMParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupDKIMParamsDMARCPass EmailSecurityTimeseriesGroupDKIMParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupDKIMParamsDMARCNone EmailSecurityTimeseriesGroupDKIMParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupDKIMParamsDMARCFail EmailSecurityTimeseriesGroupDKIMParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupDKIMParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupDKIMParamsFormatJson EmailSecurityTimeseriesGroupDKIMParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupDKIMParamsFormatCsv EmailSecurityTimeseriesGroupDKIMParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupDKIMParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupDKIMParamsSPFPass EmailSecurityTimeseriesGroupDKIMParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupDKIMParamsSPFNone EmailSecurityTimeseriesGroupDKIMParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupDKIMParamsSPFFail EmailSecurityTimeseriesGroupDKIMParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupDKIMParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupDKIMParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupDKIMParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupDKIMParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupDKIMParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupDKIMParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupDKIMParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupDKIMParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupDKIMParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupDKIMResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupDKIMResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupDKIMResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupDKIMResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupDKIMResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupDKIMResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupDKIMResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupDKIMResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupDKIMResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupDKIMResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupDKIMResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.DKIM(context.TODO(), radar.EmailSecurityTimeseriesGroupDKIMParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email DMARC validation time series `client.Radar.Email.Security.TimeseriesGroups.DMARC(ctx, query) (*EmailSecurityTimeseriesGroupDMARCResponse, error)` **get** `/radar/email/security/timeseries_groups/dmarc` Retrieves the distribution of emails by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation over time. ### Parameters - `query EmailSecurityTimeseriesGroupDMARCParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupDMARCParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupDMARCParamsAggInterval15m EmailSecurityTimeseriesGroupDMARCParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupDMARCParamsAggInterval1h EmailSecurityTimeseriesGroupDMARCParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupDMARCParamsAggInterval1d EmailSecurityTimeseriesGroupDMARCParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupDMARCParamsAggInterval1w EmailSecurityTimeseriesGroupDMARCParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupDMARCParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupDMARCParamsARCPass EmailSecurityTimeseriesGroupDMARCParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupDMARCParamsARCNone EmailSecurityTimeseriesGroupDMARCParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupDMARCParamsARCFail EmailSecurityTimeseriesGroupDMARCParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupDMARCParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupDMARCParamsDKIMPass EmailSecurityTimeseriesGroupDMARCParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupDMARCParamsDKIMNone EmailSecurityTimeseriesGroupDMARCParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupDMARCParamsDKIMFail EmailSecurityTimeseriesGroupDMARCParamsDKIM = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupDMARCParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupDMARCParamsFormatJson EmailSecurityTimeseriesGroupDMARCParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupDMARCParamsFormatCsv EmailSecurityTimeseriesGroupDMARCParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupDMARCParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupDMARCParamsSPFPass EmailSecurityTimeseriesGroupDMARCParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupDMARCParamsSPFNone EmailSecurityTimeseriesGroupDMARCParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupDMARCParamsSPFFail EmailSecurityTimeseriesGroupDMARCParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupDMARCParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupDMARCParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupDMARCParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupDMARCParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupDMARCParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupDMARCParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupDMARCParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupDMARCParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupDMARCParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupDMARCResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupDMARCResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupDMARCResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupDMARCResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupDMARCResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupDMARCResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupDMARCResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupDMARCResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupDMARCResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupDMARCResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupDMARCResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.DMARC(context.TODO(), radar.EmailSecurityTimeseriesGroupDMARCParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email malicious classification time series `client.Radar.Email.Security.TimeseriesGroups.Malicious(ctx, query) (*EmailSecurityTimeseriesGroupMaliciousResponse, error)` **get** `/radar/email/security/timeseries_groups/malicious` Retrieves the distribution of emails by malicious classification over time. ### Parameters - `query EmailSecurityTimeseriesGroupMaliciousParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupMaliciousParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupMaliciousParamsAggInterval15m EmailSecurityTimeseriesGroupMaliciousParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupMaliciousParamsAggInterval1h EmailSecurityTimeseriesGroupMaliciousParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupMaliciousParamsAggInterval1d EmailSecurityTimeseriesGroupMaliciousParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupMaliciousParamsAggInterval1w EmailSecurityTimeseriesGroupMaliciousParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupMaliciousParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupMaliciousParamsARCPass EmailSecurityTimeseriesGroupMaliciousParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupMaliciousParamsARCNone EmailSecurityTimeseriesGroupMaliciousParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupMaliciousParamsARCFail EmailSecurityTimeseriesGroupMaliciousParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupMaliciousParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupMaliciousParamsDKIMPass EmailSecurityTimeseriesGroupMaliciousParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupMaliciousParamsDKIMNone EmailSecurityTimeseriesGroupMaliciousParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupMaliciousParamsDKIMFail EmailSecurityTimeseriesGroupMaliciousParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupMaliciousParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupMaliciousParamsDMARCPass EmailSecurityTimeseriesGroupMaliciousParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupMaliciousParamsDMARCNone EmailSecurityTimeseriesGroupMaliciousParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupMaliciousParamsDMARCFail EmailSecurityTimeseriesGroupMaliciousParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupMaliciousParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupMaliciousParamsFormatJson EmailSecurityTimeseriesGroupMaliciousParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupMaliciousParamsFormatCsv EmailSecurityTimeseriesGroupMaliciousParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupMaliciousParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupMaliciousParamsSPFPass EmailSecurityTimeseriesGroupMaliciousParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupMaliciousParamsSPFNone EmailSecurityTimeseriesGroupMaliciousParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupMaliciousParamsSPFFail EmailSecurityTimeseriesGroupMaliciousParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupMaliciousParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupMaliciousParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupMaliciousParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupMaliciousParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupMaliciousParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupMaliciousParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupMaliciousParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupMaliciousParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupMaliciousParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupMaliciousResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupMaliciousResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupMaliciousResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupMaliciousResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupMaliciousResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupMaliciousResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupMaliciousResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupMaliciousResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupMaliciousResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupMaliciousResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupMaliciousResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupMaliciousResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailSecurityTimeseriesGroupMaliciousResponseSerie0` - `Malicious []string` - `NotMalicious []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.Malicious(context.TODO(), radar.EmailSecurityTimeseriesGroupMaliciousParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "MALICIOUS": [ "10" ], "NOT_MALICIOUS": [ "10" ] } }, "success": true } ``` ## Get email spam classification time series `client.Radar.Email.Security.TimeseriesGroups.Spam(ctx, query) (*EmailSecurityTimeseriesGroupSpamResponse, error)` **get** `/radar/email/security/timeseries_groups/spam` Retrieves the distribution of emails by spam classification (spam vs. non-spam) over time. ### Parameters - `query EmailSecurityTimeseriesGroupSpamParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupSpamParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupSpamParamsAggInterval15m EmailSecurityTimeseriesGroupSpamParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupSpamParamsAggInterval1h EmailSecurityTimeseriesGroupSpamParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupSpamParamsAggInterval1d EmailSecurityTimeseriesGroupSpamParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupSpamParamsAggInterval1w EmailSecurityTimeseriesGroupSpamParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupSpamParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupSpamParamsARCPass EmailSecurityTimeseriesGroupSpamParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupSpamParamsARCNone EmailSecurityTimeseriesGroupSpamParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupSpamParamsARCFail EmailSecurityTimeseriesGroupSpamParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupSpamParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupSpamParamsDKIMPass EmailSecurityTimeseriesGroupSpamParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupSpamParamsDKIMNone EmailSecurityTimeseriesGroupSpamParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupSpamParamsDKIMFail EmailSecurityTimeseriesGroupSpamParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupSpamParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupSpamParamsDMARCPass EmailSecurityTimeseriesGroupSpamParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupSpamParamsDMARCNone EmailSecurityTimeseriesGroupSpamParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupSpamParamsDMARCFail EmailSecurityTimeseriesGroupSpamParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupSpamParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupSpamParamsFormatJson EmailSecurityTimeseriesGroupSpamParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupSpamParamsFormatCsv EmailSecurityTimeseriesGroupSpamParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupSpamParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupSpamParamsSPFPass EmailSecurityTimeseriesGroupSpamParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupSpamParamsSPFNone EmailSecurityTimeseriesGroupSpamParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupSpamParamsSPFFail EmailSecurityTimeseriesGroupSpamParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupSpamParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupSpamParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupSpamParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupSpamParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupSpamParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupSpamParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupSpamParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupSpamParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupSpamParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupSpamResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupSpamResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupSpamResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupSpamResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupSpamResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupSpamResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupSpamResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupSpamResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupSpamResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupSpamResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupSpamResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupSpamResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupSpamResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupSpamResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupSpamResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailSecurityTimeseriesGroupSpamResponseSerie0` - `NotSpam []string` - `Spam []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.Spam(context.TODO(), radar.EmailSecurityTimeseriesGroupSpamParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SPAM": [ "10" ], "SPAM": [ "10" ] } }, "success": true } ``` ## Get email SPF validation time series `client.Radar.Email.Security.TimeseriesGroups.SPF(ctx, query) (*EmailSecurityTimeseriesGroupSPFResponse, error)` **get** `/radar/email/security/timeseries_groups/spf` Retrieves the distribution of emails by SPF (Sender Policy Framework) validation over time. ### Parameters - `query EmailSecurityTimeseriesGroupSPFParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupSPFParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupSPFParamsAggInterval15m EmailSecurityTimeseriesGroupSPFParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupSPFParamsAggInterval1h EmailSecurityTimeseriesGroupSPFParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupSPFParamsAggInterval1d EmailSecurityTimeseriesGroupSPFParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupSPFParamsAggInterval1w EmailSecurityTimeseriesGroupSPFParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupSPFParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupSPFParamsARCPass EmailSecurityTimeseriesGroupSPFParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupSPFParamsARCNone EmailSecurityTimeseriesGroupSPFParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupSPFParamsARCFail EmailSecurityTimeseriesGroupSPFParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupSPFParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupSPFParamsDKIMPass EmailSecurityTimeseriesGroupSPFParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupSPFParamsDKIMNone EmailSecurityTimeseriesGroupSPFParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupSPFParamsDKIMFail EmailSecurityTimeseriesGroupSPFParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupSPFParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupSPFParamsDMARCPass EmailSecurityTimeseriesGroupSPFParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupSPFParamsDMARCNone EmailSecurityTimeseriesGroupSPFParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupSPFParamsDMARCFail EmailSecurityTimeseriesGroupSPFParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupSPFParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupSPFParamsFormatJson EmailSecurityTimeseriesGroupSPFParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupSPFParamsFormatCsv EmailSecurityTimeseriesGroupSPFParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupSPFParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupSPFParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupSPFParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupSPFParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupSPFParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupSPFParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupSPFParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupSPFParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupSPFParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupSPFResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupSPFResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupSPFResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupSPFResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupSPFResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupSPFResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupSPFResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupSPFResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupSPFResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupSPFResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupSPFResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupSPFResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupSPFResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupSPFResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupSPFResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 RadarEmailSeries` - `Fail []string` - `None []string` - `Pass []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.SPF(context.TODO(), radar.EmailSecurityTimeseriesGroupSPFParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "FAIL": [ "10" ], "NONE": [ "10" ], "PASS": [ "10" ] } }, "success": true } ``` ## Get email threat category time series `client.Radar.Email.Security.TimeseriesGroups.ThreatCategory(ctx, query) (*EmailSecurityTimeseriesGroupThreatCategoryResponse, error)` **get** `/radar/email/security/timeseries_groups/threat_category` Retrieves the distribution of emails by threat category over time. ### Parameters - `query EmailSecurityTimeseriesGroupThreatCategoryParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval15m EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval1h EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval1d EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval1w EmailSecurityTimeseriesGroupThreatCategoryParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupThreatCategoryParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupThreatCategoryParamsARCPass EmailSecurityTimeseriesGroupThreatCategoryParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsARCNone EmailSecurityTimeseriesGroupThreatCategoryParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsARCFail EmailSecurityTimeseriesGroupThreatCategoryParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupThreatCategoryParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupThreatCategoryParamsDKIMPass EmailSecurityTimeseriesGroupThreatCategoryParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsDKIMNone EmailSecurityTimeseriesGroupThreatCategoryParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsDKIMFail EmailSecurityTimeseriesGroupThreatCategoryParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupThreatCategoryParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupThreatCategoryParamsDMARCPass EmailSecurityTimeseriesGroupThreatCategoryParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsDMARCNone EmailSecurityTimeseriesGroupThreatCategoryParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsDMARCFail EmailSecurityTimeseriesGroupThreatCategoryParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupThreatCategoryParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupThreatCategoryParamsFormatJson EmailSecurityTimeseriesGroupThreatCategoryParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsFormatCsv EmailSecurityTimeseriesGroupThreatCategoryParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupThreatCategoryParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupThreatCategoryParamsSPFPass EmailSecurityTimeseriesGroupThreatCategoryParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsSPFNone EmailSecurityTimeseriesGroupThreatCategoryParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsSPFFail EmailSecurityTimeseriesGroupThreatCategoryParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupThreatCategoryParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupThreatCategoryResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupThreatCategoryResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupThreatCategoryResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupThreatCategoryResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupThreatCategoryResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupThreatCategoryResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupThreatCategoryResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailSecurityTimeseriesGroupThreatCategoryResponseSerie0` - `BrandImpersonation []string` - `CredentialHarvester []string` - `IdentityDeception []string` - `Link []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.ThreatCategory(context.TODO(), radar.EmailSecurityTimeseriesGroupThreatCategoryParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "BrandImpersonation": [ "10" ], "CredentialHarvester": [ "10" ], "IdentityDeception": [ "10" ], "Link": [ "10" ] } }, "success": true } ``` ## Get email spoof classification time series `client.Radar.Email.Security.TimeseriesGroups.Spoof(ctx, query) (*EmailSecurityTimeseriesGroupSpoofResponse, error)` **get** `/radar/email/security/timeseries_groups/spoof` Retrieves the distribution of emails by spoof classification (spoof vs. non-spoof) over time. ### Parameters - `query EmailSecurityTimeseriesGroupSpoofParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupSpoofParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupSpoofParamsAggInterval15m EmailSecurityTimeseriesGroupSpoofParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupSpoofParamsAggInterval1h EmailSecurityTimeseriesGroupSpoofParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupSpoofParamsAggInterval1d EmailSecurityTimeseriesGroupSpoofParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupSpoofParamsAggInterval1w EmailSecurityTimeseriesGroupSpoofParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupSpoofParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupSpoofParamsARCPass EmailSecurityTimeseriesGroupSpoofParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupSpoofParamsARCNone EmailSecurityTimeseriesGroupSpoofParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupSpoofParamsARCFail EmailSecurityTimeseriesGroupSpoofParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupSpoofParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupSpoofParamsDKIMPass EmailSecurityTimeseriesGroupSpoofParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupSpoofParamsDKIMNone EmailSecurityTimeseriesGroupSpoofParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupSpoofParamsDKIMFail EmailSecurityTimeseriesGroupSpoofParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupSpoofParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupSpoofParamsDMARCPass EmailSecurityTimeseriesGroupSpoofParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupSpoofParamsDMARCNone EmailSecurityTimeseriesGroupSpoofParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupSpoofParamsDMARCFail EmailSecurityTimeseriesGroupSpoofParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupSpoofParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupSpoofParamsFormatJson EmailSecurityTimeseriesGroupSpoofParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupSpoofParamsFormatCsv EmailSecurityTimeseriesGroupSpoofParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupSpoofParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupSpoofParamsSPFPass EmailSecurityTimeseriesGroupSpoofParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupSpoofParamsSPFNone EmailSecurityTimeseriesGroupSpoofParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupSpoofParamsSPFFail EmailSecurityTimeseriesGroupSpoofParamsSPF = "FAIL"` - `TLSVersion param.Field[[]EmailSecurityTimeseriesGroupSpoofParamsTLSVersion]` Filters results by TLS version. - `const EmailSecurityTimeseriesGroupSpoofParamsTLSVersionTlSv1_0 EmailSecurityTimeseriesGroupSpoofParamsTLSVersion = "TLSv1_0"` - `const EmailSecurityTimeseriesGroupSpoofParamsTLSVersionTlSv1_1 EmailSecurityTimeseriesGroupSpoofParamsTLSVersion = "TLSv1_1"` - `const EmailSecurityTimeseriesGroupSpoofParamsTLSVersionTlSv1_2 EmailSecurityTimeseriesGroupSpoofParamsTLSVersion = "TLSv1_2"` - `const EmailSecurityTimeseriesGroupSpoofParamsTLSVersionTlSv1_3 EmailSecurityTimeseriesGroupSpoofParamsTLSVersion = "TLSv1_3"` ### Returns - `type EmailSecurityTimeseriesGroupSpoofResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupSpoofResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupSpoofResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupSpoofResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupSpoofResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupSpoofResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupSpoofResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupSpoofResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupSpoofResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupSpoofResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupSpoofResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupSpoofResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupSpoofResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupSpoofResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailSecurityTimeseriesGroupSpoofResponseSerie0` - `NotSpoof []string` - `Spoof []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.Spoof(context.TODO(), radar.EmailSecurityTimeseriesGroupSpoofParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "NOT_SPOOF": [ "10" ], "SPOOF": [ "10" ] } }, "success": true } ``` ## Get email TLS version time series `client.Radar.Email.Security.TimeseriesGroups.TLSVersion(ctx, query) (*EmailSecurityTimeseriesGroupTLSVersionResponse, error)` **get** `/radar/email/security/timeseries_groups/tls_version` Retrieves the distribution of emails by TLS version over time. ### Parameters - `query EmailSecurityTimeseriesGroupTLSVersionParams` - `AggInterval param.Field[EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval15m EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval = "15m"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval1h EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval = "1h"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval1d EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval = "1d"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval1w EmailSecurityTimeseriesGroupTLSVersionParamsAggInterval = "1w"` - `ARC param.Field[[]EmailSecurityTimeseriesGroupTLSVersionParamsARC]` Filters results by ARC (Authenticated Received Chain) validation. - `const EmailSecurityTimeseriesGroupTLSVersionParamsARCPass EmailSecurityTimeseriesGroupTLSVersionParamsARC = "PASS"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsARCNone EmailSecurityTimeseriesGroupTLSVersionParamsARC = "NONE"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsARCFail EmailSecurityTimeseriesGroupTLSVersionParamsARC = "FAIL"` - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `DKIM param.Field[[]EmailSecurityTimeseriesGroupTLSVersionParamsDKIM]` Filters results by DKIM (DomainKeys Identified Mail) validation status. - `const EmailSecurityTimeseriesGroupTLSVersionParamsDKIMPass EmailSecurityTimeseriesGroupTLSVersionParamsDKIM = "PASS"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsDKIMNone EmailSecurityTimeseriesGroupTLSVersionParamsDKIM = "NONE"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsDKIMFail EmailSecurityTimeseriesGroupTLSVersionParamsDKIM = "FAIL"` - `DMARC param.Field[[]EmailSecurityTimeseriesGroupTLSVersionParamsDMARC]` Filters results by DMARC (Domain-based Message Authentication, Reporting and Conformance) validation status. - `const EmailSecurityTimeseriesGroupTLSVersionParamsDMARCPass EmailSecurityTimeseriesGroupTLSVersionParamsDMARC = "PASS"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsDMARCNone EmailSecurityTimeseriesGroupTLSVersionParamsDMARC = "NONE"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsDMARCFail EmailSecurityTimeseriesGroupTLSVersionParamsDMARC = "FAIL"` - `Format param.Field[EmailSecurityTimeseriesGroupTLSVersionParamsFormat]` Format in which results will be returned. - `const EmailSecurityTimeseriesGroupTLSVersionParamsFormatJson EmailSecurityTimeseriesGroupTLSVersionParamsFormat = "JSON"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsFormatCsv EmailSecurityTimeseriesGroupTLSVersionParamsFormat = "CSV"` - `Name param.Field[[]string]` Array of names used to label the series in the response. - `SPF param.Field[[]EmailSecurityTimeseriesGroupTLSVersionParamsSPF]` Filters results by SPF (Sender Policy Framework) validation status. - `const EmailSecurityTimeseriesGroupTLSVersionParamsSPFPass EmailSecurityTimeseriesGroupTLSVersionParamsSPF = "PASS"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsSPFNone EmailSecurityTimeseriesGroupTLSVersionParamsSPF = "NONE"` - `const EmailSecurityTimeseriesGroupTLSVersionParamsSPFFail EmailSecurityTimeseriesGroupTLSVersionParamsSPF = "FAIL"` ### Returns - `type EmailSecurityTimeseriesGroupTLSVersionResponse struct{…}` - `Meta EmailSecurityTimeseriesGroupTLSVersionResponseMeta` Metadata for the results. - `AggInterval EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggIntervalFifteenMinutes EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggIntervalOneHour EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggInterval = "ONE_HOUR"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggIntervalOneDay EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggInterval = "ONE_DAY"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggIntervalOneWeek EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggInterval = "ONE_WEEK"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggIntervalOneMonth EmailSecurityTimeseriesGroupTLSVersionResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfo` - `Annotations []EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotation` - `DataSource EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceAll EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIBots EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceBGP EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceBots EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceCT EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNS EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceDos EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceFw EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceFwPg EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTP EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceIQI EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceNet EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceSpeed EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeEvent EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeGeneral EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeOutage EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypePipeline EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly EmailSecurityTimeseriesGroupTLSVersionResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []EmailSecurityTimeseriesGroupTLSVersionResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationPercentage EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "PERCENTAGE"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationMin0Max EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "MIN0_MAX"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationMinMax EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "MIN_MAX"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationRawValues EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "RAW_VALUES"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationPercentageChange EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationRollingAverage EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "ROLLING_AVERAGE"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationOverlappedPercentage EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalizationRatio EmailSecurityTimeseriesGroupTLSVersionResponseMetaNormalization = "RATIO"` - `Units []EmailSecurityTimeseriesGroupTLSVersionResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 EmailSecurityTimeseriesGroupTLSVersionResponseSerie0` - `TLS1_0 []string` - `TLS1_1 []string` - `TLS1_2 []string` - `TLS1_3 []string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.Email.Security.TimeseriesGroups.TLSVersion(context.TODO(), radar.EmailSecurityTimeseriesGroupTLSVersionParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "serie_0": { "TLS 1.0": [ "10" ], "TLS 1.1": [ "10" ], "TLS 1.2": [ "10" ], "TLS 1.3": [ "10" ] } }, "success": true } ```