katsau Docs
GET/v1/validate

Validate Open Graph tags and get a quality score with recommendations.

Query Parameters

NameTypeRequiredDefaultDescription
urlstring-The URL to validate
Try it out
GET /v1/validate

Validate 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.

ScoreGradeDescription
90-100AExcellent - All important tags present and valid
80-89BGood - Minor improvements needed
70-79CFair - Some important tags missing
60-69DPoor - Many tags missing
0-59FFail - 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:

TagWeight
og:image25%
og:title20%
twitter:card15%
og:description15%
og:url10%
canonical10%
favicon5%