Agent View
The site as an AI agent gets it, beside the site as a person sees it. What it can read, what it has to cut away, and what it never sees.
AskYourDatabaseDocumentation DocumentationDiscord (opens in a new tab)
- Tutorial
- Getting Started
- Get better answer
- Train to get better answer
- Prepare Database Connection String
- Sample Databases
- Webhook
- Privacy, Data Protection, and Security
The rest of the page is in full screen.
Documentation
Webhook
# Webhook Documentation
Webhooks allow you to receive real-time HTTP notifications when certain events occur in your chatbot system. This can be useful for integrating with other systems, tracking usage, or implementing custom business logic.
## Use Cases
- Track chat usage per user
- Implement usage limits (e.g., 50 chats per month for free users)
- Log chat history in your own system
- Trigger custom workflows based on user interactions
## Events
Currently, we support the following event:
- `chat` - Triggered when a user sends a message to the chatbot
## Webhook Payload Format
When an event occurs, we'll send a POST request to your configured webhook URL with a JSON payload.
### Request Format
```
{
"event": "chat",
"payload": {
"email": "[email protected]",
"chatbotId": "bot_123456",
"question": "What is the weather today?",
"name": "John Doe"
}
}
```
### Headers
```
Content-Type: application/json
User-Agent: AskYourDatabase-Webhook
```
### Field Descriptions
| Field | Type | Description |
| --- | --- | --- |
| event | string | The type of event that occurred (currently only "chat") |
| payload.email | string | The email address of the user who initiated the chat |
| payload.chatbotId | string | The unique identifier of the chatbot |
| payload.question | string | The message sent by the user |
| payload.name | string | The name of the user (if provided) |
## Best Practices
1. Your webhook endpoint should respond with a 2xx status code to acknowledge receipt
2. Implement retry logic in case your endpoint is temporarily unavailable
3. Process webhooks asynchronously to ensure quick response times
4. Verify the webhook source using request headers
5. Handle duplicate events gracefully (implement idempotency)
## Example Implementation
Here's a simple example of how to handle the webhook in Node.js:
```
app.post('/webhook', async (req, res) => {
const { event, payload } = req.body;
if (event === 'chat') {
const { email, chatbotId, question, name } = payload;
// Process the chat event
await updateUserChatCount(email);
// Acknowledge receipt
res.status(200).json({ received: true });
}
});
```
## Rate Limits and Retry Policy
- We will attempt to deliver webhooks for up to 24 hours
- Failed deliveries will be retried with exponential backoff
- Maximum of 5 retry attempts per event
[Sample Databases](https://www.askyourdatabase.com/docs/sample-db)[Security Portal](https://www.askyourdatabase.com/docs/security)An agent gets this page whole: its own text is in the HTML the server sends.
The figures
90 pages, set against the 168,377 sites with figures.
- Readablehigher is better
- 100%90 of 90 pages
- All 168,377 sitesBetter than 47%
Pages whose own text is in the HTML the server sends, enough of it for their kind.
- Cleanhigher is better
- 93%middle page
- All 168,377 sitesBetter than 91%
Of the words before script, the share that are the page and not menus, footer and forms. 11 pages are not measured, with no <main> or no words.
- Costshown, never scored
- 244,794tokens
- About 2,720 a page
To read every page once. A long page that answers well is not worse for it. Tokens are estimated at about 4 characters each.
How its pages spread on Clean
70 pages measured. Not measured: 11 with no <main> or no words.
Against its rivals
The sites nearest it by what they do, with figures. Close means similar work, not better.
| Readinghigher is better | Costnot scored | ||
|---|---|---|---|
| Site | Readable | Clean | Tokens a page |
| askyourdatabase.comThis site, 90 pages | 100% | 93% | 2,720 |
| forem.com100 pages | 98% | 75% | 1,966 |
| dqc.ai100 pages | 96% | 44% | 876 |
| itpathsolutions.com100 pages | 98% | 96% | 6,200 |
First of 4 on Readable, second on Clean.
AI crawler access
What robots.txt says to each, as read on October 24, 2026. 8 of 8 may read the site.
| Crawler | robots.txt says | Used for | The line that decides |
|---|---|---|---|
| GPTBotOpenAI | Not named | Training models | Falls to User-agent: * |
| OAI-SearchBotOpenAI | Not named | ChatGPT search | Falls to User-agent: * |
| ChatGPT-UserOpenAI | Not named | A page a person asks about | Falls to User-agent: * |
| ClaudeBotAnthropic | Not named | Training models | Falls to User-agent: * |
| Claude-SearchBotAnthropic | Not named | Claude’s search | Falls to User-agent: * |
| PerplexityBotPerplexity | Not named | Perplexity search | Falls to User-agent: * |
| Google-ExtendedGoogle | Not named | Training Gemini | Falls to User-agent: * |
| bingbotMicrosoft | Not named | Bing and Copilot | Falls to User-agent: * |
Every AI crawler mttr checks may read it. Not named means the rules for every crawler apply.
Every page
Worst first. Each opens in Agent View at the top.
19 pages of 81 lose something. Pick a loss to see what to do about it.Open the action plan
| What an agent getshigher is better | Signals | Costnot scored | ||||
|---|---|---|---|---|---|---|
| Page | Words | Clean | Readable | Main heading | Tokens | What it loses |
| /resources/sql-server-latest-status-example.sql | 142 | No <main> | Yes | None | 291 | No <main> and 1 more |
| /seo/ai-database-query/reference.sql | 243 | No <main> | Yes | None | 581 | No <main> and 1 more |
| /seo/crm-pipeline/reference.sql | 189 | No <main> | Yes | None | 349 | No <main> and 1 more |
| /seo/mysql-gui/session-timezone.sql | 115 | No <main> | Yes | None | 214 | No <main> and 1 more |
| /seo/natural-language-rollout/reference.sql | 144 | No <main> | Yes | None | 353 | No <main> and 1 more |
| /seo/postgresql-report/reference.sql | 142 | No <main> | Yes | None | 380 | No <main> and 1 more |
| /seo/sql-dashboard/reference.sql | 248 | No <main> | Yes | None | 670 | No <main> and 1 more |
| /seo/sql-query-generator/join-aggregation.sql | 143 | No <main> | Yes | None | 264 | No <main> and 1 more |
| /seo/text-to-sql-evaluation/fixture.sql | 95 | No <main> | Yes | None | 285 | No <main> and 1 more |
| /seo/text-to-sql/reference.sql | 95 | No <main> | Yes | None | 245 | No <main> and 1 more |
| /seo/warehouse-sql-routing/definition-change.sql | 145 | No <main> | Yes | None | 256 | No <main> and 1 more |
| /chatbot-pricing | 141 | 53% | Yes | None | 280 | No h1 |
| /desktop-pricing | 79 | 53% | Yes | None | 127 | No h1 |
| /docs/v1.1.136 | 110 | 63% | Yes | None | 281 | No h1 |
| /docs/v1.1.135 | 107 | 64% | Yes | None | 265 | No h1 |
| /docs/v1.1.121 | 166 | 71% | Yes | None | 304 | No h1 |
| /docs/v1.1.124 | 166 | 72% | Yes | None | 337 | No h1 |
| /docs/v1.1.13 | 204 | 73% | Yes | None | 446 | No h1 |
| /docs/connect | 583 | 89% | Yes | None | 1,370 | No h1 |
| /business-info | 28 | 17% | Yes | Yes | 54 | Nothing |
| /contact | 112 | 51% | Yes | Yes | 203 | Nothing |
| /docs/sample-db | 97 | 61% | Yes | Yes | 270 | Nothing |
| /about-us | 247 | 67% | Yes | Yes | 517 | Nothing |
| /docs/webhook | 310 | 82% | Yes | Yes | 628 | Nothing |
| /docs/chatbot-db-switching | 412 | 84% | Yes | Yes | 982 | Nothing |
Show where it stands
A card, a badge and a line, each with the figures.

A badge for the site
<a href="https://mttr.si/agent-view/askyourdatabase.com"><img src="https://mttr.si/agent-view/askyourdatabase.com/badge.svg" alt="Agent View: 100% readable, 93% clean" height="20"></a>
The figures in one line
askyourdatabase.com in Agent View: 100% of pages readable, better than 47% of sites; 93% clean; 244,794 tokens to read all 90 pages. mttr.si/agent-view/askyourdatabase.com
What to do next
Fix the pages, let an agent do it, and read the site again to see the figures move.
Fix what agents miss
- Give 19 pages a main headingClearer
- Wrap 11 pages in <main>Clean measured
Connect your agent
Claude Code, Codex or Cursor reads the site’s fixes over MCP, fixes a page in your code, has mttr read it again, and checks the fix landed.
https://mttr.si/mcpSet up an agent
Claim the site
Prove it is yours with a DNS record or a file. Your agent can then reach its reads and jobs, and set each change to wait for your approval.
Claim the siteDrawn from the HTML mttr fetched on its read of October 24, 2026, not a screenshot, and only from the 90 pages read. An assistant’s own reader may differ. Tokens are estimated at about 4 characters each. A site an agent reads well is not a site an assistant cites.