---
title: "Crawl Page"
method: POST
path: "/crawl"
tags: ["crawl"]
---

# Crawl Page

`POST /crawl`

## Request

- Base URL: `https://api.xeorank.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.xeorank.com/crawl`
- Auth: API key in header `X-Agent-Key`

## Query parameters

- `email` string, nullable

## Headers

- `X-Org-Id` string, nullable
- `x-xyle-source` string, nullable

## Request body

- CrawlRequest
  - `url` string, required
  - `site_domain` string, nullable

## Response `200`

Successful Response

- CrawlResponse
  - `url` string, required
  - `title` string, nullable
  - `meta_desc` string, nullable
  - `headings` string[]
  - `word_count` integer
  - `aeo_signals` AeoSignals
    - `has_faq_schema` boolean
    - `has_howto_schema` boolean
    - `has_article_schema` boolean
    - `has_speakable_schema` boolean
    - `has_faq_content` boolean
    - `heading_hierarchy_valid` boolean
    - `list_count` integer
    - `table_count` integer
    - `concise_answer_count` integer
    - `definition_count` integer
    - `avg_sentence_length` number
    - `has_date_modified` boolean
    - `citation_count` integer
    - `has_breadcrumb_schema` boolean
    - `has_org_schema` boolean
    - `has_video_schema` boolean
    - `has_video_content` boolean
    - `question_count` integer
    - `direct_answer_ratio` number
    - `direct_answer_count` integer
    - `unanswered_questions` string[]
  - `geo_signals` GeoSignals
    - `quotable_statement_count` integer
    - `statistic_count` integer
    - `unique_insight_density` number
    - `source_attribution_count` integer
    - `named_entity_count` integer
    - `topical_coverage_score` number
    - `definition_clarity_count` integer
    - `has_summary_section` boolean
    - `comparison_structure_count` integer
    - `step_by_step_count` integer
    - `content_segmentation_score` number
    - `has_last_reviewed_date` boolean
    - `author_expertise_signals` integer
    - `has_methodology_section` boolean
    - `is_research_content` boolean
    - `outbound_authority_ratio` number
  - `technical_seo` TechnicalSeoSignals
    - `has_canonical` boolean
    - `canonical_self_referencing` boolean
    - `canonical_variant_of_self` boolean
    - `canonical_url` string, nullable
    - `page_url` string, nullable
    - `has_robots_meta` boolean
    - `robots_directives` string, nullable
    - `robots_sources` object[], nullable
    - `has_viewport` boolean
    - `has_charset` boolean
    - `has_lang` boolean
    - `lang_value` string, nullable
    - `is_https` boolean
    - `has_og_title` boolean
    - `has_og_desc` boolean
    - `has_og_image` boolean
    - `has_twitter_card` boolean
    - `title_length` integer
    - `meta_desc_length` integer
    - `h1_count` integer
    - `image_count` integer
    - `images_without_alt` integer
    - `has_favicon` boolean
  - `rendering` RenderingInfo
    - `detected_framework` string, nullable
    - `site_builder` string, nullable
    - `site_builder_label` string, nullable
    - `builder_fixes` string[]
    - `rendering_type` string
    - `has_noscript_content` boolean
    - `js_bundle_count` integer
    - `initial_dom_has_content` boolean
    - `uses_client_router` boolean
    - `seo_impact` string
    - `rendering_notes` string
    - `raw_html_word_count` integer, nullable
    - `content_measurement` 'raw_html' | 'browser_rendered'
  - `content_quality` ContentQualitySignals
    - `word_count` integer
    - `sentence_count` integer
    - `paragraph_count` integer
    - `avg_words_per_sentence` number
    - `flesch_reading_ease` number
    - `flesch_kincaid_grade` number
    - `reading_time_minutes` integer
    - `vocabulary_richness` number
    - `content_depth_score` number
    - `humanness_score` number
    - `eeat_score` number
    - `has_author` boolean
    - `has_publish_date` boolean
    - `has_updated_date` boolean
    - `has_sources_section` boolean
  - `link_analysis` LinkAnalysis
    - `internal_link_count` integer
    - `external_link_count` integer
    - `nofollow_link_count` integer
    - `broken_link_sample` string[]
    - `anchor_quality` string
    - `generic_anchor_count` integer
    - `links_in_content` integer
    - `external_link_ratio` number
  - `blog_signals` BlogSignals
    - `is_blog_post` boolean
    - `has_author_name` string, nullable
    - `has_publish_date` string, nullable
    - `content_freshness` string
    - `has_social_sharing` boolean
    - `estimated_reading_time` integer

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/xeorank/apis/seo-intelligence-engine.md) · [All operations](https://skmtc.dev/xeorank/apis/seo-intelligence-engine/llms.txt) · [OpenAPI document](https://skmtc.dev/xeorank/apis/seo-intelligence-engine/revisions/449a3fd73454?raw)
