API
Public JSON endpoints, no API key required. All responses are CORS-enabled and return application/json.
Connection status
Live checks against every public endpoint.
/api/public/healthChecking…
/api/public/domainChecking…
/api/public/seo-auditChecking…
GET
/api/public/healthService heartbeat. Returns status, service name and server time.
curl -s "https://flowdiction.com/api/public/health"GET
/api/public/domainLinguistic + SEO scoring and valuation estimate for a single domain.
Format: bare domain, e.g. flowdiction.com — no https://, no path.
curl -s "https://flowdiction.com/api/public/domain?domain=flowdiction.com"GET
/api/public/seo-auditLive 14-point on-page SEO audit of any public URL.
Format: full page URL, e.g. https://example.com/pricing (https is added if omitted).
curl -s "https://flowdiction.com/api/public/seo-audit?url=https%3A%2F%2Fexample.com"How to use it
Every endpoint is a plain GET request that returns JSON. Send the domain (or URL) as a query parameter and read the data object from the response.
cURL
curl -s "https://flowdiction.com/api/public/domain?domain=flowdiction.com" \
-H "Accept: application/json"JavaScript (fetch)
const res = await fetch(
"https://flowdiction.com/api/public/seo-audit?url=https://example.com"
);
const { status, data } = await res.json();
if (status !== "ok") throw new Error("Audit failed");
console.log(data.score, data.checks);Access keys
The public endpoints above need no API key — just call them. A key is only required to read your own saved reports and usage: sign in, then use your session access token as a bearer token together with the project publishable key.
// in the browser, while signed in
const { data } = await supabase.auth.getSession();
const token = data.session.access_token; // use as: Authorization: Bearer <token>Full walkthrough on the Developers page.
Conventions
- Base URL:
https://flowdiction.com - Success:
{ "status": "ok", "data": …, "time": … } - Errors return
400for bad input and502when a target URL cannot be fetched. - Responses are cached at the edge for up to 5 minutes; health is never cached.
- Fair use: keep bursts under ~60 requests per minute.