API 레퍼런스

온페이지 SEO 감사 API API 레퍼런스

제목, 메타 태그, 제목 구조, 링크, 이미지, 구조화 데이터를 SEO 점수로 감사합니다. 이 레퍼런스를 사용해 작업을 선택하고 문서화된 응답 계약을 통합하세요.

작업

GET /v1/onpage API 레퍼런스 보기

GET /v1/onpage

작업: getOnPageAudit 크레딧 및 인증: 2-6 인증 필요
GET /v1/onpage 크레딧: 2-6

쿼리 매개변수

매개변수 유형 필수
url string 필수
render boolean 선택 사항

응답 필드

필드 유형
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[]

예제 요청

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))

예제 응답

{
  "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 상태 코드

  • 200 성공
  • 400 잘못된 요청
  • 401 인증되지 않음
  • 402 결제 필요
  • 429 요청 과다

레퍼런스 리소스