Data Format Tools

9 endpoints for validating and inspecting structured data formats. Check syntax, diff JSON objects, run JSONPath queries, generate JSON Schemas, and lint CSV.

Endpoint Purpose
POST /v1/json-validate Validate JSON syntax
POST /v1/json-diff Diff two JSON objects
POST /v1/yaml-validate Validate YAML syntax
POST /v1/xml-validate Validate XML, optionally against XSD
POST /v1/toml-validate Validate TOML syntax
POST /v1/json-schema-validate Validate JSON against a JSON Schema
POST /v1/jsonpath Query JSON with a JSONPath expression
POST /v1/json-to-schema Generate a JSON Schema from sample data
POST /v1/csv-lint Lint and validate CSV data

Python SDK Examples

Validate JSON syntax

from toolkitapi import DevTools

with DevTools(api_key="tk_...") as dt:
    result = dt.json_validate('{"name": "test", "value": 42}')
    print(result["valid"])   # True or False
    print(result["error"])   # None or error description

Diff two JSON objects

from toolkitapi import DevTools

with DevTools(api_key="tk_...") as dt:
    result = dt.json_diff(
        {"name": "Alice", "age": 30},
        {"name": "Alice", "age": 31, "city": "London"},
    )
    # result contains added, removed, changed keys

Validate XML against an XSD schema

from toolkitapi import DevTools

xsd = """
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="note" type="xs:string"/>
</xs:schema>
"""
xml = "<note>Hello</note>"

with DevTools(api_key="tk_...") as dt:
    result = dt.xml_validate(xml, xsd=xsd)
    print(result["valid"])

Query JSON with JSONPath

from toolkitapi import DevTools

data = {
    "store": {
        "books": [
            {"title": "Python Cookbook", "price": 29.99},
            {"title": "Clean Code", "price": 34.99},
        ]
    }
}

with DevTools(api_key="tk_...") as dt:
    result = dt.jsonpath(data, "$.store.books[*].title")
    print(result["matches"])  # ["Python Cookbook", "Clean Code"]

Validate JSON against a JSON Schema

from toolkitapi import DevTools

schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string"},
        "age": {"type": "integer", "minimum": 0},
    },
    "required": ["name"],
}

with DevTools(api_key="tk_...") as dt:
    result = dt.json_schema_validate({"name": "Alice", "age": 30}, schema)
    print(result["valid"])
    print(result["errors"])   # List of validation error messages

Generate a JSON Schema from sample data

from toolkitapi import DevTools

sample = [
    {"id": 1, "name": "Widget A", "active": True, "price": 9.99},
    {"id": 2, "name": "Widget B", "active": False, "price": 14.99},
]

with DevTools(api_key="tk_...") as dt:
    result = dt.json_to_schema(sample)
    print(result["schema"])

Lint CSV

from toolkitapi import DevTools

csv_data = """id,name,email
1,Alice,[email protected]
2,Bob
3,Charlie,[email protected]"""

with DevTools(api_key="tk_...") as dt:
    result = dt.csv_lint(csv_data, has_header=True)
    print(result["valid"])
    print(result["issues"])   # e.g. "row 2 has 2 columns, expected 3"

Tip

Use json-to-schema to auto-generate schemas from real API responses, then feed those schemas into json-schema-validate to enforce contract compliance in CI pipelines.