{"openapi":"3.1.0","info":{"title":"Just Mac Apps public API","version":"1.0.0","description":"Read-only access to published Mac apps, categories, launches, and guides. No authentication required. Private maker data and unpublished records are excluded."},"servers":[{"url":"https://justmacapps.com"}],"paths":{"/v1":{"get":{"operationId":"apiDirectory","summary":"Discover the public API","parameters":[],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/apps":{"get":{"operationId":"listApps","summary":"Search published Mac apps","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":100},"description":"Search names and descriptions."},{"name":"category","in":"query","schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","default":"","type":"string","enum":["","productivity","developer-tools","design","utilities","menu-bar","window-management","screenshot","media-video","security","ai-language"]},"description":"A category slug from /v1/categories; apps only."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/App"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/apps/{slug}":{"get":{"operationId":"getApp","summary":"Read a published app","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,160}$"}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/App"}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/categories":{"get":{"operationId":"listCategories","summary":"Read categories and published app counts","parameters":[],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Category"}}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/launches/current":{"get":{"operationId":"currentLaunches","summary":"Read the current UTC launch week","parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data","pagination","weekStart"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Launch"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"weekStart":{"type":"string","format":"date"}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/guides":{"get":{"operationId":"listGuides","summary":"Search published editorial guides","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":100},"description":"Search names and descriptions."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/GuideSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/guides/{slug}":{"get":{"operationId":"getGuide","summary":"Read a published guide","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,160}$"}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Guide"}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/articles":{"get":{"operationId":"listArticles","summary":"Search published sponsored articles","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":100},"description":"Search names and descriptions."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":10000,"default":1}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50,"default":20}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Article"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/v1/articles/{slug}":{"get":{"operationId":"getArticle","summary":"Read a published sponsored article","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{0,160}$"}}],"responses":{"200":{"description":"Published public content","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/Article"}}}}}},"400":{"description":"Invalid query","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Published record not found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Content service unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"App":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"tagline":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"markdownUrl":{"type":"string"},"websiteUrl":{"type":"string"},"downloadUrl":{"type":"string"},"iconUrl":{"type":["string","null"]},"developerName":{"type":["string","null"]},"category":{"type":"string"},"pricing":{"type":"object","properties":{"kind":{"type":"string"},"purchase":{"type":"string"},"startingPrice":{"type":["number","null"]},"lifetimePrice":{"type":["number","null"]},"currency":{"type":["string","null"]},"sourceUrl":{"type":["string","null"]}},"required":["kind","purchase","startingPrice","lifetimePrice","currency","sourceUrl"],"additionalProperties":false},"compatibility":{"type":"object","properties":{"minimumMacos":{"type":["string","null"]},"appleSilicon":{"type":["boolean","null"]},"intel":{"type":["boolean","null"]},"technology":{"type":["string","null"]},"sourceUrl":{"type":["string","null"]}},"required":["minimumMacos","appleSilicon","intel","technology","sourceUrl"],"additionalProperties":false},"openSource":{"type":"boolean"},"menuBar":{"type":"boolean"},"latestVersion":{"type":["string","null"]},"publishedAt":{"type":["string","null"]},"screenshots":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"altText":{"type":"string"}},"required":["url","altText"],"additionalProperties":false}},"updatedAt":{"type":["string","null"]},"searchReview":{"anyOf":[{"type":"object","properties":{"author":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"reviewer":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"method":{"type":"string","enum":["source_verified","hands_on"]},"sources":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"string","format":"uri"}},"reviewedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["author","reviewer","method","sources","reviewedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","name","tagline","description","url","markdownUrl","websiteUrl","downloadUrl","iconUrl","developerName","category","pricing","compatibility","openSource","menuBar","latestVersion","publishedAt","screenshots","updatedAt","searchReview"],"additionalProperties":false},"Article":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"kind":{"type":"string","enum":["launch_article","dedicated_article"]},"body":{"type":"string"},"publishedAt":{"type":"string"},"updatedAt":{"type":"string"},"sponsored":{"type":"boolean","const":true},"url":{"type":"string"},"markdownUrl":{"type":"string"}},"required":["slug","title","summary","kind","body","publishedAt","updatedAt","sponsored","url","markdownUrl"],"additionalProperties":false},"GuideSummary":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"url":{"type":"string"},"markdownUrl":{"type":"string"},"publishedAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]},"searchReview":{"anyOf":[{"type":"object","properties":{"author":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"reviewer":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"method":{"type":"string","enum":["source_verified","hands_on"]},"sources":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"string","format":"uri"}},"reviewedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["author","reviewer","method","sources","reviewedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","title","summary","url","markdownUrl","publishedAt","updatedAt","searchReview"],"additionalProperties":false},"Guide":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"url":{"type":"string"},"markdownUrl":{"type":"string"},"publishedAt":{"type":["string","null"]},"updatedAt":{"type":["string","null"]},"searchReview":{"anyOf":[{"type":"object","properties":{"author":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"reviewer":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"method":{"type":"string","enum":["source_verified","hands_on"]},"sources":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"string","format":"uri"}},"reviewedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["author","reviewer","method","sources","reviewedAt"],"additionalProperties":false},{"type":"null"}]},"body":{"type":"string"},"appSlugs":{"type":"array","items":{"type":"string"}}},"required":["slug","title","summary","url","markdownUrl","publishedAt","updatedAt","searchReview","body","appSlugs"],"additionalProperties":false},"Category":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"url":{"type":"string"}},"required":["slug","name","count","url"],"additionalProperties":false},"Pagination":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"page":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"limit":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"pages":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["page","limit","total","pages"],"additionalProperties":false},"Launch":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"rank":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"votes":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"final":{"type":"boolean"},"app":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"tagline":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"markdownUrl":{"type":"string"},"websiteUrl":{"type":"string"},"downloadUrl":{"type":"string"},"iconUrl":{"type":["string","null"]},"developerName":{"type":["string","null"]},"category":{"type":"string"},"pricing":{"type":"object","properties":{"kind":{"type":"string"},"purchase":{"type":"string"},"startingPrice":{"type":["number","null"]},"lifetimePrice":{"type":["number","null"]},"currency":{"type":["string","null"]},"sourceUrl":{"type":["string","null"]}},"required":["kind","purchase","startingPrice","lifetimePrice","currency","sourceUrl"],"additionalProperties":false},"compatibility":{"type":"object","properties":{"minimumMacos":{"type":["string","null"]},"appleSilicon":{"type":["boolean","null"]},"intel":{"type":["boolean","null"]},"technology":{"type":["string","null"]},"sourceUrl":{"type":["string","null"]}},"required":["minimumMacos","appleSilicon","intel","technology","sourceUrl"],"additionalProperties":false},"openSource":{"type":"boolean"},"menuBar":{"type":"boolean"},"latestVersion":{"type":["string","null"]},"publishedAt":{"type":["string","null"]},"screenshots":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"altText":{"type":"string"}},"required":["url","altText"],"additionalProperties":false}},"updatedAt":{"type":["string","null"]},"searchReview":{"anyOf":[{"type":"object","properties":{"author":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"reviewer":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"url":{"default":null,"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]}},"required":["name","url"],"additionalProperties":false},"method":{"type":"string","enum":["source_verified","hands_on"]},"sources":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"string","format":"uri"}},"reviewedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["author","reviewer","method","sources","reviewedAt"],"additionalProperties":false},{"type":"null"}]}},"required":["slug","name","tagline","description","url","markdownUrl","websiteUrl","downloadUrl","iconUrl","developerName","category","pricing","compatibility","openSource","menuBar","latestVersion","publishedAt","screenshots","updatedAt","searchReview"],"additionalProperties":false}},"required":["rank","votes","final","app"],"additionalProperties":false},"Problem":{"type":"object","required":["type","title","status","code","detail"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"detail":{"type":"string"}}}}}}