{"openapi":"3.0.3","info":{"title":"LexGO public jobs API","version":"v1","description":"Unauthenticated read API for live Belgian and Luxembourg legal jobs. Additive-only. Send candidates to click_url. Do not apply on their behalf. Errors use RFC 9457 application/problem+json."},"servers":[{"url":"https://www.lexgo.be"},{"url":"https://www.lexgo.lu"}],"externalDocs":{"description":"Versioning and deprecation policy. v1 is additive-only; breaking changes require /api/v2.","url":"https://www.lexgo.lu/developers/versioning"},"paths":{"/api/v1/jobs":{"get":{"operationId":"searchJobs","summary":"Search live vacancies","description":"Returns currently public legal jobs. Paginate with next_cursor. Send candidates to click_url.","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":80,"description":"Literal match on titles, employer name, and practice-area names. LIKE wildcards are treated as characters."}},{"name":"domain","in":"query","required":false,"schema":{"type":"string","enum":["be","lu"]}},{"name":"function_id","in":"query","required":false,"schema":{"type":"integer"}},{"name":"region_id","in":"query","required":false,"schema":{"type":"integer","description":"Address region id (Address::REGIONS). Never jobs.region_id."}},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["nl","fr","en"]}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobList"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/jobs/{id}":{"get":{"operationId":"getJob","summary":"Fetch one live vacancy","description":"id is an integer, id-slug, or an allowlisted lexgo.be/lu job URL (url or click_url).","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","description":"Integer id, id-slug, or an allowlisted lexgo.be/lu job URL (url or click_url)"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Job"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"Gone","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/functions":{"get":{"operationId":"listFunctions","summary":"List function names","description":"Function names for use as function_id filters. Names only; no SEO HTML.","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FunctionList"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/events":{"get":{"operationId":"listEvents","summary":"List upcoming scheduled events","description":"Upcoming legal trainings and events. On-demand webinars are excluded. Paginate with next_cursor.","parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","enum":["be","lu"]}},{"name":"language","in":"query","required":false,"schema":{"type":"string","enum":["nl","fr","en"]}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventList"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/v1/events/{id}":{"get":{"operationId":"getEvent","summary":"Fetch one upcoming event","description":"id is an integer, id-slug, or an allowlisted lexgo.be/lu event URL.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","description":"Integer id, id-slug, or an allowlisted lexgo.be/lu event URL"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"Gone","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"LocalizedStrings":{"type":"object","additionalProperties":false,"properties":{"nl":{"type":"string","nullable":true},"fr":{"type":"string","nullable":true},"en":{"type":"string","nullable":true}}},"CompanyName":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","nullable":true}}},"Function":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"integer"},"nl_name":{"type":"string","nullable":true},"fr_name":{"type":"string","nullable":true},"en_name":{"type":"string","nullable":true}}},"Region":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"integer"},"nl_name":{"type":"string","nullable":true},"fr_name":{"type":"string","nullable":true},"en_name":{"type":"string","nullable":true}}},"Job":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"integer"},"url":{"type":"string","format":"uri"},"click_url":{"type":"string","format":"uri","description":"LexGO page with tracking. Send candidates here."},"domain":{"type":"string","enum":["be","lu"]},"languages":{"type":"array","items":{"type":"string","enum":["nl","fr","en"]}},"published_at":{"type":"string","format":"date-time","nullable":true},"offline_at":{"type":"string","format":"date-time","nullable":true},"titles":{"$ref":"#/components/schemas/LocalizedStrings"},"summaries":{"$ref":"#/components/schemas/LocalizedStrings"},"company":{"$ref":"#/components/schemas/CompanyName"},"functions":{"type":"array","items":{"$ref":"#/components/schemas/Function"}},"regions":{"type":"array","items":{"$ref":"#/components/schemas/Region"}}}},"JobList":{"type":"object","additionalProperties":false,"properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/Job"}},"next_cursor":{"type":"string","nullable":true}}},"FunctionList":{"type":"object","additionalProperties":false,"properties":{"functions":{"type":"array","items":{"$ref":"#/components/schemas/Function"}}}},"Event":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"integer"},"url":{"type":"string","format":"uri"},"click_url":{"type":"string","format":"uri"},"domain":{"type":"string","enum":["be","lu"]},"languages":{"type":"array","items":{"type":"string","enum":["nl","fr","en"]}},"event_starts_at":{"type":"string","format":"date-time","nullable":true},"event_ends_at":{"type":"string","format":"date-time","nullable":true},"titles":{"$ref":"#/components/schemas/LocalizedStrings"},"summaries":{"$ref":"#/components/schemas/LocalizedStrings"},"company":{"$ref":"#/components/schemas/CompanyName"}}},"EventList":{"type":"object","additionalProperties":false,"properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"next_cursor":{"type":"string","nullable":true}}},"Problem":{"type":"object","additionalProperties":true,"required":["type","title","status","detail","code"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"instance":{"type":"string"},"error":{"type":"string","description":"v1 alias of code"},"message":{"type":"string","description":"v1 alias of detail"},"docs":{"type":"string","format":"uri","description":"v1 alias pointing at /developers"}}}}}}