Basis-URL
oakmonttechnologies.com/api/v1
Auth
Bearer
Format
REST · JSON
Kontingent
Je nach Tarif
/ Entwickler-API

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.

API-Schlüssel anfordern API-Tarife ansehenNoch kein Konto? Kostenlos anlegen und dann unter Portal → Entwickler-API einen Schlüssel erzeugen. Der Scan-Endpoint funktioniert im kostenlosen Tarif.

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_xxx

Basis-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.

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 }
  ]
}

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.

Anfrage
# 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"}]}'
Antwort
{
  "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.

Wie der Notar arbeitet

Fehler

Fehlgeschlagene Aufrufe verwenden Standard-HTTP-Statuscodes und geben einen JSON-Body mit einer detail-Nachricht zurück.

StatusBedeutung
400Ungültiger Anfrage-Body, zum Beispiel eine fehlerhafte URL oder ein fehlendes Feld.
401Fehlender, fehlerhafter oder widerrufener API-Schlüssel.
404Referenzierte Ressource nicht gefunden, zum Beispiel ein unbekannter plan_key bei /quote.
429Monatliches 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: 0

Aus 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.

OpenAPI-Dokument öffnen https://oakmonttechnologies.com/api/openapi.json

Das 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.