{"openapi":"3.1.0","info":{"title":"appsgit public API","version":"1.0.0","summary":"Read-only catalog of self-hosted open-source apps on GitHub.","description":"Search and filter 1,200+ self-hostable open-source apps with GitHub stats, license, Docker support, SaaS alternatives and comparisons, plus open-source MCP servers, agent skills and website templates with install snippets, open-source Android and iOS apps, and open-source desktop apps. No authentication, GET only, CORS enabled, responses cached for an hour. An MCP server with the same data runs at https://mcp.appsgit.com/mcp.\n\n## Data sources and licences\n\nResponses mix appsgit's own data with third-party text that stays under its own licence:\n\n- Most self-hosted app descriptions, plus their source tags, platforms and website/demo links, come from awesome-selfhosted-data (https://github.com/awesome-selfhosted/awesome-selfhosted-data), licensed CC BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0/). If you reuse them, credit awesome-selfhosted, name the licence and share adaptations under the same licence.\n- Repository facts (stars, forks, issues, commits, releases, licence, language, topics) and many descriptions come from the GitHub API. Descriptions and README excerpts belong to each project's authors and are covered by that project's own licence terms.\n- Mobile app metadata (package id, licence, anti-features, summaries) comes from the F-Droid repository index (https://f-droid.org). Summaries are written by each app's developers.\n- MCP server entries are discovered through the official MCP Registry (https://registry.modelcontextprotocol.io); agent skills through skills.sh leaderboards and public awesome lists; desktop apps through public awesome lists and GitHub topics. Those lists are used only to find repositories.\n- Rankings, categories, comparisons, guides and other text written by appsgit: © appsgit. Reuse with attribution and a link to https://appsgit.com is welcome.\n\nDetails and update schedule: https://appsgit.com/about#licensing","contact":{"name":"appsgit","email":"info@appsgit.com","url":"https://appsgit.com"},"license":{"name":"Mixed: see Data sources and licences","url":"https://appsgit.com/about#licensing"}},"servers":[{"url":"https://appsgit.com"}],"externalDocs":{"description":"Agent usage guide","url":"https://appsgit.com/.well-known/agent-skills/find-self-hosted-apps/SKILL.md"},"paths":{"/api/v1/apps":{"get":{"operationId":"listApps","summary":"List, filter and search apps","parameters":[{"name":"q","in":"query","description":"Search text","schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","description":"Category slug","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}},{"name":"docker","in":"query","description":"Only apps with (true) or without (false) a Docker image","schema":{"type":"boolean"}},{"name":"license","in":"query","description":"Exact license identifier, case-insensitive (e.g. MIT, AGPL-3.0)","schema":{"type":"string","maxLength":64}},{"name":"license_kind","in":"query","description":"Only apps of this license kind","schema":{"type":"string","enum":["open-source","source-available","unknown"]}},{"name":"sort","in":"query","description":"Order. Default: relevance when q is set, otherwise stars.","schema":{"type":"string","enum":["stars","updated","relevance"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AppSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found"}}}},"/api/v1/apps/{slug}":{"get":{"operationId":"getApp","summary":"Get one app","parameters":[{"name":"slug","in":"path","required":true,"description":"App slug, e.g. immich","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AppDetail"}}}},"404":{"description":"Not found"}}}},"/api/v1/search":{"get":{"operationId":"searchApps","summary":"Relevance-ranked app search","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":100}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string"},"total":{"type":"integer"},"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/AppSummary"},{"type":"object","properties":{"score":{"type":"number"}}}]}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found"}}}},"/api/v1/categories":{"get":{"operationId":"listCategories","summary":"List categories","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Category"}}}}}}}}}},"/api/v1/categories/{slug}":{"get":{"operationId":"getCategory","summary":"Get a category with its apps (ranked by stars)","parameters":[{"name":"slug","in":"path","required":true,"description":"Category slug, e.g. photo-galleries","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Category"},{"type":"object","properties":{"apps":{"type":"array","items":{"$ref":"#/components/schemas/AppSummary"}}}}]}}}},"404":{"description":"Not found"}}}},"/api/v1/alternatives":{"get":{"operationId":"listAlternatives","summary":"List commercial products that have open-source alternatives","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Alternative"}}}}}}}}}},"/api/v1/alternatives/{slug}":{"get":{"operationId":"getAlternatives","summary":"Open-source alternatives to a commercial product, in recommended order","parameters":[{"name":"slug","in":"path","required":true,"description":"Product slug, e.g. google-photos","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Alternative"},{"type":"object","properties":{"apps":{"type":"array","items":{"$ref":"#/components/schemas/AppSummary"}}}}]}}}},"404":{"description":"Not found"}}}},"/api/v1/mcp-servers":{"get":{"operationId":"listMcpServers","summary":"List, filter and search MCP servers","parameters":[{"name":"q","in":"query","description":"Search text","schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","description":"Category slug within the collection","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}},{"name":"official","in":"query","description":"Only entries published by the vendor (true) or not (false)","schema":{"type":"boolean"}},{"name":"sort","in":"query","description":"Default: relevance when q is set, otherwise stars.","schema":{"type":"string","enum":["stars","updated","relevance","trending"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollectionSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found"}}}},"/api/v1/mcp-servers/{slug}":{"get":{"operationId":"getMcpServer","summary":"Get one MCP server with install instructions","parameters":[{"name":"slug","in":"path","required":true,"description":"Slug, e.g. github","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpServer"}}}},"404":{"description":"Not found"}}}},"/api/v1/skills":{"get":{"operationId":"listSkills","summary":"List, filter and search agent skills","parameters":[{"name":"q","in":"query","description":"Search text","schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","description":"Category slug within the collection","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}},{"name":"official","in":"query","description":"Only entries published by the vendor (true) or not (false)","schema":{"type":"boolean"}},{"name":"sort","in":"query","description":"Default: relevance when q is set, otherwise stars.","schema":{"type":"string","enum":["stars","updated","relevance","trending"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollectionSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found"}}}},"/api/v1/skills/{slug}":{"get":{"operationId":"getSkill","summary":"Get one agent skill with install instructions","parameters":[{"name":"slug","in":"path","required":true,"description":"Slug, e.g. pdf","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Skill"}}}},"404":{"description":"Not found"}}}},"/api/v1/templates":{"get":{"operationId":"listTemplates","summary":"List, filter and search templates","parameters":[{"name":"q","in":"query","description":"Search text","schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","description":"Category slug within the collection","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}},{"name":"official","in":"query","description":"Only entries published by the vendor (true) or not (false)","schema":{"type":"boolean"}},{"name":"sort","in":"query","description":"Default: relevance when q is set, otherwise stars.","schema":{"type":"string","enum":["stars","updated","relevance","trending"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollectionSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found"}}}},"/api/v1/templates/{slug}":{"get":{"operationId":"getTemplate","summary":"Get one template with install instructions","parameters":[{"name":"slug","in":"path","required":true,"description":"Slug, e.g. shadcn-ui","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Template"}}}},"404":{"description":"Not found"}}}},"/api/v1/mobile-apps":{"get":{"operationId":"listMobileApps","summary":"List, filter and search mobile apps","parameters":[{"name":"q","in":"query","description":"Search text","schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","description":"Category slug within the collection","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}},{"name":"official","in":"query","description":"Only entries published by the vendor (true) or not (false)","schema":{"type":"boolean"}},{"name":"platform","in":"query","description":"Only apps for this platform","schema":{"type":"string","enum":["android","ios","web","desktop"]}},{"name":"sort","in":"query","description":"Default: relevance when q is set, otherwise stars.","schema":{"type":"string","enum":["stars","updated","relevance","trending"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollectionSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found"}}}},"/api/v1/mobile-apps/{slug}":{"get":{"operationId":"getMobileApp","summary":"Get one mobile app with install instructions","parameters":[{"name":"slug","in":"path","required":true,"description":"Slug, e.g. newpipe","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MobileApp"}}}},"404":{"description":"Not found"}}}},"/api/v1/desktop-apps":{"get":{"operationId":"listDesktopApps","summary":"List, filter and search desktop apps","parameters":[{"name":"q","in":"query","description":"Search text","schema":{"type":"string","maxLength":100}},{"name":"category","in":"query","description":"Category slug within the collection","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}},{"name":"official","in":"query","description":"Only entries published by the vendor (true) or not (false)","schema":{"type":"boolean"}},{"name":"platform","in":"query","description":"Only apps for this operating system","schema":{"type":"string","enum":["linux","macos","windows"]}},{"name":"sort","in":"query","description":"Default: relevance when q is set, otherwise stars.","schema":{"type":"string","enum":["stars","updated","relevance","trending"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":1000,"default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100,"default":20}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CollectionSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not found"}}}},"/api/v1/desktop-apps/{slug}":{"get":{"operationId":"getDesktopApp","summary":"Get one desktop app with install instructions","parameters":[{"name":"slug","in":"path","required":true,"description":"Slug, e.g. gimp","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DesktopApp"}}}},"404":{"description":"Not found"}}}},"/api/v1/compare":{"get":{"operationId":"listComparisons","summary":"List editorial comparisons","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object"}}}}}}}}}},"/api/v1/compare/{slug}":{"get":{"operationId":"getComparison","summary":"Get an editorial comparison (slug is a-vs-b)","parameters":[{"name":"slug","in":"path","required":true,"description":"Comparison slug, e.g. immich-vs-photoprism","schema":{"type":"string","pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","maxLength":120}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Not found"}}}}},"components":{"schemas":{"AppSummary":{"type":"object","required":["slug","name","description","stars","licenseKind","docker","categories","url","repoUrl"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"stars":{"type":"integer"},"license":{"type":["string","null"]},"licenseKind":{"type":"string","enum":["open-source","source-available","unknown"],"description":"open-source = OSI/FSF-approved license; source-available = public code under a restrictive license (BSL, Elastic, SSPL, PolyForm, FSL, ...); unknown = no license could be verified"},"licenseName":{"type":["string","null"],"description":"Human-readable license name, e.g. BSL 1.1"},"language":{"type":["string","null"]},"docker":{"type":"boolean","description":"An official Docker image is available"},"categories":{"type":"array","items":{"type":"string"},"description":"Category slugs, primary first"},"alternativeTo":{"type":"array","items":{"type":"string"},"description":"Slugs of commercial products this app replaces"},"lastCommit":{"type":["string","null"],"format":"date-time"},"url":{"type":"string","format":"uri"},"apiUrl":{"type":"string","format":"uri"},"repoUrl":{"type":"string","format":"uri"}}},"AppDetail":{"allOf":[{"$ref":"#/components/schemas/AppSummary"},{"type":"object","properties":{"summary":{"type":["string","null"]},"repo":{"type":"string"},"website":{"type":["string","null"]},"demoUrl":{"type":["string","null"]},"forks":{"type":["integer","null"]},"openIssues":{"type":["integer","null"]},"topics":{"type":"array","items":{"type":"string"}},"platforms":{"type":"array","items":{"type":"string"}},"archived":{"type":"boolean"},"commitsLastYear":{"type":["integer","null"]},"lastRelease":{"type":["object","null"],"properties":{"tag":{"type":"string"},"date":{"type":"string"}}},"createdAt":{"type":["string","null"]},"markdownUrl":{"type":"string","format":"uri"},"guide":{"type":["object","null"]},"comparisons":{"type":"array","items":{"type":"object"}},"installHelpUrl":{"type":"string","format":"uri"}}}]},"Category":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"appCount":{"type":"integer"},"url":{"type":"string","format":"uri"},"apiUrl":{"type":"string","format":"uri"}}},"Alternative":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"url":{"type":"string","format":"uri"},"apiUrl":{"type":"string","format":"uri"}}},"CollectionSummary":{"type":"object","required":["kind","slug","name","description","stars","license","category","official","needsApiKey","worksWith","url","repoUrl"],"properties":{"kind":{"type":"string","enum":["mcp-server","skill","template","mobile-app","desktop-app"]},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"stars":{"type":"integer"},"license":{"type":"string"},"language":{"type":["string","null"]},"category":{"type":"string"},"official":{"type":"boolean","description":"Published by the vendor itself"},"needsApiKey":{"type":"boolean"},"worksWith":{"type":"array","items":{"type":"string"}},"lastCommit":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"},"apiUrl":{"type":"string","format":"uri"},"repoUrl":{"type":"string","format":"uri"}}},"McpServer":{"allOf":[{"$ref":"#/components/schemas/CollectionSummary"},{"type":"object","properties":{"longDescription":{"type":"string"},"registryName":{"type":["string","null"]},"transports":{"type":"array","items":{"type":"string","enum":["stdio","streamable-http","sse"]}},"packages":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["npm","pypi","docker","nuget"]},"identifier":{"type":"string"},"version":{"type":"string"},"transport":{"type":"string"}}}},"remotes":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"url":{"type":"string","format":"uri"}}}},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"secret":{"type":"boolean"},"required":{"type":"boolean"},"description":{"type":"string"}}}},"tools":{"type":["array","null"],"items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}}}},"install":{"type":"object","description":"Install command and per-client config snippets"},"trend":{"type":["object","null"]},"markdownUrl":{"type":"string","format":"uri"}}}]},"Skill":{"allOf":[{"$ref":"#/components/schemas/CollectionSummary"},{"type":"object","properties":{"longDescription":{"type":"string"},"skillName":{"type":"string"},"path":{"type":"string","description":"Directory of the skill inside the repository"},"repoSkillCount":{"type":"integer"},"marketplace":{"type":["object","null"],"description":"Claude Code plugin marketplace (name, plugin)"},"triggers":{"type":"array","items":{"type":"string"}},"skillsSh":{"type":["object","null"],"properties":{"url":{"type":"string"},"installs":{"type":"integer"}}},"install":{"type":["object","null"],"description":"Commands for Claude, Codex and Cursor"},"trend":{"type":["object","null"]},"markdownUrl":{"type":"string","format":"uri"}}}]},"Template":{"allOf":[{"$ref":"#/components/schemas/CollectionSummary"},{"type":"object","properties":{"longDescription":{"type":"string"},"stack":{"type":"array","items":{"type":"string"},"description":"Detected stack slugs from a fixed vocabulary (react, nextjs, tailwind, hugo, ...)"},"stackLabels":{"type":"array","items":{"type":"string"}},"demoUrl":{"type":["string","null"],"format":"uri","description":"Live demo (repository homepage outside github.com)"},"isTemplateRepo":{"type":"boolean","description":"GitHub template repository (Use this template)"},"useTemplateUrl":{"type":["string","null"],"format":"uri"},"previewImage":{"type":["string","null"],"format":"uri","description":"GitHub social preview card"},"start":{"type":["object","null"],"description":"degit and git clone commands plus stack-specific next steps"},"trend":{"type":["object","null"]},"markdownUrl":{"type":"string","format":"uri"}}}]},"MobileApp":{"allOf":[{"$ref":"#/components/schemas/CollectionSummary"},{"type":"object","properties":{"longDescription":{"type":"string"},"platforms":{"type":"array","items":{"type":"string","enum":["android","ios","web","desktop"]}},"framework":{"type":["string","null"],"description":"flutter, react-native, kotlin, compose, java, swift, swiftui, kmp, capacitor, ionic, dotnet-maui or other"},"openSource":{"type":"boolean","description":"Always true: only OSI-approved or FSF-free licenses are listed"},"fdroid":{"type":["object","null"],"description":"F-Droid package id, URL, categories and anti-features"},"playStoreUrl":{"type":["string","null"],"format":"uri"},"appStoreUrl":{"type":["string","null"],"format":"uri"},"website":{"type":["string","null"],"format":"uri"},"icon":{"type":["string","null"],"format":"uri","description":"F-Droid-hosted app icon"},"screenshots":{"type":"array","items":{"type":"string","format":"uri"},"description":"Up to 3 F-Droid-hosted phone screenshots"},"trend":{"type":["object","null"]},"markdownUrl":{"type":"string","format":"uri"}}}]},"DesktopApp":{"allOf":[{"$ref":"#/components/schemas/CollectionSummary"},{"type":"object","properties":{"longDescription":{"type":"string"},"platforms":{"type":"array","items":{"type":"string","enum":["linux","macos","windows","bsd","web"]}},"licenseKind":{"type":"string","enum":["open-source","source-available","unknown"]},"licenseName":{"type":["string","null"]},"openSource":{"type":"boolean","description":"True when licenseKind is open-source (OSI-approved or FSF-free)"},"cli":{"type":"boolean","description":"Command-line tool rather than a GUI"},"replaces":{"type":"array","items":{"type":"string"},"description":"Commercial products it is commonly used instead of"},"replacesGeneric":{"type":"array","items":{"type":"string"},"description":"Generic jobs it does, e.g. 'PDF editor'"},"website":{"type":["string","null"],"format":"uri"},"install":{"type":"array","description":"Package-manager installs rebuilt from validated ids","items":{"type":"object","properties":{"manager":{"type":"string"},"label":{"type":"string"},"platform":{"type":"string"},"command":{"type":["string","null"]},"url":{"type":"string","format":"uri"}}}},"trend":{"type":["object","null"]},"markdownUrl":{"type":"string","format":"uri"}}}]},"Pagination":{"type":"object","properties":{"page":{"type":"integer"},"perPage":{"type":"integer"},"total":{"type":"integer"},"totalPages":{"type":"integer"},"next":{"type":["string","null"],"format":"uri"}}},"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}}