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 uses Uncover via Go SDK at: services/recon-service/internal/pd/runner.goRunUncoverSDK() Configuration is loaded from:
  1. Environment variables set in the container (preferred for Docker)
  2. Volume-mounted config file at /etc/uncover/provider-config.yaml (optional)
The provider config is mounted in the Docker Compose stack at:
With the environment variable override: