Alpha Tools for utviklere og AI-agenter
Oppdatert 22. august 2026
Alpha Tools (alpha-tools.no) er en gratis samling av tre netthandelsverktøy fra Alpha Solutions Norge: GEO/AEO Tracker (nevnes og siteres merkevaren av ChatGPT, Claude, Gemini, Perplexity, Mistral og Grok?), Health Check (AI-/bot-tilgang, Core Web Vitals, schema, robots, sikkerhetsheadere, brutte lenker, innloggingsmur, foretaksidentitet (Brreg) — og EHF/Peppol-mottak når du krysser av for B2B) og Schema Emitter (verifisert Product/Offer/FAQ-JSON-LD fra en produktside). Ingen konto, ingen API-nøkkel, 0 kr. Denne siden er for mennesker og agenter som vil bruke nettstedet programmatisk.
Slik bør en agent bruke nettstedet
- Markdown i stedet for HTML. Alle offentlige sider svarer på
Accept: text/markdownmedtext/markdown; charset=utf-8ogVary: Accept(acceptmarkdown.com). q-verdier respekteres; en klient som bare aksepterertext/plainfår markdown-utgaven somtext/plain; en Accept-header som verken tillatertext/html,text/markdownellertext/plainfår406. Velg språk med?lang=enellerAccept-Language(standard er norsk).curl -s -H "Accept: text/markdown" https://www.alpha-tools.no/health - /llms.txt — llmstxt.org-indeks med «når passer det»-notat og kuraterte lenker.
- /openapi.json — OpenAPI 3.1-beskrivelse av de tre offentlige endepunktene under.
- /api — en liten JSON-indeks over API-flaten, som peker tilbake på OpenAPI-dokumentet.
- /sitemap.xml og /robots.txt — AI-crawlere (GPTBot, PerplexityBot, ClaudeBot, Google-Extended) er tillatt;
/api/og lagrede rapporter/geo/r/er unntatt. - Ukjente stier gir ekte
404; medAccept: text/markdowner svaret en kort markdown-side med lenkene over.
Når passer Alpha Tools
Bruk Alpha Tools når jobben er en av disse:
- Sjekke om en nordisk netthandels- eller B2B-merkevare (grossist, proffhandel, IT til bedrift) nevnes eller siteres av AI-svarmotorer, med dokumentasjon per motor (GEO/AEO Tracker).
- Revidere en nettbutikks AI-/bot-tilgang, Core Web Vitals, strukturerte data, robots, sikkerhetsheadere, brutte lenker, innloggingsmur og foretaksidentitet (Brreg) som fire pilarkarakterer — pluss EHF/Peppol-mottak når B2B-valget er krysset av (Health Check).
- Generere verifisert Product-, Offer- og FAQ-JSON-LD fra én produktside-URL — uverifiserte felt står tomme, de finnes aldri på (Schema Emitter).
Passer ikke: generell SEO-søkeordsanalyse, nettsteder som ikke er nettbutikker eller netthandelsmerkevarer, eller noe som krever konto eller masseskanning av mange domener. Verktøyene er med vilje én-om-gangen og ratebegrenset.
Offentlige endepunkter
Dette er endepunktene verktøysidene selv bruker. De er tilgjengelige uten autentisering, ratebegrenset per IP og datoversjonert (X-API-Version: 2026-08-21); de følger fortsatt brukergrensesnittet, men en bruddendring får en ny dato i stedet for å komme uanmeldt. Ingen CORS (UI-et er samme opphav), ingen API-nøkkel, ingen SLA. Vær skånsom — hver GEO-skanning bruker ekte LLM-tokens på seks motorer.
POST /api/health/scan
Body {"url": string, "b2b"?: boolean} — b2b: true (strengt JSON-boolsk; alt annet leses som false) sier at butikken selger til bedrifter og legger til EHF/Peppol-funnet ehf-capability; utelatt gjøres ingen Peppol-oppslag. Svar: en application/x-ndjson-strøm av hendelser — phase, finding, pillar-complete, complete, error. Grenser: 30 forespørsler/min i frontporten, deretter 5 skanninger/min per IP og 4 samtidige skanninger per serverinstans (429 med retry-after); 400 for ugyldige eller private mål.
curl -N -X POST https://www.alpha-tools.no/api/health/scan \
-H "content-type: application/json" \
-d '{"url":"https://www.example.no"}'POST /api/geo/scan
Body {"brand": string, "domain": string, "vertical": id, "competitors": string[] (0–3), "lang": "no" | "en"}. Svar: application/x-ndjson-strøm — phase, audit, provider-result, prompt-complete, metrics, complete, error. En gjentakelse av samme (domene, vertikal, språk) innen 72 timer serveres fra mellomlageret med result.cached = true. Grenser: 10/t i frontporten, 2 ferske skanninger/t per IP og 2 samtidige ferske skanninger per serverinstans, et globalt dagstak (429 daily_cap) og 409 scan_in_progress mens samme domene allerede skannes; alle guard-feil (privat, uoppløst, feil skjema) gir 400.
Vertikal-id-er: elektronikk, mote, hjem, sport, skjonnhet, mat, barn, bygg, dyr, bil, apotek, boker, smykker, blomster, saas, byra, reise, eiendom, finans, helse, utdanning, jus, elgrossist, byggproff, vvsgrossist, industri, itbedrift, arbeidsklar (pluss generisk, den generiske reservepakken).
curl -N -X POST https://www.alpha-tools.no/api/geo/scan \
-H "content-type: application/json" \
-d '{"brand":"Example","domain":"https://www.example.no","vertical":"mote","competitors":[],"lang":"no"}'POST /api/schema/generate
Body {"url": string}. Svar: ett JSON-objekt — { ok: true, result } eller { ok: false, reason } (unreachable, guard-blocked, blocked, not-product-page, invalid-url, guard-failed, rate-limited). Grenser: 30/t i frontporten, deretter 6 genereringer/t per IP og 2 samtidige per serverinstans.
curl -s -X POST https://www.alpha-tools.no/api/schema/generate \
-H "content-type: application/json" \
-d '{"url":"https://www.example.no/produkt/123"}'Feil, grenser og versjonering
- Feil er alltid JSON. Alle feil under
/api/svarer medapplication/jsonog{ "error": string, "message"?: string }. Forgren påerror— det er den stabile maskinlesbare koden;messageer for mennesker og ordlyden kan endres. Schema Emitter beholder sin egen{ ok: false, reason }-form for motorutfall (en blokkert side eller en side som ikke er en produktside), og bruker JSON-feilkroppen for metode-, versjons- og ukjent-sti-avvisningene under. - Feil metode.
POSTer den eneste metoden som gjør noe. Alt annet får405{"error":"method_not_allowed","allow":["POST"]}og enAllow: POST-header — den headeren er fasiten.OPTIONSer unntaket: rammeverket svarer selv med204og enAllowsom lister hver eksporterte handler, altså bredere enn det som faktisk virker. - Ukjent sti. Enhver udokumentert sti under
/api/svarer med en JSON-404—{"error":"not_found","docs":…}, som peker hit — aldri en HTML-feilside. - Ratebegrensnings-headere. Hvert svar bærer
RateLimit-Limit,RateLimit-Remaining,RateLimit-Reset(sekunder til vinduet frigjør en plass) ogRateLimit-Policy(<grense>;w=<vindu-i-sekunder>). De beskriver begrenseren som styrte akkurat det svaret — enten det knappe budsjettet (5;w=60helsesjekk,6;w=3600schema-generering,2;w=3600fersk GEO-skanning) eller den billige forporten som måler hver forespørsel før DNS (30;w=60helsesjekk,30;w=3600schema,10;w=3600GEO, som også er det et GEO-svar fra mellomlageret rapporterer). En429legger tilRetry-After, og det er den autoritative ventetiden: på en429erRateLimit-Remainingalltid0, ogRateLimit-Resetkan være0når det var det globale dagsbudsjettet, og ikke ditt eget vindu, som gikk tomt. Taket på samtidige kall gjelder per serverinstans, og uttrykkes derfor ikke som et budsjett per klient. - Versjonering. Hvert svar bærer
X-API-Version: 2026-08-21. Send samme header i forespørselen for å låse versjonen: uten header — eller med2026-08-21— får du dagens oppførsel, og enhver annen verdi avvises før kroppen leses med400{"error":"unsupported_version","supported":["2026-08-21"]}. En tom header — eller en som bare inneholder mellomrom — teller som fraværende. Den400-en svares før begrenserne, så den bærerX-API-Versionmen ingenRateLimit-*-headere — og på en forespørsel med feil metode vinner405, fordi metodehåndtererne ikke sjekker versjon. En bruddendring får en ny dato; den forrige datoen svarer i minst 30 dager til, og endringen kunngjøres på denne siden. Utgåtte versjoner svarer medDeprecation- ogSunset-headere — ingen er utgått i dag. Nye felt og nye hendelsestyper er ikke bruddendringer og endrer ikke datoen.
Ikke tilgjengelig (ennå)
Ingen MCP-server, ingen webhooks, ingen API-nøkler, ingen masse-endepunkter. Bygger du noe som trenger det, si ifra: kontakt@alpha-tools.no.