{"components":{"schemas":{"Error":{"properties":{"error":{"type":"string"}},"required":["error"],"type":"object"},"ValidationResult":{"properties":{"errors":{"items":{"properties":{"message":{"type":"string"},"path":{"description":"JSON path of the offending value, e.g. `$.jobs[0].url`, or line/column for JSON syntax errors.","type":"string"}},"required":["message","path"],"type":"object"},"type":"array"},"valid":{"type":"boolean"}},"required":["valid","errors"],"type":"object"}}},"info":{"description":"Validate oJobPub documents against the oJobPub JSON Schema.","title":"oJobPub Validator API","version":"1.0.0"},"openapi":"3.1.0","paths":{"/api/v1/validate":{"post":{"description":"Returns 200 whenever validation ran; `valid` holds the verdict and `errors` lists every violation with its JSON path.","requestBody":{"content":{"application/json":{"example":{"employer":{"industry":"Software","location":{"city":"New York","country":"US"},"name":"Acme Corp","url":"https://example.com"},"jobs":[{"applyBefore":"2026-12-31","category":"Engineering","description":"Develop and maintain software applications.","experienceLevel":"mid","jobType":"permanent","language":"en","locations":[{"city":"New York","country":"US"},{"city":"San Francisco","country":"US"}],"publishedAt":"2025-08-30","referenceId":"SE-2023-001","salary":{"currency":"USD","interval":"yearly","max":120000,"min":70000},"tags":["python","flask","backend"],"title":"Software Engineer","url":"https://example.com/job/1","workLoad":{"maxPercentage":100,"minPercentage":80},"workType":"hybrid"}],"lastUpdated":"2025-09-13T12:00:00Z","version":"1.0"},"schema":{"$ref":"https://raw.githubusercontent.com/letsemploy/schema/refs/heads/main/v1/ojobpub.json"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationResult"}}},"description":"Validation ran (document valid or not)."},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationResult"}}},"description":"Request body is not valid JSON."},"413":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Request body is too large."},"415":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Content-Type is not application/json."},"503":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The oJobPub schema is unavailable."}},"summary":"Validate an oJobPub document"}}}}
