## Get indicator feed metadata `client.Intel.IndicatorFeeds.Get(ctx, feedID, query) (*IndicatorFeedGetResponse, error)` **get** `/accounts/{account_id}/intel/indicator-feeds/{feed_id}` Retrieves details for a specific custom threat indicator feed. ### Parameters - `feedID int64` Indicator feed ID - `query IndicatorFeedGetParams` - `AccountID param.Field[string]` Identifier ### Returns - `type IndicatorFeedGetResponse struct{…}` - `ID int64` The unique identifier for the indicator feed - `CreatedOn Time` The date and time when the data entry was created - `Description string` The description of the example test - `IsAttributable bool` Whether the indicator feed can be attributed to a provider - `IsDownloadable bool` Whether the indicator feed can be downloaded - `IsPublic bool` Whether the indicator feed is exposed to customers - `LastUploadSummary IndicatorFeedGetResponseLastUploadSummary` Summary of indicator counts from the last successful upload to this feed. Populated by the custom-threat-feeds loader at the end of each successful load. Absent (omitted) when no upload has completed successfully or the upload errored before the summary write. Surfaces silent-failure paths so operators can see when their indicators were dropped (popularity allowlist, expired valid_until, etc.) without reading loader logs. - `Persisted IndicatorFeedGetResponseLastUploadSummaryPersisted` Net delta applied to feed indicators by this upload. Snapshot uploads emit both *_added and *_removed; delta-add emits only \*_added; delta-remove emits only *_removed. - `DomainsAdded int64` - `DomainsRemoved int64` - `IPsAdded int64` - `IPsRemoved int64` - `URLsAdded int64` - `URLsRemoved int64` - `Skipped IndicatorFeedGetResponseLastUploadSummarySkipped` Counts of indicators that were uploaded but did not reach QuickSilver, broken down by reason. - `AllowlistedDomains int64` Domains filtered by the global popularity allowlist at QS provisioning time. Popular domains (bing.com, naver.com, etc.) are protected from custom-threat-feed enforcement. - `ExpiredIndicators int64` Indicators in the upload whose valid_until is already in the past. These are not added to QS; the expiration cron handles cleanup. - `InvalidIndicators int64` Reserved for future use. Currently always 0 — the unifier aborts the entire upload on a single bad indicator. - `Uploaded IndicatorFeedGetResponseLastUploadSummaryUploaded` Indicator counts from the unified file the loader received - `Domains int64` Number of domain indicators in the upload - `IPs int64` Number of IP indicators in the upload - `URLs int64` Number of URL indicators in the upload - `LatestUploadStatus IndicatorFeedGetResponseLatestUploadStatus` Status of the latest snapshot uploaded - `const IndicatorFeedGetResponseLatestUploadStatusMirroring IndicatorFeedGetResponseLatestUploadStatus = "Mirroring"` - `const IndicatorFeedGetResponseLatestUploadStatusUnifying IndicatorFeedGetResponseLatestUploadStatus = "Unifying"` - `const IndicatorFeedGetResponseLatestUploadStatusLoading IndicatorFeedGetResponseLatestUploadStatus = "Loading"` - `const IndicatorFeedGetResponseLatestUploadStatusProvisioning IndicatorFeedGetResponseLatestUploadStatus = "Provisioning"` - `const IndicatorFeedGetResponseLatestUploadStatusComplete IndicatorFeedGetResponseLatestUploadStatus = "Complete"` - `const IndicatorFeedGetResponseLatestUploadStatusError IndicatorFeedGetResponseLatestUploadStatus = "Error"` - `ModifiedOn Time` The date and time when the data entry was last modified - `Name string` The name of the indicator feed - `ProviderID int64` The unique identifier for the provider - `ProviderName string` The provider of the indicator feed ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/intel" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIKey("144c9defac04969c7bfad8efaa8ea194"), option.WithAPIEmail("user@example.com"), ) indicatorFeed, err := client.Intel.IndicatorFeeds.Get( context.TODO(), int64(12), intel.IndicatorFeedGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", indicatorFeed.ID) } ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": 1, "created_on": "2023-05-12T12:21:56.777653Z", "description": "example feed description", "is_attributable": false, "is_downloadable": false, "is_public": false, "last_upload_summary": { "persisted": { "domains_added": 2, "domains_removed": 1, "ips_added": 0, "ips_removed": 0, "urls_added": 0, "urls_removed": 0 }, "skipped": { "allowlisted_domains": 1, "expired_indicators": 0, "invalid_indicators": 0 }, "uploaded": { "domains": 3, "ips": 0, "urls": 0 } }, "latest_upload_status": "Complete", "modified_on": "2023-06-18T03:13:34.123321Z", "name": "example_feed_1", "provider_id": 1, "provider_name": "provider_name" } } ```