A local-first catalog and command-line tool for finding public APIs and free-tier LLM providers—without handing over your credentials.
API Scout turns the frustrating question “what can I use for free?” into an auditable developer workflow. The repository stores concise, version-controlled records for public APIs and free-tier LLM providers, then lets you search, inspect, export, validate, and optionally check only the public documentation, status, or health URLs declared in those records.
It is intentionally not an API proxy, a scraping bot, or a credential manager. It never asks for API keys, never makes authenticated requests, and never guesses a provider endpoint. It exists to help you make a fast, informed short list before you integrate a service.
Large catalogs prove that developers value broad discovery, while provider directories and gateways show that machine-readable metadata and compatibility details make integrations practical. API Scout takes the lightweight, local-first route: a small, reviewable catalog, conservative claims, public-source links, and safe reachability checks instead of opaque rankings or unverified “free” promises. The approach was informed by the community API directory public-apis/public-apis, a structured free-LLM directory 2, and the multi-provider interoperability model demonstrated by LiteLLM 3.
| API Scout does | API Scout deliberately does not do |
|---|---|
| Searches a local, auditable catalog | Store or transmit API keys |
| Records access type, source links, and review dates | Scrape undocumented endpoints |
| Flags declared OpenAI-compatible providers | Promise that a free tier is permanent |
| Checks declared public documentation/status URLs | Call billable or authenticated product APIs |
| Exports concise JSON or Markdown | Replace a production API gateway |
The project uses only Python’s standard library at runtime. For a quick collection of useful, no-key endpoints and the constraints that matter, begin with Start Here. Then clone the project, create an isolated environment if desired, and install it in editable mode.
git clone https://github.com/EdgeAgent/api-scout.git
cd api-scout
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'Search all catalog entries using a natural-language keyword. The default output is designed for terminal scanning; use JSON or Markdown when you need to pass results to another tool or a README.
api-scout search weather
api-scout search --type llm --capability chat --openai-compatible
api-scout search --access free --format markdownInspect the complete record, including the source links used when the entry was reviewed.
api-scout show groqcloud-api
api-scout show open-meteo --format jsonValidate the catalog whenever you change a record. Validation catches duplicate IDs, invalid dates, missing metadata, invalid URLs, and incomplete API/LLM fields.
api-scout validateOptionally check public URLs. This check sends a HEAD request and falls back to GET only when the public server rejects HEAD as unsupported. It does not send credentials, request bodies, or product-API requests.
api-scout check open-meteo groqcloud-api
api-scout check --type llm --format json| Command | Purpose | Example |
|---|---|---|
search |
Find entries by text and metadata filters | api-scout search embeddings --type llm |
show |
View a full, source-linked catalog record | api-scout show nasa-open-api |
check |
Reachability-check explicitly declared public URLs only | api-scout check --access free |
validate |
Verify catalog schema and semantic conventions | api-scout validate --format json |
The search command supports --type, --category, --access, --capability, and --openai-compatible. The check command returns a nonzero exit code when a public URL is unreachable or responds with an unexpected status, which makes it suitable for a contributor’s local quality check or a controlled CI workflow.
Every entry is plain JSON under catalog/. There is no database and no remote dependency. The first seed catalog is deliberately small and source-linked; it favors verifiable records over inflated count claims.
| Field | Meaning |
|---|---|
id |
Stable lowercase kebab-case identifier used by the CLI |
kind |
Either api or llm |
access |
One of free, freemium, trial, or self-hosted |
last_reviewed |
ISO date on which the record was last checked by a contributor |
source_urls |
Official documentation or terms pages supporting the record |
openai_compatible |
A conservative boolean set only when compatibility is explicitly declared |
access_note |
Change-aware caveat about quotas, eligibility, registration, or commercial use |
Free is not forever. API Scout describes a provider’s declared access model at the record’s review date; it does not guarantee availability, price, quota, model selection, or eligibility. Always open the linked sources before choosing a production dependency.
The check command has deliberately narrow behavior. It selects only a catalog record’s declared health_url, status_url, or docs_url, in that order. It accepts only http and https URLs, uses an identifiable user agent, applies a timeout, and makes no request with authentication or a body. An HTTP success only means that a public page responded; it is not evidence that an API key works, that a quota is available, or that a service is suitable for your workload.
| Check outcome | Interpretation |
|---|---|
reachable |
A declared public URL returned an HTTP 2xx or 3xx response |
http-error |
The public server returned a 4xx or 5xx response |
unreachable |
DNS, network, TLS, or timeout failure occurred |
skipped |
The entry does not declare a public URL to check |
blocked |
The record contains a non-HTTP(S) URL and no network request was made |
Good catalog contributions are evidence-first. Add the entry to catalog/apis.json or catalog/llms.json, use official URLs in source_urls, state only what the source supports, use freemium when a free tier may have provider-specific conditions, and set today’s last_reviewed date. Then run the tests and validation command before opening a pull request.
python -m pytest
api-scout validatePlease read CONTRIBUTING.md before proposing a large catalog import or a new field. Do not submit API keys, personal access tokens, account-only endpoints, scraped credentials, or unsupported quota claims.
The project has no runtime dependency beyond Python 3.11+. Its test suite uses pytest and mocks network requests, so normal tests are deterministic and do not call third-party services.
python -m pip install -e '.[dev]'
python -m pytest
python -m api_scout.cli --helpThe repository includes research.md, which captures the design research and timestamped popularity observations. The research does not treat star counts as quality guarantees; it uses the observed projects as product-pattern evidence. API Scout’s distinctive bet is that trustworthy metadata, source links, compatibility flags, and safe local validation are more useful than another static list.
API Scout is available under the MIT License.