- Basis-URL
- oakmonttechnologies.com/api/v1
- Auth
- Bearer
- Format
- REST · JSON
- Kontingent
- Je nach Tarif
Bauen Sie auf OAKMONT auf,in Ihrem eigenen Stack.
Rufen Sie unsere Plattform programmatisch auf - Barrierefreiheits-Scans, Preisangebote und mehr - in CI, in Ihrem CMS oder in Ihrem eigenen Produkt. REST, JSON, authentifiziert mit einem API-Schlüssel und pro Aufruf abgerechnet.
Anfrage
curl -X POST https://oakmonttechnologies.com/api/v1/scan \
-H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.gov/about"}'Antwort
{
"id": "9f3c…",
"url": "https://example.gov/about",
"score": 82,
"grade": "B",
"totals": { "critical": 1, "serious": 2, "moderate": 1 },
"issues": [
{ "impact": "critical", "wcag": "1.1.1",
"title": "Images missing alt text (3)",
"help": "Every <img> needs an alt attribute…", "count": 3 }
]
}Authentifizierung
Erstellen Sie einen Schlüssel unter Portal → Entwickler-API. Senden Sie ihn bei jeder Anfrage mit:
Authorization: Bearer oak_live_xxxBasis-URL: https://oakmonttechnologies.com/api/v1
POST /scan - Barrierefreiheits-Scan
Scannen Sie jede öffentliche URL auf häufige Verstöße gegen WCAG 2.1 AA / Section 508.
curl -X POST https://oakmonttechnologies.com/api/v1/scan \
-H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.gov/about"}'{
"id": "9f3c…",
"url": "https://example.gov/about",
"score": 82,
"grade": "B",
"totals": { "critical": 1, "serious": 2, "moderate": 1 },
"issues": [
{ "impact": "critical", "wcag": "1.1.1",
"title": "Images missing alt text (3)",
"help": "Every <img> needs an alt attribute…", "count": 3 }
]
}POST /quote - einen Auftrag kalkulieren
Erhalten Sie ein detailliertes Angebot für einen Behebungsauftrag auf Basis der aktuellen Preisliste.
curl -X POST https://oakmonttechnologies.com/api/v1/quote \
-H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" \
-d '{"plan_key": "page_508", "chars": 12000}'Die Scanner-Familie
Dieselben Engines wie hinter den kostenlosen Tools, angerechnet auf Ihr Monatskontingent: AI-Act-Transparenz, Tracker und Einwilligungen, E-Mail-Zustellbarkeit und die Strukturprüfung polnischer FA-Rechnungen. Vollständige Anfrage- und Antwortformate stehen im maschinenlesbaren Index unter GET /api/v1.
# AI Act transparency (Article 50)
curl -X POST https://oakmonttechnologies.com/api/v1/ai-scan -H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" -d '{"url": "https://example.com"}'
# Trackers and consent platform
curl -X POST https://oakmonttechnologies.com/api/v1/privacy-scan -H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" -d '{"url": "https://example.com"}'
# Deliverability: MX, SPF, DMARC, DKIM
curl -X POST https://oakmonttechnologies.com/api/v1/email-check -H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" -d '{"domain": "example.com"}'
# Polish FA invoice structure (KSeF)
curl -X POST https://oakmonttechnologies.com/api/v1/ksef-check -H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" -d '{"xml": "<Faktura>...</Faktura>"}'
# LLM regression grading (deterministic, no model runs)
curl -X POST https://oakmonttechnologies.com/api/v1/eval -H "Authorization: Bearer oak_live_xxx" \
-H "Content-Type: application/json" \
-d '{"cases": [{"key": "refund", "assertions": [{"kind": "contains", "value": "30 days"}]}], "answers": {"refund": "You have 30 days to return it."}}'POST /gate - Das Build-Gate
Ihre Pipeline führt die Prüfungen aus, auf Branches und Hosts, die von außen niemand erreicht, und meldet die Befunde. Hier fällt die Entscheidung über den Build, mit Begründung - auch dafür, warum eine Regel nicht ausgelöst hat.
# The ruleset your build is held to, worst first by what we actually see
curl https://oakmonttechnologies.com/api/v1/rules/ci?level=AA -H "Authorization: Bearer oak_live_xxx"
# Your pipeline ran the checks; this decides the build and can sign the verdict
curl -X POST https://oakmonttechnologies.com/api/v1/gate -H "Authorization: Bearer oak_live_xxx" -H "Content-Type: application/json" -d '{"url": "https://staging.internal/checkout", "level": "AA", "fail_on": "serious",
"prove": true, "findings": [{"code": "input-no-label", "selector": "#cvc"}]}'{
"passed": false,
"level": "AA", "fail_on": "serious",
"failures": [
{ "code": "input-no-label", "criterion": "1.3.1", "impact": "critical",
"count": 1, "selectors": ["#cvc"] }
],
"advisories": [
{ "code": "heading-skip", "criterion": "1.3.1",
"advisory_because": "No criterion says heading levels may not skip." }
],
"digest": "3f9a…",
"proof": { "id": "…", "verify_url": "https://oakmonttechnologies.com/verify/…" }
}Zwei Fehlalarme, und jemand setzt continue-on-error - danach ist ein Gate nur noch Dekoration. Ein Kriterium oberhalb der angefragten Stufe, ein in WCAG 2.2 gestrichenes Kriterium und alles, was eine Maschine nicht redlich entscheiden kann, werden gemeldet und blockieren nie. Mit prove kommt zum Urteil ein signierter Beleg mit genau diesem Regelsatz, sodass sich ein grüner Build später nicht an einem inzwischen verschärften Regelsatz neu bewerten lässt.
Der Notar
Eine datierte, öffentlich prüfbare Quittung über einen Hash, den Sie selbst berechnen - die Datei bleibt bei Ihnen. Abgerechnet pro Quittung statt pro Aufruf, denn die Quittung ist das, was Ihr Kunde behält.
Fehler
Fehlgeschlagene Aufrufe verwenden Standard-HTTP-Statuscodes und geben einen JSON-Body mit einer detail-Nachricht zurück.
| Status | Bedeutung |
|---|---|
| 400 | Ungültiger Anfrage-Body, zum Beispiel eine fehlerhafte URL oder ein fehlendes Feld. |
| 401 | Fehlender, fehlerhafter oder widerrufener API-Schlüssel. |
| 404 | Referenzierte Ressource nicht gefunden, zum Beispiel ein unbekannter plan_key bei /quote. |
| 429 | Monatliches API-Kontingent erreicht. Siehe die Header Retry-After und X-RateLimit. |
{ "detail": "Invalid or revoked API key." }Limits
Aufrufe werden monatlich je nach Tarif gezählt (Free 100 · Basic 5.000 · Pro 50.000). Bei Überschreitung Ihres Kontingents wird 429 zurückgegeben. Sie können jederzeit im Bereich Abrechnung upgraden.
Jede Antwort enthält X-RateLimit-Limit, X-RateLimit-Remaining und X-RateLimit-Reset (ein Unix-Zeitstempel für den Beginn des nächsten Monats). Ein 429 gibt zusätzlich Retry-After in Sekunden zurück.
HTTP/1.1 200 OK
X-RateLimit-Limit: 5000
X-RateLimit-Remaining: 4987
X-RateLimit-Reset: 1751328000
# When the monthly quota is exhausted:
HTTP/1.1 429 Too Many Requests
Retry-After: 1209600
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0Aus JavaScript
Dieselben zwei Aufrufe, ohne curl.
const res = await fetch("https://oakmonttechnologies.com/api/v1/scan", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OAKMONT_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({url: "https://example.gov/about"}),
});
if (!res.ok) throw new Error(`OAKMONT ${res.status}: ${await res.text()}`);
const {score, grade, issues} = await res.json();Maschinenlesbare Spezifikation
Die API beschreibt sich selbst. Richten Sie Ihren Generator auf das OpenAPI-Dokument und erhalten Sie einen typisierten Client statt handgeschriebener fetch-Aufrufe.
https://oakmonttechnologies.com/api/openapi.jsonDas Dokument wird aus dem laufenden Dienst erzeugt und kann den beschriebenen Endpoints daher nie hinterherhinken.
Preisliste einbetten
Eine Zeile, kein Schlüssel, kein Build-Schritt. Die Preisliste liest denselben Katalog wie /pricing, daher kann eine Seite, die sie einbindet, nicht veralten. data-ref trägt Ihren Partnercode in jeden Link; data-group grenzt auf eine Planfamilie ein.
<script src="https://oakmonttechnologies.com/embed/rate-card.js"
data-ref="your-partner-code"
data-group="managed_sub"></script>Oder als JSON lesen: https://oakmonttechnologies.com/api/public/rate-card
Vollständige Referenz
Durchsuchen Sie den vollständigen, maschinenlesbaren Endpoint-Index unter /api/v1.
Bereit loszulegen?
Erstellen Sie Ihren ersten Schlüssel und senden Sie in unter einer Minute den ersten Aufruf.
