{"openapi":"3.1.0","jsonSchemaDialect":"https:\/\/spec.openapis.org\/oas\/3.1\/dialect\/base","info":{"title":"LaraBench Public API","version":"2026-07-28","summary":"Anonymous read APIs for LaraBench releases, Laravel jobs, news, and ecosystem packages.","description":"This public contract excludes desktop authentication, billing, cloud sync, telemetry, support submission, profile, and sharing endpoints.","contact":{"name":"LaraBench support","url":"https:\/\/larabench.com\/contact","email":"info@larabench.com"}},"servers":[{"url":"https:\/\/larabench.com","description":"Production"}],"security":[],"tags":[{"name":"Releases","description":"Current LaraBench desktop release information."},{"name":"Jobs","description":"Search the LaraBench Laravel jobs index."},{"name":"News","description":"Search Laravel and ecosystem news and package releases."},{"name":"Ecosystem","description":"List packages covered by the LaraBench news index."}],"paths":{"\/api\/app-release":{"get":{"operationId":"getAppReleaseStatus","summary":"Get the current desktop release feed","tags":["Releases"],"responses":{"200":{"description":"Current release information by supported platform.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/AppReleaseResponse"}}}}}}},"\/api\/v1\/jobs":{"get":{"operationId":"searchJobs","summary":"Search LaraBench jobs for Laravel","description":"Search and filter the public LaraBench Laravel jobs index.","tags":["Jobs"],"parameters":[{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"technologies[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":40}}},{"name":"sources[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":40}}},{"name":"workArrangement","in":"query","schema":{"type":"string","enum":["remote","hybrid","onsite","any"]}},{"name":"locations[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":80}}},{"name":"countries[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":80}}},{"name":"salaryMinimum","in":"query","schema":{"type":"number","minimum":0}},{"name":"salaryCurrency","in":"query","schema":{"type":"string","minLength":3,"maxLength":3}},{"name":"salaryPeriod","in":"query","schema":{"type":"string","enum":["hour","month","year"]}},{"name":"salaryDisclosed","in":"query","schema":{"type":"boolean"}},{"name":"seniority[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":40}}},{"name":"employmentTypes[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":40}}},{"name":"postedWithinDays","in":"query","schema":{"type":"integer","minimum":1,"maximum":365}},{"name":"sort","in":"query","schema":{"type":"string","enum":["relevance","newest","oldest","salary","salary_high","salary_low"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":500}},{"name":"perPage","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"Jobs search results.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/JobsSearchResponse"}}}},"422":{"$ref":"#\/components\/responses\/ValidationError"}}}},"\/api\/v1\/news":{"get":{"operationId":"searchNews","summary":"Search Laravel and ecosystem news","description":"Search articles and stable or preview package releases indexed by LaraBench.","tags":["News"],"parameters":[{"name":"query","in":"query","schema":{"type":"string","maxLength":200}},{"name":"types[]","in":"query","schema":{"type":"array","items":{"type":"string","enum":["article","release"]}}},{"name":"topics[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":80}}},{"name":"projects[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":80}}},{"name":"packages[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":150}}},{"name":"sources[]","in":"query","schema":{"type":"array","items":{"type":"string","maxLength":80}}},{"name":"channel","in":"query","schema":{"type":"string","enum":["stable","preview","all"]}},{"name":"publishedWithinDays","in":"query","schema":{"type":"integer","minimum":1,"maximum":365}},{"name":"sort","in":"query","schema":{"type":"string","enum":["newest","relevance"]}},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"perPage","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"News and package release search results.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/NewsSearchResponse"}}}},"422":{"$ref":"#\/components\/responses\/ValidationError"}}}},"\/api\/v1\/ecosystem-packages":{"get":{"operationId":"listEcosystemPackages","summary":"List indexed ecosystem packages","description":"List the enabled Composer and npm packages covered by LaraBench news.","tags":["Ecosystem"],"responses":{"200":{"description":"Enabled ecosystem package catalog.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/EcosystemPackageCatalogResponse"}}}}}}}},"components":{"schemas":{"AppReleaseResponse":{"type":"object","description":"Release feed payload keyed by supported platform.","additionalProperties":true},"JobsSearchResponse":{"type":"object","properties":{"asOf":{"type":"string","format":"date-time"},"jobs":{"type":"array","items":{"type":"object","additionalProperties":true}},"total":{"type":"integer","minimum":0},"pagination":{"type":"object","additionalProperties":true},"filters":{"type":"object","additionalProperties":true},"filtersApplied":{"type":"object","additionalProperties":true},"searchAccess":{"type":"object","additionalProperties":true}},"required":["asOf","jobs","total","pagination"]},"NewsSearchResponse":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","additionalProperties":true}},"total":{"type":"integer","minimum":0},"pagination":{"type":"object","additionalProperties":true},"filters":{"type":"object","additionalProperties":true},"filtersApplied":{"type":"object","additionalProperties":true},"generatedAt":{"type":"string","format":"date-time"}},"required":["items","total","pagination","generatedAt"]},"EcosystemPackageCatalogResponse":{"type":"object","properties":{"packages":{"type":"array","items":{"type":"object","properties":{"ecosystem":{"type":"string"},"name":{"type":"string"},"bucket":{"type":"string"},"projectSlug":{"type":"string"},"projectName":{"type":"string"}},"required":["ecosystem","name","bucket","projectSlug","projectName"]}},"generatedAt":{"type":"string","format":"date-time"}},"required":["packages","generatedAt"]},"ValidationErrorResponse":{"type":"object","properties":{"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["message","errors"]}},"responses":{"ValidationError":{"description":"Validation failed.","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/ValidationErrorResponse"}}}}}}}