GET
/v1/validateValidate Open Graph tags and get a quality score with recommendations.
Query Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | - | The URL to validate |
Try it out
GET /v1/validateValidate Open Graph tags and get recommendations
curl "https://api.katsau.com/v1/validate?url=https%3A%2F%2Fgithub.com" \
-H "Authorization: Bearer YOUR_API_KEY"Scoring System
The validation endpoint checks all Open Graph and Twitter Card tags and returns a quality score from 0-100.
| Score | Grade | Description |
|---|---|---|
| 90-100 | A | Excellent - All important tags present and valid |
| 80-89 | B | Good - Minor improvements needed |
| 70-79 | C | Fair - Some important tags missing |
| 60-69 | D | Poor - Many tags missing |
| 0-59 | F | Fail - Essential tags not present |
Request Example
curl "https://api.katsau.com/v1/validate?url=https://example.com" \
-H "Authorization: Bearer ks_live_your_api_key"Response
{
"success": true,
"data": {
"url": "https://example.com",
"valid": true,
"score": 85,
"grade": "B",
"checks": {
"og:title": {
"present": true,
"valid": true,
"value": "Example Domain",
"length": 14,
"recommendation": null
},
"og:description": {
"present": true,
"valid": true,
"value": "This domain is for use in illustrative examples...",
"length": 120,
"recommendation": null
},
"og:image": {
"present": true,
"valid": true,
"url": "https://example.com/og.jpg",
"accessible": true,
"dimensions": { "width": 1200, "height": 630 },
"recommendation": null
},
"og:url": {
"present": true,
"valid": true,
"matches_canonical": true,
"recommendation": null
},
"twitter:card": {
"present": false,
"valid": false,
"recommendation": "Add twitter:card meta tag for better Twitter sharing"
},
"favicon": {
"present": true,
"accessible": true,
"recommendation": null
},
"canonical": {
"present": true,
"valid": true,
"recommendation": null
}
},
"warnings": [
"twitter:card meta tag is missing"
],
"recommendations": [
{
"priority": "high",
"tag": "twitter:card",
"message": "Add twitter:card for better Twitter sharing",
"suggested_value": "summary_large_image"
}
],
"preview": {
"facebook": {
"title": "Example Domain",
"description": "This domain is for...",
"image": "https://example.com/og.jpg"
},
"twitter": {
"title": "Example Domain",
"description": "This domain is for...",
"image": "https://example.com/og.jpg"
},
"linkedin": {
"title": "Example Domain",
"description": "This domain is for...",
"image": "https://example.com/og.jpg"
}
}
},
"meta": {
"request_id": "req_abc123xyz",
"response_time_ms": 567
}
}Score Weights
Each check contributes to the overall score based on its importance:
| Tag | Weight |
|---|---|
og:image | 25% |
og:title | 20% |
twitter:card | 15% |
og:description | 15% |
og:url | 10% |
canonical | 10% |
favicon | 5% |