{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://www.monocrawl.com/schemas/search/forums.json","title":"search/forums data fields","description":"Optional data supplied by this operation. Null means unknown.","type":"object","properties":{"_warnings":{"description":"Optional  warnings supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}},"count":{"description":"Number of records in this response, not lifetime or total matches.","type":["number","null"]},"items":{"description":"Returned records. Source coverage and completeness vary.","type":["array"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":"object","properties":{"author":{"description":"Public author information supplied with this record.","type":["string","null"]},"comments_count":{"description":"Optional comments count supplied by this operation. Null means unknown.","type":["number","null"]},"created_at":{"description":"Source creation time, not the API retrieval time.","type":["string","null"]},"hn_url":{"description":"Optional hn url supplied by this operation. Null means unknown.","type":["string","null"]},"id":{"description":"Source identifier. Preserve the supplied type and exact value.","type":["string","null"]},"points":{"description":"Optional points supplied by this operation. Null means unknown.","type":["number","null"]},"source":{"description":"Optional source supplied by this operation. Null means unknown.","type":["string","null"]},"story_id":{"description":"Optional story id supplied by this operation. Null means unknown.","type":["string","null"]},"text":{"description":"Source text when supplied.","type":["string","null"]},"title":{"description":"Source title when supplied.","type":["string","null"]},"type":{"description":"Optional type supplied by this operation. Null means unknown.","type":["string","null"]},"url":{"description":"Original source URL when supplied.","type":["string","null"]}},"additionalProperties":true,"allOf":[{"anyOf":[{"required":["author"],"properties":{"author":{"description":"Public author information supplied with this record.","type":["string"],"minLength":1}}},{"required":["comments_count"],"properties":{"comments_count":{"description":"Optional comments count supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["created_at"],"properties":{"created_at":{"description":"Source creation time, not the API retrieval time.","type":["string"],"minLength":1}}},{"required":["hn_url"],"properties":{"hn_url":{"description":"Optional hn url supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["id"],"properties":{"id":{"description":"Source identifier. Preserve the supplied type and exact value.","type":["string"],"minLength":1}}},{"required":["points"],"properties":{"points":{"description":"Optional points supplied by this operation. Null means unknown.","type":["number"]}}},{"required":["source"],"properties":{"source":{"description":"Optional source supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["story_id"],"properties":{"story_id":{"description":"Optional story id supplied by this operation. Null means unknown.","type":["string"],"minLength":1}}},{"required":["text"],"properties":{"text":{"description":"Source text when supplied.","type":["string"],"minLength":1}}},{"required":["title"],"properties":{"title":{"description":"Source title when supplied.","type":["string"],"minLength":1}}},{"required":["url"],"properties":{"url":{"description":"Original source URL when supplied.","type":["string"],"minLength":1}}}]}]}},"query":{"description":"Optional query supplied by this operation. Null means unknown.","type":["string","null"]},"sources":{"description":"Optional sources supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["object","null"],"properties":{"count":{"description":"Number of records in this response, not lifetime or total matches.","type":["number","null"]},"error":{"description":"Optional error supplied by this operation. Null means unknown.","type":["string","null"]},"ok":{"description":"Optional ok supplied by this operation. Null means unknown.","type":["boolean","null"]},"served_by":{"description":"Optional served by supplied by this operation. Null means unknown.","type":["string","null"]},"source":{"description":"Optional source supplied by this operation. Null means unknown.","type":["string","null"]}},"additionalProperties":true}},"sources_unavailable":{"description":"Optional sources unavailable supplied by this operation. Null means unknown.","type":["array","null"],"items":{"description":"Optional record supplied by this operation. Null means unknown.","type":["string","null"]}}},"additionalProperties":true,"required":["items"],"x-contract-version":"2026-09-22","x-validation-scope":"Required success payload structure; optional fields and source completeness remain separate.","examples":[{"_warnings":["example"],"count":0,"items":[{"author":"example","comments_count":0,"created_at":"2026-09-01T12:00:00Z","hn_url":"https://example.com/example","id":"example","points":0,"source":"example","story_id":"example","text":"example","title":"example","type":"example","url":"https://example.com/example"}],"query":"example","sources":[{"count":0,"error":"example","ok":false,"served_by":"example","source":"example"}],"sources_unavailable":["example"]}]}