Schemas
Define the structure of the data you want to extract
A schema tells the agent what shape the extracted data should have. Ev3ry uses JSON Schema — the same standard used by REST APIs and OpenAPI specs.
Creating a schema
Open Schemas in the sidebar and click New Schema. Write or paste a valid JSON Schema object. Schemas are saved globally and can be attached to any website.
Data Schemas
Manage data schemas across all your websites
Match Odds
5 fields
Global
Player Stats
8 fields
Global
Event Listings
6 fields
Premier League
Schema structure
Extraction results are almost always a list of objects. The typical shape is:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"field_name": { "type": "string", "description": "hint for the agent" },
"price": { "type": "number" },
"url": { "type": "string", "format": "uri" },
"available": { "type": "boolean" },
"date": { "type": "string", "format": "date" }
},
"required": ["field_name", "price"]
}
}
Supported types
| JSON Schema type | Description |
|---|---|
string | Any text value |
number | Integer or float |
boolean | true / false |
string with "format": "date" | ISO date: 2026-03-08 |
string with "format": "date-time" | ISO datetime: 2026-03-08T19:30:00Z |
string with "format": "uri" | Full URL |
Using description for accuracy
Add a "description" to any property. The agent reads these as hints when deciding how to map page content to your schema:
"home_team": {
"type": "string",
"description": "the name of the home team, not the city"
}
More specific descriptions produce more accurate extraction.
Example schemas
Sports fixtures
{
"type": "array",
"items": {
"type": "object",
"properties": {
"home_team": { "type": "string" },
"away_team": { "type": "string" },
"kickoff": { "type": "string", "format": "date-time" },
"venue": { "type": "string" },
"competition":{ "type": "string" }
},
"required": ["home_team", "away_team", "kickoff"]
}
}
Product listings
{
"type": "array",
"items": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number", "description": "current sale price in USD" },
"rating": { "type": "number" },
"review_count": { "type": "number" },
"in_stock": { "type": "boolean" },
"product_url": { "type": "string", "format": "uri" }
}
}
}
Reusing schemas
Schemas are defined at the workspace level. The same schema can be attached to multiple websites — useful when you extract the same data structure from different sources (e.g., the same "Match Odds" schema across five different betting sites).
Validation
The agent validates its extraction output against your schema before finalizing the run. If the output doesn't match, it retries with refined logic (up to a limit). This is what makes extractions reliable — the schema acts as a contract the agent must satisfy.