---
title: "Conversion Score"
method: GET
path: "/conversion"
---

# Conversion Score

`GET /conversion`

## Request

- Base URL: `https://seoscoreapi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://seoscoreapi.com/conversion`
- Auth: none declared. Required headers: `X-API-Key`

Score how well a page turns a visitor into a lead or a sale.

Reads the page's HTML (the same fetch `/audit` uses: plain HTTP, then a real browser
when the page is built by JavaScript) and scores five areas from 0 to 100:

- `headline`: one H1 that says what the page offers, with a sentence under it
- `cta`: a call to action near the top, worded as an action, repeated down the page.
  A phone link and "Add to cart" both count
- `trust`: testimonials, ratings, guarantees, contact details, credentials
- `forms`: how many fields the form asks for, and whether they are labeled
- `objections`: price or a path to it, FAQ, what happens next, shipping and returns

Returns `score`, `grade`, `page_type`, `categories` (per-area score, weight and
checks), `signals` (what we found: the H1, the button labels, the trust evidence)
and `priorities`, the fix list. Every priority has `severity`, `category`, `issue`,
`fix`, `plain_english` and `who_fixes_it` (`developer` | `content` | `marketing`),
plus `evidence` where there is some.

**What it does not do.** It does not measure your conversion rate; only your
analytics can. "Near the top" is source order, not pixels: we do not lay the page
out. A form embedded from another service (HubSpot, Calendly, Typeform) is reported
but not scored, and a page with no form is not marked down for it: `forms.score`
is `null` and its weight goes to the other areas. A page over 3 MB is scored on what
we read, and nothing is reported as missing.

Counts as one audit against your plan. A page we can't load or can't read returns
**422** with `reason` and is not counted. Free keys get the scores and the first
two priorities; paid plans get the full list. `?include=conversion` on `/audit`
(paid plans) adds the same block to an audit at no extra charge.

## Query parameters

- `url` string, required: The page to score (e.g., https://example.com/services)
- `page_type` string, nullable: `local_service`, `ecommerce`, `saas` or `general`. Detected from the page when omitted.

## Headers

- `X-API-Key` string, required: Your API key from /signup

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/seoscoreapi/apis/seo-score-api.md) · [All operations](https://skmtc.dev/seoscoreapi/apis/seo-score-api/llms.txt) · [OpenAPI document](https://skmtc.dev/seoscoreapi/apis/seo-score-api/revisions/877a3044b5be?raw)
