ForHosting KIT · SEO

Audit alt text

An image with no alt text is invisible to a screen reader and invisible to an image search index, which makes it a two-front problem hiding in plain sight on most sites. This endpoint scans a set of URLs, finds every image with missing, empty or placeholder alt text, and writes a specific, accurate replacement for each one.

● BetaPer request + per URL$0.066
Use it from WebAPIEmailApp soonTelegram soon

Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.

Who runs into this and why

Alt text gets skipped constantly: a developer drops in an image component without a prop for it, a CMS field is left blank because nobody enforced it, or a bulk product import brings in a thousand images with the filename as their only description. It rarely gets caught in a normal editorial review because the text is invisible on the rendered page — the person checking the page has no reason to notice it is missing unless they turn on a screen reader or open the HTML source.

How the audit and rewrite works

For each URL submitted, the task loads the page, identifies every image element, and classifies its current alt attribute as missing, empty, decorative, or already adequate. For images that need one, it looks at the image itself along with its surrounding context — the caption, the nearby heading, the product name if it is an e-commerce listing — and writes alt text that describes what is actually in the image rather than a generic label, so the result is usable by assistive technology and relevant for image search.

A short note on why this matters beyond compliance

Alt text was part of the HTML specification from its earliest versions, originally meant simply to describe an image when it could not load on a slow connection. Its role expanded as screen readers became the primary way many people navigate the web and as image search grew into its own discovery channel, so what started as a fallback for broken images is now core infrastructure for both accessibility and visibility.

Working across many pages

Because pricing is per URL on top of the base request fee, the audit scales from a single landing page check to a full site sweep — submit the list of URLs once, and each one is scanned and rewritten independently, with results grouped so you can see exactly which pages and which images changed.

How results arrive

The task is asynchronous: submit the URL list and get a task_id immediately, then receive the full audit and the suggested alt text through your webhook or a signed link valid for 24 hours once the scan finishes. A URL that cannot be loaded after three attempts fails with a specific error, and that URL is not billed.

Accessibility remediation projects

Scan an entire site to find every image missing alt text as the first concrete step in an accessibility compliance effort.

E-commerce catalog cleanup

Rewrite generic filename-based alt text across thousands of product images with descriptions that actually reflect each product.

Pre-launch content QA

Audit a new site or redesigned template before launch to catch images that shipped without alt text during development.

Image SEO improvement

Identify pages where missing or vague alt text is likely limiting visibility in image search results, and replace it with accurate descriptions.

What exactly does this alt text checker api find?

It identifies every image on a page with missing, empty, or placeholder alt text, and distinguishes those from images correctly marked as decorative.

Does it just flag problems, or does it write the replacement text too?

Both: it audits the current state of every image and generates specific, contextual alt text for each one that needs it, ready to use directly.

How does it decide what to write for the alt text?

It looks at the image content together with its surrounding context, such as captions, nearby headings or product names, so the description is specific rather than generic.

Does it know which images should have empty alt text on purpose?

Yes, purely decorative images that correctly use empty alt text are recognized and left alone rather than flagged as errors.

Is there a free tier for smaller checks?

There's no free tier — free tiers get abused and slow everyone down. Access runs on a prepaid ForHosting KIT balance: top up from $10.00 (it never expires) and each request is charged at its published price, so a call with no balance returns HTTP 402. No subscription, no tokens, no invented credits, and a failed task is never charged.

How is pricing calculated for a full site audit?

A base $0.066 per request plus $0.0585 per URL scanned, so auditing 20 pages costs $0.066 plus $1.18.

How do I get the audit results?

Through a signed webhook when the scan completes, or a signed link valid for 24 hours.

What happens if a URL in the batch fails to load?

It retries automatically up to three times; if it still fails, that specific URL returns a clear error and is not charged, while the rest of the batch completes normally.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/seo/alt-text-audit

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, and soon from our app, email and Telegram.

curl -X POST https://api.kit.forhosting.com/seo/alt-text-audit \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://ejemplo.com"}'
{
  "url": "https://ejemplo.com"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "seo.alt_text_audit",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.066
Per URL$0.0585

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.
422task_failedThe task failed after 3 retries. You are never charged for it.

Read the full KIT documentation →