Free tiers and credits

34 free tiers · 32 vendors

For AI agents

50 free offers from 32 vendors, read-only JSON, no key.

Point your agent here

https://free.fru.dev/llms.txtSummary, every page and the API
https://free.fru.dev/llms-full.txtEvery offer, one line each
https://free.fru.dev/openapi.jsonOpenAPI 3.1, usable as tools

Call the API

GET only, CORS open, cached an hour at the edge. Lists take limit (up to 200) and offset.

  • GET/api/offersFree tiers, trials, credits and programs, filterabletype, category, vendor, nocard, limit, offset{ updated, total, count, limit, offset, offers[], vendors[], changes[] }
  • GET/api/offers/{id}One offer with its vendor and change historyid{ offer, vendor, changes[] }
  • GET/api/vendorsEvery vendor with how many offers it hasnone{ updated, count, vendors[] }
  • GET/api/vendors/{id}One vendor and its offersid{ vendor, offers[] }
  • GET/api/changesLaunches, raises, cuts and ends, newest first, each with its sourcesince, limit, offset{ total, count, limit, offset, since, changes[], candidates[] } (each change has url, the offer page, and title, the offer's name; candidates: the growth queue's adds and status moves, each with title, the company's name)
  • GET/api/candidatesCompanies queued to become vendors (the growth queue), Unverifiedstatus, since, limit, offset{ total, count, limit, offset, candidates[] } with status (candidate, found, none, tracked), the pricing page and the sentence on it that states a free offer
  • GET/api/searchRanked search over vendors, offers and pagesq, limit{ q, results[] } (at most 20)

Free tiers, trials, credits and programs, filterable

curl -s 'https://free.fru.dev/api/offers?type=always-free&category=database'
Sample response (real row, trimmed)
{
  "updated": "2026-11-09 10:00:51",
  "total": 50,
  "count": 1,
  "limit": 1,
  "offset": 0,
  "offers": [
    {
      "id": "aws-always-free",
      "vendor": "aws",
      "product": "AWS Always Free",
      "category": "cloud",
      "type": "always-free",
      "headline": "30+ services always free",
      "summary": "More than 30 AWS services carry a monthly free allowance on both the Free and Paid plans.",
      "creditsUsd": null,
      "upTo": false,
      "durationDays": null,
      "cardRequired": null,
      "limits": [
        [
          "Services",
          "30+ with monthly free usage"
        ],
        [
          "Plans",
          "Free and Paid plans"
        ]
      ],
      "eligibility": "",
      "signupUrl": "https://aws.amazon.com/free/",
      "docsUrl": "https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier.html",
      "sourceUrl": "https://aws.amazon.com/free/",
      "sourceQuote": "Always free: 30+ AWS services are always free within monthly usage limits on both the Free and Paid plans.",
      "lastVerified": "2026-11-09",
      "reviewed": true,
      "origin": "seed"
    }
  ]
}

One offer with its vendor and change history

curl -s 'https://free.fru.dev/api/offers/snowflake-trial'
Sample response (real row, trimmed)
{
  "offer": {
    "id": "aws-always-free",
    "vendor": "aws",
    "product": "AWS Always Free",
    "category": "cloud",
    "type": "always-free",
    "headline": "30+ services always free",
    "summary": "More than 30 AWS services carry a monthly free allowance on both the Free and Paid plans.",
    "creditsUsd": null,
    "upTo": false,
    "durationDays": null,
    "cardRequired": null,
    "limits": [
      [
        "Services",
        "30+ with monthly free usage"
      ],
      [
        "Plans",
        "Free and Paid plans"
      ]
    ],
    "eligibility": "",
    "signupUrl": "https://aws.amazon.com/free/",
    "docsUrl": "https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier.html",
    "sourceUrl": "https://aws.amazon.com/free/",
    "sourceQuote": "Always free: 30+ AWS services are always free within monthly usage limits on both the Free and Paid plans.",
    "lastVerified": "2026-11-09",
    "reviewed": true,
    "origin": "seed"
  },
  "vendor": {
    "id": "aws",
    "name": "AWS",
    "domain": "aws.amazon.com",
    "website": "https://aws.amazon.com",
    "description": "Amazon Web Services, the largest public cloud."
  },
  "changes": []
}

Every vendor with how many offers it has

curl -s 'https://free.fru.dev/api/vendors'
Sample response (real row, trimmed)
{
  "count": 32,
  "vendors": [
    {
      "id": "aws",
      "name": "AWS",
      "domain": "aws.amazon.com",
      "website": "https://aws.amazon.com",
      "description": "Amazon Web Services, the largest public cloud.",
      "offers": 4
    }
  ]
}

One vendor and its offers

curl -s 'https://free.fru.dev/api/vendors/snowflake'
Sample response (real row, trimmed)
{
  "vendor": {
    "id": "aws",
    "name": "AWS",
    "domain": "aws.amazon.com",
    "website": "https://aws.amazon.com",
    "description": "Amazon Web Services, the largest public cloud."
  },
  "offers": [
    {
      "id": "aws-always-free",
      "vendor": "aws",
      "product": "AWS Always Free",
      "category": "cloud",
      "type": "always-free",
      "headline": "30+ services always free",
      "summary": "More than 30 AWS services carry a monthly free allowance on both the Free and Paid plans.",
      "creditsUsd": null,
      "upTo": false,
      "durationDays": null,
      "cardRequired": null,
      "limits": [
        [
          "Services",
          "30+ with monthly free usage"
        ],
        [
          "Plans",
          "Free and Paid plans"
        ]
      ],
      "eligibility": "",
      "signupUrl": "https://aws.amazon.com/free/",
      "docsUrl": "https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/free-tier.html",
      "sourceUrl": "https://aws.amazon.com/free/",
      "sourceQuote": "Always free: 30+ AWS services are always free within monthly usage limits on both the Free and Paid plans.",
      "lastVerified": "2026-11-09",
      "reviewed": true,
      "origin": "seed"
    }
  ]
}

Launches, raises, cuts and ends, newest first, each with its source

curl -s 'https://free.fru.dev/api/changes?limit=10'
Sample response (real row, trimmed)
{
  "total": 8,
  "count": 1,
  "limit": 1,
  "offset": 0,
  "changes": [
    {
      "id": 16,
      "offer": "vercel-hobby",
      "date": "2026-11-06",
      "kind": "changed",
      "field": "terms",
      "before": "100 GB transfer a month",
      "after": "100 GB transfer, 2 projects",
      "note": "The project limit changed from 200 to 2 included projects.",
      "sourceUrl": "https://vercel.com/pricing",
      "reviewed": true
    }
  ]
}

Companies queued to become vendors (the growth queue), Unverified

curl -s 'https://free.fru.dev/api/candidates?status=found&limit=5'

Ranked search over vendors, offers and pages

curl -s 'https://free.fru.dev/api/search?q=postgres'
Sample response (real row, trimmed)
{
  "q": "aws",
  "results": [
    {
      "id": "co:aws",
      "group": "companies",
      "title": "AWS",
      "href": "/vendors/aws"
    }
  ]
}

Add to your agent

System prompt line

For free tiers, trials and credits of cloud, data and AI services, fetch https://free.fru.dev/llms.txt and use https://free.fru.dev/api/offers (filters: type, category, vendor, nocard). Cite "Free (free.fru.dev)" with a link.

Tool definition

{
  "name": "free_list_offers",
  "description": "List free tiers, trials and credits from Free (free.fru.dev). Returns offers with headline, limits, card requirement, duration and the vendor's official sign-up link.",
  "input_schema": {
    "type": "object",
    "properties": {
      "type": {
        "type": "string",
        "enum": [
          "always-free",
          "trial",
          "credits",
          "student",
          "startup"
        ]
      },
      "category": {
        "type": "string",
        "enum": [
          "cloud",
          "data",
          "ai",
          "database",
          "vector",
          "hosting",
          "notebooks",
          "devtools"
        ]
      },
      "vendor": {
        "type": "string",
        "description": "Vendor id, e.g. snowflake"
      },
      "nocard": {
        "type": "string",
        "enum": [
          "1"
        ],
        "description": "1 = only offers that need no card"
      }
    }
  }
}

Python

import requests

r = requests.get(
    "https://free.fru.dev/api/offers",
    params={"type": "always-free", "category": "database"},
    timeout=10,
)
for o in r.json()["offers"]:
    print(o["product"], "-", o["headline"], o["signupUrl"])

TypeScript

const url = new URL('https://free.fru.dev/api/offers')
url.searchParams.set('type', 'always-free')
url.searchParams.set('category', 'database')

const res = await fetch(url)
const { offers } = await res.json()
for (const o of offers) {
  console.log(o.product, '-', o.headline, o.signupUrl)
}

Usage terms

  • Free for reading. No key, no sign-up.
  • Please cite "Free (free.fru.dev)" with a link.
  • Responses are cached an hour; keep to 60 requests a minute.
  • Rows with reviewed: false are Unverified. The vendor's page is the final word.