{"openapi":"3.1.0","info":{"title":"Training API","version":"1.0.0","description":"Official vendor training for data and AI platforms: format, length, price, level and the certification each course prepares for, read from each vendor's own catalog, with an append-only change log. Free to read; cite Training (training.fru.dev).","contact":{"email":"fru.dev3@gmail.com"}},"servers":[{"url":"https://training.fru.dev"}],"paths":{"/api/courses":{"get":{"summary":"Official courses, filterable","parameters":[{"name":"vendor","in":"query","schema":{"type":"string"},"description":"Vendor slug (companies.fru.dev registry slug)"},{"name":"price","in":"query","schema":{"type":"string","enum":["free","paid"]}},{"name":"format","in":"query","schema":{"type":"string","enum":["self-paced","instructor-led","both"]}},{"name":"level","in":"query","schema":{"type":"string","enum":["beginner","intermediate","advanced"]}},{"name":"topic","in":"query","schema":{"type":"string","enum":["generative-ai","agents","machine-learning","data-engineering","analytics","databases","platform"]}},{"name":"cert","in":"query","schema":{"type":"string"},"description":"Case-insensitive part of a certification name"},{"name":"state","in":"query","schema":{"type":"string","enum":["active","retired","all"],"default":"active"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":200}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/courses/{slug}":{"get":{"summary":"One course with evidence and its change history","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown course"}}}},"/api/vendors":{"get":{"summary":"Vendor academies with counts","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/changes":{"get":{"summary":"Append-only change log, newest first","parameters":[{"name":"since","in":"query","schema":{"type":"string"},"description":"YYYY-MM-DD or an ISO date-time (UTC)"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":500,"default":200}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/companies":{"get":{"summary":"Vendors for the companies.fru.dev registry sync: slug, name, domain, this site’s page and dated items (courses added, changes)","parameters":[{"name":"since","in":"query","schema":{"type":"string"},"description":"Only vendors with an item or update after this ISO date-time"},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":200}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/search":{"get":{"summary":"Search courses, vendors and pages","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}