AI DEVELOPMENT WORKSPACE
AI Function / Tool Schema Validator
Check a restricted OpenAI Chat Completions function-tool definition.
Validation profile: openai-chat-text-2026-10-19 · restricted OpenAI Chat Completions subset. Unsupported means outside this checker. Formatting has no provider-validation guarantee.
Input is processed on this site only when you run the tool. The application does not save inputs or results.
input.json
Result result.json
A little clarity goes here.
Run the tool to see your result.
Result preview
UTF-8 text, at most 65536 bytes per input. Tab leaves the editor. Plain text disables syntax colors. Browser textareas may normalize line endings to LF.
{"validate":{"inputMode":"text","options":[],"inputLabels":[]}}{"validate":{"input":"{\"type\":\"function\",\"function\":{\"name\":\"lookup_note\",\"description\":\"Look up a fictional note\",\"parameters\":{\"type\":\"object\",\"properties\":{\"id\":{\"type\":\"string\"}},\"required\":[\"id\"],\"additionalProperties\":false},\"strict\":true}}","options":[]}}A QUICK WALKTHROUGH
A familiar workflow,
with room to focus.
Paste one nested Chat Completions function-tool object.
Validate its definition against the named restricted profile.
Inspect the first structural issue; this does not validate a function invocation.
When to use AI Function / Tool Schema Validator
Review a nested Chat Completions function-tool definition that uses the supported schema subset before integrating it elsewhere.
Read the result
This checks definition structure, not function arguments or execution. Strict objects need all properties required and additionalProperties false; unsupported references and keywords are never fetched or silently accepted.
SEE IT IN PRACTICE
Worked examples
Sample input. A result you can inspect.
Validate example
Input
{"type":"function","function":{"name":"lookup_note","description":"Look up a fictional note","parameters":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"],"additionalProperties":false},"strict":true}}Expected result
{"profile":"openai-chat-text-2026-10-19","status":"valid","diagnostic":null,"scope":"Restricted offline structure check only; not full API, model, instance or conversation-semantic validation."}{"kind":"validation","title":"Structure check passed","tone":"success","note":"Restricted offline structure check only; not full API, model, instance or conversation-semantic validation.","copy":"Structure check passed\nRestricted offline structure check only; not full API, model, instance or conversation-semantic validation.","fields":[{"label":"Profile","value":"openai-chat-text-2026-10-19"}],"schema":1}Formats, limits and common errors
Use the Chat Completions nested function shape. Responses API flat tools and arbitrary JSON Schema dialects are not covered.
- Profile openai-chat-text-2026-10-19: a restricted local OpenAI Chat Completions subset reviewed 19 October 2026. A valid result covers this profile only. Unsupported means outside this checker, not rejected by the provider.
- Only type:function and function{name, description?, parameters, strict?}. Name is 1–64 ASCII letters/digits/underscore/hyphen. Parameters must explicitly describe an object; strict must be boolean when present.
- Schema subset: single type object/array/string/number/integer/boolean/null, description, scalar enum (1–100 unique type-matching values), properties, required, boolean additionalProperties, and items. Objects require explicit properties; arrays require items. Strict true requires every object property required and additionalProperties false recursively.
- At most 16 schema levels and 100 properties total, names at most 128 bytes. References, unions, constraints and unknown keywords are unsupported. No remote lookup, instance validation, model compatibility or complete JSON Schema claim. Input at most 65,536 bytes; standard JSON limits apply.
- Input: 65,536 UTF-8 bytes per text field. Output: at most 524,288 UTF-8 bytes; serialized responses have a separate 1 MiB ceiling. Size/work failures return no partial result.