{"id":"json-schema-additional-find","version":"1.0.0","description":"Find every member a JSON Schema 2020-12 \"additionalProperties\": false forbids, with the member's JSON Pointer.","supported_operations":["find extra keys the schema does not allow","which properties are disallowed by additionalproperties false","list unexpected fields in llm structured output","json pointer of every extra property in strict mode output","detect hallucinated keys not declared in the schema","report additional property violations at every nesting level"],"unsupported_operations":["deleting the extra members (this tool only reports them)","validating members against a schema-valued additionalProperties (use json-schema-type-mismatches for their type)","schemas using patternProperties, unevaluatedProperties, allOf/anyOf/oneOf, remote or anchor $ref (unsupported_input)"],"semantics":["Core 10.3.2.3: at each object instance location, a member is additional for a schema object when its name is not an own key of that same schema object's \"properties\"; it is reported when that schema's additionalProperties is the boolean false. Names declared only in a $ref target or sibling schema do not count (keywords see only their own schema object).","A schema-valued additionalProperties is applied to the additional members (they are traversed for nested findings) but is not itself reported, because whether such a member fails depends on assertions outside this tool. additionalProperties true or absent allows everything.","Applicability follows Core 2020-12: properties, additionalProperties, items as a single subschema, same-document fragment $ref with sibling keywords, $defs and boolean subschemas. Other keywords are ignored (Core 6.5) except the unsupported applicators, which throw unsupported_input.","instance_pointer is the forbidden member's location, object_pointer its parent object, both RFC 6901 JSON string representations; keyword_location is the evaluation path to the additionalProperties keyword including \"$ref\" steps (Core 12.3.1); schema_pointer is that keyword's location in the schema document.","Order: pre-order over instance locations with object members by ascending UTF-16 code units of their names and array elements by index; for one member, applicable parent schemas in application order. count is the total; at most max_results are listed and truncated is true when count exceeds it; valid is true exactly when count is 0.","Input must be JSON only: non-finite numbers, holes, non-plain objects, and lone surrogates in any string or any property name (schema or instance) throw invalid_input. A $ref cycle with no instance progress throws not_computable (Core 9.4.1)."],"limits":{"max_input_bytes":262144,"max_depth":64,"max_nodes":20000,"max_schema_evaluations":100000,"max_results":256,"max_output_bytes":1048576},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["schema","instance"],"properties":{"schema":{"type":["object","boolean"],"additionalProperties":{"description":"Any JSON value (keyword value)."},"description":"A JSON Schema 2020-12 schema (object or boolean)."},"instance":{"description":"The JSON value to diagnose (any JSON value)."}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","count","truncated","additional"],"properties":{"valid":{"type":"boolean"},"count":{"type":"integer","minimum":0},"truncated":{"type":"boolean"},"additional":{"type":"array","maxItems":256,"items":{"type":"object","additionalProperties":false,"required":["instance_pointer","object_pointer","property","keyword_location","schema_pointer"],"properties":{"instance_pointer":{"type":"string","pattern":"^(?:/[\\s\\S]*)?$"},"object_pointer":{"type":"string","pattern":"^(?:/[\\s\\S]*)?$"},"property":{"type":"string"},"keyword_location":{"type":"string","pattern":"^(?:/[\\s\\S]*)?$"},"schema_pointer":{"type":"string","pattern":"^(?:/[\\s\\S]*)?$"}}}}}},"examples":[{"input":{"schema":{"type":"object","properties":{"name":{"type":"string"},"tags":{"type":"array","items":{"type":"object","properties":{"k":{}},"additionalProperties":false}}},"additionalProperties":false},"instance":{"name":"x","note":"extra","tags":[{"k":1,"v":2}]}},"output":{"valid":false,"count":2,"truncated":false,"additional":[{"instance_pointer":"/note","object_pointer":"","property":"note","keyword_location":"/additionalProperties","schema_pointer":"/additionalProperties"},{"instance_pointer":"/tags/0/v","object_pointer":"/tags/0","property":"v","keyword_location":"/properties/tags/items/additionalProperties","schema_pointer":"/properties/tags/items/additionalProperties"}]}},{"input":{"schema":{"properties":{"a":{}},"additionalProperties":false},"instance":{"a":1,"m~n":2}},"output":{"valid":false,"count":1,"truncated":false,"additional":[{"instance_pointer":"/m~0n","object_pointer":"","property":"m~n","keyword_location":"/additionalProperties","schema_pointer":"/additionalProperties"}]}}],"execute_url":"/v1/tools/json-schema-additional-find/versions/1.0.0/execute"}