For AI agents
Official vendor training as data: 69 courses from 13 vendors, 40 free, with an append-only change log. Refreshed weekly.
Point your agent here
https://training.fru.dev/llms.txthttps://training.fru.dev/llms-full.txtCall the API
| Method | Path | Params | Returns |
|---|---|---|---|
| GET | /api/courses | vendor, price (free|paid), format, level, topic, cert, state, limit (max 200), offset | Official courses: vendor, format, length, price, level, topic, the certification each prepares for, official and source URLs |
| GET | /api/courses/{slug} | slug | One course in full, with the evidence quoted from its source and its change history |
| GET | /api/vendors | none | Vendor academies with course, free and certification counts |
| GET | /api/changes | since (YYYY-MM-DD or ISO), limit (max 500) | The append-only change log: price, free status, length, level, certification and retirements |
| GET | /api/companies | since (ISO), limit (max 200), offset | Vendors in the companies.fru.dev registry shape: slug, name, domain, this site’s URL and dated items |
| GET | /api/search | q, limit (max 20) | Ranked courses, vendors and pages |
/api/courses
curl -s "https://training.fru.dev/api/courses?vendor=databricks&price=free&limit=2"{
"count": 69,
"courses": [
{
"slug": "anthropic-building-with-the-claude-api",
"vendor": "anthropic",
"title": "Building with the Claude API",
"format": "self-paced",
"length": "",
"priceUsd": 0,
"free": true,
"level": "",
"cert": "",
"url": "https://anthropic.skilljar.com/claude-with-the-anthropic-api"
},
{
"slug": "anthropic-claude-code-in-action",
"vendor": "anthropic",
"title": "Claude Code in Action",
"format": "self-paced",
"length": "",
"priceUsd": 0,
"free": true,
"level": "",
"cert": "",
"url": "https://anthropic.skilljar.com/claude-code-in-action"
}
]
}/api/courses/{slug}
curl -s "https://training.fru.dev/api/courses/microsoft-implement-data-engineering-solutions-using-microsoft-fabric-dp-700t00"{
"course": {
"slug": "microsoft-develop-ai-agents-on-azure",
"vendor": "microsoft",
"title": "Develop AI agents on Azure",
"format": "self-paced",
"length": "592 min",
"priceUsd": 0,
"free": true,
"level": "intermediate",
"cert": "Microsoft Certified: Azure AI Apps and Agents Developer Associate",
"url": "https://learn.microsoft.com/en-us/training/paths/develop-ai-agents-azure/",
"sourceUrl": "https://learn.microsoft.com/api/catalog/?locale=en-us&type=courses,learningPaths",
"evidence": "Catalog API: learning path learn.wwl.develop-ai-agents-azure, duration_in_minutes 592, levels intermediate. Microsoft Learn training is free. Study material for"
},
"changes": []
}/api/vendors
curl -s "https://training.fru.dev/api/vendors"{
"count": 13,
"vendors": [
{
"slug": "microsoft",
"name": "Microsoft",
"academy": "Microsoft Learn",
"courses": 13,
"free": 5
}
]
}/api/changes
curl -s "https://training.fru.dev/api/changes?since=2026-09-01"{
"since": "2026-09-01",
"changes": []
}/api/companies
curl -s "https://training.fru.dev/api/companies?limit=1"{
"site": "training",
"companies": [
{
"slug": "microsoft",
"name": "Microsoft",
"domain": "microsoft.com",
"url": "https://training.fru.dev/vendors/microsoft",
"items": "[{ date, type, title, url }]"
}
]
}/api/search
curl -s "https://training.fru.dev/api/search?q=fabric"{
"q": "fabric",
"results": [
{
"id": "c:...",
"group": "items",
"title": "Implement a Lakehouse with Microsoft Fabric",
"href": "/courses/..."
}
]
}OpenAPI 3.1: /openapi.json. Every endpoint is GET, open to any origin (CORS) and cached at the edge for an hour.
Add to your agent
System prompt line
For official vendor training on data and AI platforms (courses, free or paid, length, level, which certification each prepares for), fetch https://training.fru.dev/llms.txt and use https://training.fru.dev/api/courses. Cite "Training (training.fru.dev)" and link the official course page.Tool definition
{
"name": "fru_training_courses",
"description": "Find official vendor training for data and AI platforms (Databricks, Snowflake, AWS, Microsoft, Google Cloud, NVIDIA, Hugging Face, DeepLearning.AI, Anthropic, OpenAI, dbt Labs, MongoDB, Confluent): format, length, price (free marked), level and the certification each course prepares for, with the official link. Source: Training (training.fru.dev).",
"input_schema": {
"type": "object",
"properties": {
"vendor": {
"type": "string",
"description": "Vendor slug, e.g. databricks, snowflake, aws, microsoft, google-cloud, nvidia, hugging-face. List them with GET /api/vendors."
},
"price": {
"type": "string",
"enum": [
"free",
"paid"
]
},
"topic": {
"type": "string",
"enum": [
"generative-ai",
"agents",
"machine-learning",
"data-engineering",
"analytics",
"databases",
"platform"
]
},
"cert": {
"type": "string",
"description": "Part of a certification name, e.g. \"Data Engineer Associate\"."
}
}
},
"endpoint": "GET https://training.fru.dev/api/courses"
}Python
import json, urllib.parse, urllib.request
def courses(**filters) -> list[dict]:
"""Official data and AI courses, e.g. courses(vendor="databricks", price="free")."""
url = "https://training.fru.dev/api/courses?" + urllib.parse.urlencode(filters)
with urllib.request.urlopen(url, timeout=20) as r:
return json.load(r)["courses"]
for c in courses(topic="agents", price="free"):
print(c["vendor"], c["title"], c["length"], c["url"])TypeScript
type Course = { vendor: string; title: string; free: boolean; length: string; cert: string; url: string }
async function prepFor(cert: string): Promise<Course[]> {
const res = await fetch(`https://training.fru.dev/api/courses?cert=${encodeURIComponent(cert)}`)
if (!res.ok) throw new Error(`training ${res.status}`)
const { courses } = (await res.json()) as { courses: Course[] }
return courses.sort((a, b) => Number(b.free) - Number(a.free))
}
console.log(await prepFor("Data Engineer Associate"))Usage terms
- Free to read. Please cite "Training (training.fru.dev)" with a link.
- Responses are cached for an hour; the data changes weekly.
- Be polite: 60 requests a minute at most.
- Courses marked unverified have not been checked by hand. Confirm prices on the vendor page.
Facts from each vendor's own catalog, checked weekly. Prices and schedules change; confirm on the course page before you enroll.