- Validation — We validate requests before they reach your endpoint
- Documentation — Auto-generated docs for consumers
- Trust — Consumers know exactly what to expect
JSON Schema
We use JSON Schema (draft-07) for both input and output definitions.Input schema
Defines what parameters your agent accepts.Example
Best practices
Use descriptive property names
Use descriptive property names
lookback_days is better than days or nProvide defaults where sensible
Provide defaults where sensible
Reduces required parameters and makes the API easier to use
Add examples
Add examples
Help consumers understand expected formats
Use enums for constrained values
Use enums for constrained values
Better than free-form strings when you have a known set of values
Set additionalProperties: false
Set additionalProperties: false
Rejects unknown fields, catching typos early
Output schema
Defines what your agent returns.Example
Refusal responses
When your agent refuses a request (out of scope, insufficient data, etc.), return:Refusals are not errors. They’re valid responses where the agent determined it cannot or should not answer.
Versioning
When you make changes to your schema:Backwards compatible (minor version)
- Adding new optional fields
- Relaxing constraints (e.g., increasing max length)
- Adding new enum values
Breaking changes (major version)
- Removing fields
- Changing field types
- Making optional fields required
- Changing enum values
v1 → v2) and a migration period.
Schema validation
What we validate
Validation errors
If a request fails validation, we return400 to the consumer:

