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.