API für API für On-Page-SEO-Audits
Titel, Meta-Tags, Überschriften, Links, Bilder und strukturierte Daten mit einem SEO-Score prüfen. Nutzen Sie diese Referenz, um eine Operation auszuwählen und den dokumentierten Response-Vertrag zu integrieren.
Operationen
GET /v1/onpage
GET
/v1/onpage
Credits: 2-6
Abfrageparameter
| Parameter | Typ | erforderlich |
|---|---|---|
| url | string | erforderlich |
| render | boolean | optional |
Antwortfelder
| Feld | Typ |
|---|---|
url |
string |
final_url |
string |
status |
string |
reason |
string | null |
checked_at |
string |
fetch |
object |
fetch.http_status |
integer | null |
fetch.final_url |
string |
fetch.content_type |
string | null |
fetch.bytes |
integer |
fetch.truncated |
boolean |
fetch.redirect_count |
integer |
fetch.duration_ms |
integer |
fetch.rendered |
boolean |
score |
integer | null |
meta |
object |
meta.title |
string | null |
meta.title_length |
integer |
meta.description |
string | null |
meta.description_length |
integer |
meta.canonical |
string | null |
meta.canonical_self_referencing |
boolean | null |
meta.canonical_header |
string | null |
meta.robots |
string | null |
meta.googlebot |
string | null |
meta.x_robots_tag |
string | null |
meta.indexable |
boolean |
meta.googlebot_noindex |
boolean |
meta.nofollow |
boolean |
meta.meta_refresh |
string | null |
meta.duplicate_meta_tags[] |
string[] |
meta.lang |
string | null |
meta.viewport |
string | null |
meta.favicon |
string | null |
meta.open_graph |
object |
meta.open_graph.title |
string | null |
meta.open_graph.description |
string | null |
meta.open_graph.image |
string | null |
meta.open_graph.url |
string | null |
meta.open_graph.type |
string | null |
meta.twitter |
object |
meta.twitter.card |
string | null |
meta.twitter.title |
string | null |
meta.twitter.description |
string | null |
meta.twitter.image |
string | null |
headings |
object |
headings.h1[] |
string[] |
headings.counts |
object |
headings.counts.h1 |
integer |
headings.counts.h2 |
integer |
headings.counts.h3 |
integer |
headings.counts.h4 |
integer |
headings.counts.h5 |
integer |
headings.counts.h6 |
integer |
headings.outline[] |
object[] |
headings.outline[] |
object |
headings.outline[].level |
integer |
headings.outline[].text |
string |
content |
object |
content.word_count |
integer |
content.text_bytes |
integer |
content.html_bytes |
integer |
content.text_to_html_ratio |
number |
links |
object |
links.total |
integer |
links.internal |
integer |
links.external |
integer |
links.nofollow |
integer |
links.empty_anchor |
integer |
links.unresolvable |
integer |
images |
object |
images.total |
integer |
images.missing_alt |
integer |
images.empty_alt |
integer |
images.missing_dimensions |
integer |
images.lazy_loaded |
integer |
resources |
object |
resources.scripts |
integer |
resources.inline_scripts |
integer |
resources.stylesheets |
integer |
resources.iframes |
integer |
resources.mixed_content |
integer |
resources.render_blocking_scripts |
integer | null |
resources.render_blocking_stylesheets |
integer | null |
structured_data |
object |
structured_data.json_ld |
integer |
structured_data.microdata |
integer |
structured_data.rdfa |
integer |
structured_data.types[] |
string[] |
hreflang |
object |
hreflang.count |
integer |
checks[] |
object[] |
checks[] |
object |
checks[].id |
string |
checks[].status |
string |
checks[].severity |
string |
checks[].value |
unknown |
issues[] |
string[] |
caveats[] |
string[] |
Beispielanfrage
curl -H "X-API-Key: $DOMSCAN_API_KEY" "https://domscan.net/v1/onpage?url=https%3A%2F%2Fexample.com&render=false"const response = await fetch("https://domscan.net/v1/onpage?url=https%3A%2F%2Fexample.com&render=false", {
headers: { "X-API-Key": process.env.DOMSCAN_API_KEY },
});
const data = await response.json();
console.log(data);import os
import requests
response = requests.get(
"https://domscan.net/v1/onpage?url=https%3A%2F%2Fexample.com&render=false",
headers={"X-API-Key": os.environ["DOMSCAN_API_KEY"]},
)
print(response.json())package main
import (
"fmt"
"io"
"net/http"
"os"
)
func main() {
req, err := http.NewRequest(http.MethodGet, "https://domscan.net/v1/onpage?url=https%3A%2F%2Fexample.com&render=false", nil)
if err != nil {
panic(err)
}
req.Header.Set("X-API-Key", os.Getenv("DOMSCAN_API_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
data, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(resp.Status, string(data))
}require "json"
require "net/http"
uri = URI("https://domscan.net/v1/onpage?url=https%3A%2F%2Fexample.com&render=false")
request = Net::HTTP::Get.new(uri)
request["X-API-Key"] = ENV.fetch("DOMSCAN_API_KEY")
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts JSON.pretty_generate(JSON.parse(response.body))Beispielantwort
{
"url": "https://example.com/shoes/trail-runner",
"final_url": "https://example.com/shoes/trail-runner",
"status": "ok",
"reason": null,
"checked_at": "2026-10-13T12:00:00.000Z",
"fetch": {
"http_status": 200,
"final_url": "https://example.com/shoes/trail-runner",
"content_type": "text/html",
"bytes": 3535,
"truncated": false,
"redirect_count": 0,
"duration_ms": 412,
"rendered": false
},
"score": 87,
"meta": {
"title": "Trail Running Shoes for Rocky Terrain | Example Outdoor",
"title_length": 55,
"description": "Lightweight trail running shoes with a grippy outsole, rock plate and breathable mesh. Free returns within 30 days on every pair.",
"description_length": 129,
"canonical": "https://example.com/shoes/trail-runner",
"canonical_self_referencing": true,
"canonical_header": null,
"robots": "index, follow",
"googlebot": null,
"x_robots_tag": null,
"indexable": true,
"googlebot_noindex": false,
"nofollow": false,
"meta_refresh": null,
"duplicate_meta_tags": [],
"lang": "en",
"viewport": "width=device-width, initial-scale=1",
"favicon": "/favicon.ico",
"open_graph": {
"title": "Trail Running Shoes for Rocky Terrain",
"description": null,
"image": "https://example.com/images/trail-runner.jpg",
"url": null,
"type": null
},
"twitter": {
"card": "summary_large_image",
"title": null,
"description": null,
"image": null
}
},
"headings": {
"h1": [
"Trail Running Shoes for Rocky Terrain"
],
"counts": {
"h1": 1,
"h2": 1,
"h3": 0,
"h4": 1,
"h5": 0,
"h6": 0
},
"outline": [
{
"level": 1,
"text": "Trail Running Shoes for Rocky Terrain"
},
{
"level": 2,
"text": "Why runners choose these trail running shoes"
},
{
"level": 4,
"text": "Sizing"
}
]
},
"content": {
"word_count": 122,
"text_bytes": 780,
"html_bytes": 3535,
"text_to_html_ratio": 0.221
},
"links": {
"total": 7,
"internal": 5,
"external": 2,
"nofollow": 1,
"empty_anchor": 1,
"unresolvable": 0
},
"images": {
"total": 3,
"missing_alt": 1,
"empty_alt": 0,
"missing_dimensions": 2,
"lazy_loaded": 0
},
"resources": {
"scripts": 1,
"inline_scripts": 0,
"stylesheets": 1,
"iframes": 0,
"mixed_content": 1,
"render_blocking_scripts": 0,
"render_blocking_stylesheets": 1
},
"structured_data": {
"json_ld": 2,
"microdata": 1,
"rdfa": 0,
"types": [
"AggregateRating",
"Brand",
"BreadcrumbList",
"ListItem",
"Offer",
"Product",
"Rating",
"Review"
]
},
"hreflang": {
"count": 3
},
"checks": [
{
"id": "mixed_content",
"status": "fail",
"severity": "high",
"value": 1
},
{
"id": "heading_hierarchy",
"status": "warn",
"severity": "low",
"value": 1
},
{
"id": "word_count",
"status": "warn",
"severity": "medium",
"value": 122
},
{
"id": "images_alt",
"status": "warn",
"severity": "medium",
"value": 1
},
{
"id": "title_present",
"status": "pass",
"severity": "high"
},
{
"id": "h1_present",
"status": "pass",
"severity": "high",
"value": 1
},
{
"id": "render_blocking_resources",
"status": "warn",
"severity": "low",
"value": 1
}
],
"issues": [
"mixed_content",
"heading_hierarchy",
"word_count",
"images_alt",
"images_dimensions",
"empty_anchor_text",
"render_blocking_resources"
],
"caveats": []
}
HTTP-Statuscodes
200OK400Ungültige Anfrage401Nicht autorisiert402Zahlung erforderlich429Zu viele Anfragen