Skip to main content

Uncover Provider & API Key Reference

Generated from projectdiscovery/uncover source code analysis. Supported agents: 19 total (18 requiring API keys + 1 anonymous)

Provider Overview


Provider Details

1. Shodan

2. Shodan InternetDB

3. Censys

4. FOFA

5. Quake (360)

6. Hunter (Qianxin)

7. ZoomEye

8. Netlas

9. CriminalIP

10. PublicWWW

11. HunterHow

13. ODIN

14. BinaryEdge

15. Onyphe

16. Driftnet

17. GreyNoise

18. DayDayMap

19. NerdyData


Configuration Systems

Uncover supports two configuration methods:

Method 1: YAML Config File (provider-config.yaml)

Default location: ~/.uncover-config/provider-config.yaml

Method 2: Environment Variables

Every provider can be configured via individual environment variables. These are read at runtime by LoadProviderKeysFromEnv().

Environment Variable Reference


Engine Names for -e / --engine Flag

Use these with the Uncover CLI or SDK:

Uncover SDK Configuration Behavior

When uncover.New() is called:
  1. Creates a new Provider via sources.NewProvider()
  2. NewProvider() loads the YAML config from DefaultProviderConfigLocation
  3. Then overlays environment variables via LoadProviderKeysFromEnv()
  4. Env vars append to any keys loaded from YAML (don’t override)
  5. Multiple keys for same provider are randomized on each execution
Important note for Docker/distroless: The init() function in provider.go attempts to create ~/.uncover-config/provider-config.yaml if it doesn’t exist. In distroless containers running as nonroot, this will log a warning but not crash. Configuration via environment variables is the recommended approach for containerized deployments.

Usage Notes

  • Shodan InternetDB (shodan-idb) is the only engine that requires no API key and works out of the box.
  • Multiple API keys for the same provider enable automatic key rotation (random selection).
  • Results are limited to 100 by default; use -limit flag for more.
  • The query flag supports all and only filters supported by the target search engine.
  • Chinese platforms (FOFA, Quake, Hunter) typically require phone number verification.

Recon Service Integration

The recon service and the MCP server run uncover through the Go SDK (RunUncoverSDK() in packages/go-shared/pd/runner.go). They get provider keys from environment variables only. No image carries a provider-config.yaml file, and no manifest mounts one. Set the keys per environment: uncover.New() reads the environment through LoadProviderKeysFromEnv(). If the default config file is missing, the SDK logs one warning and continues with the environment keys. The empty /home/nonroot/.uncover-config directory in the recon image lets that template write succeed.