Learn / Free SEO audit API

Free SEO audit API: what you can ask for

For a free SEO audit API, decide whether you need a web page performance result, a report for a script or an audit an AI assistant can read. Google's PageSpeed Insights API and a local site auditor answer different parts of that request.

Google's docs allow trial calls without a key. Below is what happened when we tried, followed by the command-line, local API and assistant options in Check Engine.

What Google's API promises

The PageSpeed Insights documentation describes web page performance checks and improvement suggestions using Lighthouse. It says the response includes performance scores, user experience metrics and Lighthouse audit results in JSON. That is a useful performance input when you are writing a script to review pages.

On keys, the documentation we read says: To use it, an API key is optional for trial runs, but needed for automated multiple queries.

Use a key if your script will keep asking for results. Keyless capacity can run out, as our request below shows.

Read the PageSpeed Insights getting-started guide and the request reference for Google's instructions.

Our keyless request returned a quota error

We made a keyless mobile request for checkengineseo.com. It returned HTTP status: 429. The response says Quota exceeded for quota metric 'Queries' and limit 'Queries per day'.

The shared keyless daily quota was exhausted, so this call returned no Lighthouse score. We did not test a request with a key.

Keep an error response separate from the audit result your script expects. If you turn a failed request into an empty list of problems, the next person may read that as a clean result. For this request the honest output is that the service could not supply the measurement.

A report for a script: the audit command

If you want a site audit on your own computer, the local command-line help lists JSON, CSV, SARIF and JUnit among its output choices. You do not have to run a web service just to ask the command for a result. An example command using the JSON choice is:

checkengine audit https://example.com -f json

This example shows the command shape. We ran the help commands for this article; we did not run this example audit. Use the URL you intend to inspect, and decide how much of the site your review needs to cover before relying on its result.

Use -f csv if your next step works with CSV. The help describes -f sarif for systems that list findings as alerts, and -f junit for a test-report panel. Pick the format your next tool can read. The licence limits are below.

A local API: keep it on this machine

checkengine serve runs the local API used by the desktop app. The help lists default 127.0.0.1. This is the loopback address, for access from the same computer.

checkengine serve

The help says the API has no authentication because it is only meant to be reachable from this machine. Its warning about changing the host is explicit:

Binding it anywhere else exposes audit control and results to whoever can reach that address.

Keep your script and the API on the same computer. Use the loopback address when setting up the connection. We read the help without starting an API server.

For an AI assistant: use MCP

checkengine mcp is the assistant route. The top-level command description says it serves the engine to an AI assistant over MCP using stdio. That means the assistant starts a local process and talks through that process's input and output.

checkengine mcp

Choose this when your next step is a conversation about the audit rather than a script making web requests. The existing developer guide says an unactivated copy returns the free result, while a licensed copy returns every finding and the ranked plan. See the local MCP setup guide for the configuration.

Which results are free?

The site's free-result description gives you the score, problem counts by category and the top problem in full with its fix. The paid version adds the rest of the problems, the ranked fix plan and markup to paste.

The developer guide says full findings and SARIF and JUnit files need a licence key. Choosing JSON leaves those licence limits in place. The help gives no full list of free CSV or local API results, so check access before building a workflow around them.

That leaves a practical choice. Try Google's service for the performance result its docs describe. Use the local audit command when you want script output from the installed app. Use the local API when your code needs to talk to that running app, or MCP when an assistant is doing the reading. In each case, decide what result you need before treating free as a description of the whole workflow.

Source note

We read Google's PageSpeed Insights documentation on 11 November 2026 at 13:34 UTC.

Our keyless mobile request to checkengineseo.com returned a quota error on 11 November 2026 at 13:34 UTC.

Common questions

What should an automated audit do when no result comes back?

Record that the measurement is unavailable and keep the error for review. Let the person using the report decide whether to retry or continue without that check.

Do I need to start the local API to request JSON?

The audit command accepts a format choice on its own. Use the running API when your application needs a connection to the local app.

Can a hosted assistant reach my computer's loopback API?

Loopback refers to the computer where the request runs. Use a supported local assistant connection rather than assuming a remote service can reach your installed app.

Does an API quota error describe my site's SEO health?

It describes a failure to obtain that service's measurement. Keep it out of the site's pass and fail totals until there is an actual result to assess.