{"openapi":"3.1.0","info":{"title":"InventX Skills Library API","version":"1.0.0","description":"Read access to the skills submitted during InventX Skills Hackathon 2026. Intended for agents and LLMs as much as for people."},"servers":[{"url":"https://inventx-skills.global-invent-ai.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An event-issued API key."}},"schemas":{"SkillSummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"track":{"type":"string","enum":["client-delivery","sales-pursuit","internal-productivity","wildcard"]},"team":{"type":"string"},"authors":{"type":"array","items":{"type":"string"}},"submittedAt":{"type":"string","format":"date-time"},"fileCount":{"type":"integer"},"averageScore":{"type":["number","null"]},"scoreCount":{"type":"integer"},"url":{"type":"string","format":"uri"},"bundleUrl":{"type":["string","null"],"format":"uri"}},"required":["id","slug","title","description","track","team","submittedAt"]},"SkillDetail":{"allOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"track":{"type":"string","enum":["client-delivery","sales-pursuit","internal-productivity","wildcard"]},"team":{"type":"string"},"authors":{"type":"array","items":{"type":"string"}},"submittedAt":{"type":"string","format":"date-time"},"fileCount":{"type":"integer"},"averageScore":{"type":["number","null"]},"scoreCount":{"type":"integer"},"url":{"type":"string","format":"uri"},"bundleUrl":{"type":["string","null"],"format":"uri"}},"required":["id","slug","title","description","track","team","submittedAt"]},{"type":"object","properties":{"problem":{"type":"string"},"usage":{"type":"string"},"content":{"type":"string","description":"The SKILL.md body, frontmatter stripped."},"files":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"bytes":{"type":"integer"}}}}}}]},"Error":{"type":"object","properties":{"error":{"type":"string"}}}},"responses":{"Unauthorized":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"No such skill.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/v1/skills":{"get":{"operationId":"listSkills","summary":"List submissions","parameters":[{"name":"track","in":"query","schema":{"type":"string","enum":["client-delivery","sales-pursuit","internal-productivity","wildcard"]}},{"name":"team","in":"query","schema":{"type":"string"}},{"name":"q","in":"query","description":"Match on title, description, team, authors.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of submissions.","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"integer"},"count":{"type":"integer"},"nextCursor":{"type":["string","null"]},"skills":{"type":"array","items":{"$ref":"#/components/schemas/SkillSummary"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/api/v1/skills/{id}":{"get":{"operationId":"getSkill","summary":"Get one submission in full","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The submission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SkillDetail"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/skills/{id}/bundle":{"get":{"operationId":"downloadBundle","summary":"Download the uploaded bundle","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A zip archive.","content":{"application/zip":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/api/v1/search":{"get":{"operationId":"searchSkills","summary":"Full-text search across every SKILL.md","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Matching submissions with an excerpt each.","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"count":{"type":"integer"},"results":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/SkillSummary"},{"type":"object","properties":{"excerpt":{"type":["string","null"]}}}]}}}}}}},"400":{"description":"No search term given.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}}}}