Contribute
Adding a resource takes three steps: fork, add twelve lines of YAML, open a PR. CI checks the schema, the duplicates and the link before a human reads it.
Maintained by Adarsh Kushwah at Dev Animecx. Corrections are as welcome as additions — a dead link reported is worth more than a resource nobody checks.
The three steps
- 1. Pick the right file.
data/llm-apis.yaml,data/mcp-servers.yaml,data/agent-tools.yamlordata/free-tiers.yaml. - 2. Add about twelve lines. Copy an existing entry and change the fields. The three that matter most are
free_limit,requires_cardandverified. - 3. Run the validator, then open the PR.
python3 scripts/validate.py
What gets accepted
- ✅ Usable without paying, and without contacting sales — a free tier, a no-card trial, or free open-source software you can self-host.
- ✅ Relevant to building an agent: inference, tools, memory, hosting, observability.
- ✅ Publicly accessible, with a published limit we can link to and cite.
- ❌ Paid products with a “free trial” that needs a card for less than $5 of value.
- ❌ Free consumer chat apps with no API — an agent needs an API.
- ❌ Crypto or token-gated services, affiliate links, and anything invite-only.
What CI checks before a human reads your PR
- Schema validation against
schemas/*.schema.json - Duplicate
id, duplicateurl, near-duplicate names - HTTPS-only URLs, and no affiliate parameters
requires_cardstated explicitly — unknown meanstrueverifiednot in the future, and not older than 30 days- Link reachability for the URLs you touched
- A delete guard that refuses a change dropping a category below its floor
Questions contributors ask
How do I add a resource to this list?
Fork the repository and add roughly twelve lines of YAML to the relevant file in data/ — one entry, one link, one verified date. Run scripts/validate.py, which checks the schema and rejects duplicate ids, URLs and near-duplicate names, then open a pull request. You do not need to touch the website: the pages, the JSON endpoints, the schemas and llms.txt are all generated from that YAML.
Why was my entry rejected?
Four reasons cover almost every rejection: the free tier requires a credit card up front, the project has no users and no commits in the last year, the offer is a time-limited trial described as free, or the link could not be verified as reachable. A card-required free tier is listed as a trial rather than as a free tier, because free here means you can start today without entering card details.
How long does a pull request take to review?
Usually within a few days. Automated checks run first — schema, duplicate ids and URLs, affiliate parameters and link reachability — so a pull request that passes them is mostly a question of whether the entry belongs. Any entry whose last verification is older than 30 days is re-checked before it is merged.
Can I pay to have my product listed?
No. There is no paid placement, no sponsored slot and no affiliate link anywhere in this catalogue, and affiliate parameters are rejected by the validator automatically. A listing here is a factual claim about a free tier rather than an advertisement, which is also why entries that stop being free are kept and marked rather than quietly deleted.
What do I do if a listed limit is wrong?
Open an issue, or a pull request, with the corrected figure and set the verified date to the day you confirmed it. Correcting a limit is as valuable as adding an entry — an out-of-date free limit is the exact problem this catalogue exists to solve — and the correction is credited to whoever made it.
Credit
Every entry records who verified it in verified_by, and that handle appears in the README's contributor wall. Your name stays attached to the claim you checked.