pruefservice.kunden.liste
Lists all audit customers of the tenant.
Rollen: Betreiber, Agentur, Organisation, Tester
Barrierefreiheit im FokusDieser Dienst wird mit dem eigenen Messkern gegen WCAG 2.2 AA geprüft.Mehr dazu
274 Werkzeuge meldet der MCP-Server unter https://euid.com/api/mcp einem Assistenten über tools/list. Diese Seite liest dieselbe Liste. 3 davon sind ohne Zugang aufrufbar; alle anderen brauchen ein Token, dessen Rolle die erlaubten Werkzeuge bestimmt. Wie Sie ein Token bekommen und einrichten, steht unter Automatisierung und MCP.
id (UUID), nie ein Name.Lists all audit customers of the tenant.
Rollen: Betreiber, Agentur, Organisation, Tester
Reads an audit customer by ID.
Rollen: Betreiber, Agentur, Organisation, Tester
kundeId *: Audit customer UUIDCreates an audit customer (company name + https domain).
Rollen: Betreiber · verändert Daten
firma *: Company namedomain *: Complete https URL of websiteansprechpartner: Optional: Contact person nameemail: Optional: Contact person emailart: Optional: seitenbesitzer (default), agentur or organisationtyp: Optional, nur bei art organisation: behoerde, verband, versicherung, kanzlei, teilhabe, technikSet the customer kind of an audit customer after creation (seitenbesitzer, agentur, organisation, hoster). Rights, menus and the start page follow the kind on the next call; the organisation type is kept only for organisation, otherwise cleared. [modifies data]
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDart *: Customer kindLogo slots on the certificate sheet of an audit customer: read (without belegungen) or replace the list. Slots: oben_rechts (1, head right), unten_rechts (up to 4, 2×2 grid above the footer line), neben_marke (1, next to the EUID mark). Each entry: platz, name, url (https), bild (file in public/partner, name.svg, or a locally hosted logo URL), schrift? (word mark file), kategorien? (only on sheets of these categories; excellence carries all). Empty list clears.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDbelegungen: Slot entries (objects: platz, name, url, bild, schrift?, kategorien?); omit to readOwn-product flag of an audit customer (default off): on = audit runs of this customer run without charging credit (like gratis, run marked abrechnung gratis). ⚠ CHARGEABLE runs become free — operator only. [modifies data]
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDan *: true = onMerge two audit customers (duplicate after a registration for a domain already in stock): grants, remote accesses, cases, accompaniments and partner link move to the kept customer, the given-up one is marked deleted. Irreversible — operator only. [modifies data]
Rollen: Betreiber · verändert Daten
behalten *: UUID of the audit customer to keepaufgegeben *: UUID of the audit customer to give upSetzt den Organisationstyp eines Prüfkunden (behoerde, verband, versicherung, kanzlei, teilhabe, technik); leer = keine Angabe.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDtyp: Type or emptySetzt die Sprache eines Prüfkunden (de, en, cs, sk, hu, sl, it, fr, rm, es, nl, pt, hr, bg); Aktenfile und Prüfbericht entstehen darin — Wirkung heute de und en, andere fallen auf Deutsch zurück, bis die Berichtstexte übersetzt sind.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDsprache *: Locale, e.g., de, en, hrMaster data of an audit customer: without fields, current values (firma, ansprechpartner, email, anschrift, strasse, plz, ort, land); with fields, sets them (same rule as /pruefung/stammdaten: firma required, address as strasse + plz + ort all three or none, land = ISO-3166-1 alpha-2 from the list, empty = not recorded). anschrift as free text is still accepted and split where possible. Customer access only for its own audit customer.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDfirma: Organisation nameansprechpartner: Contact personemail: Organisation emailstrasse: Street and house numberplz: Postal codeort: Cityanschrift: Postal address as free text (used only without strasse, plz, ort)land: Country of registered office, ISO-3166-1 alpha-2 (AT, DE, CH, …); empty string clearsDirectory entry of an audit customer in the partner search (public card): without fields, the current entry; with fields, sets it — sichtbar (true/false), kurz, leistungen[] (≤ 8), anschrift, plz, ort (required when visible), land (ISO-2), telefon, email, person (contact person shown on the card), bilder[] (≤ 3 https image URLs; first behind the front, all on the back), repariert (true/false: repairs websites — repair projects list these partners) with stundensatz (EUR per hour, e.g. 100; default from pruefservice.assistenz). Visible for agentur, organisation, hoster, the operator itself and partner customers (linked advertising partner — one card, never two). Customer access only for its own audit customer. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDsichtbar: Show in the partner searchkurz: One sentenceleistungen: Services, one per entryanschrift: Street and numberplz: Postcodeort: Cityland: Country ISO-2telefon: Phoneemail: Public emailperson: Contact person, name on the cardbilder: https image URLs, up to 3repariert: Repairs websites (repair projects)stundensatz: Hourly rate in EUR, only with repariertOperator switch per organisation (question 38): may the organisation's own CSS also take effect on public verification page /z/<pruefId>? Without `on` read-only. Default from: page carries colors, logo, brand from theme; seal image never carries stylesheet.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDan: true = CSS wirkt auch auf der VerifikationsseiteRead or set measurement mode and preselection for a customer: tiefenpruefung (true | false | null = like global), vorlagen {schwelle, vertreter} (null = global), vorauswahl {dimensionen, stufe, ziel {a11y: 90, …}, umfangOffen, abo}, hinweis. Only kundeId = read. [modifies data]
Rollen: Betreiber · verändert Daten
kundeId *: Audit customertiefenpruefung: true | false | null (wie global)vorlagen: { schwelle, vertreter } — null = globalvorauswahl: { dimensionen, stufe, ziel, umfangOffen, abo }hinweis: Optional: Note for workplaceSetup proposal of an audit customer, read from its website: facts with source page (firma, anschrift, telefon, email, leistungen, logo, bilder), three short texts, colors, open questions, and which chapters are already taken over. Customer access only for its own audit customer.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUIDTakes over the setup proposal into the customer data: kapitel stammdaten (master data), erscheinungsbild (brand, logo, accent color), sprache (language of the website or aenderungen.sprache; also confirms the setup step), karte (directory card: short text, address, phone, email, up to 3 https images), anzeige (the chosen ad text as a draft for the partner, only for ad partners; a second call changes the draft while it is a draft; euid activates it), fragen (answers to the open questions: aenderungen.fragen { personen|pruefadressen|tresor|zugaenge: true confirms, false withdraws }) or alles (stammdaten, erscheinungsbild, karte; language, ad and answers only when asked for explicitly). Optional aenderungen override single fields ({ stammdaten:{…}, farben:{akzent}, sprache, karte:{kurz, anschrift, plz, ort, telefon, email, bilder[], leistungen[]}, anzeige:{titel, text, platzierung}, fassung: nutzen|kompetenz|angebot, fragen:{…} }). Existing values the proposal does not know stay. Each chapter reports ok or the reason. Customer access only for its own audit customer.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDkapitel *: stammdaten | erscheinungsbild | sprache | karte | anzeige | fragen | allesaenderungen: Optional field overrides, see descriptionSetup state of an audit customer, the same list as the start page of the customer area: per step id, title, text, menu path (href), set from facts (eingestellt), confirmed by the owner (bestaetigt with date and name), confirmable, done, essential; plus the chapter state of the setup proposal, if one exists. Customer access only for its own audit customer.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUIDConfirms a setup step the facts cannot show (ja true, e.g. tresor: not needed for now) or withdraws the confirmation (ja false). Same function as the check box on the start page of the customer area; step ids from einrichtung.stand, only steps with bestaetigbar true. Customer access only for its own audit customer. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDid *: Step id from einrichtung.standja *: true confirms, false withdrawsReads the website of the audit customer again and builds a new setup proposal (queued; the result appears in einrichtung.vorschlag). Chapters already taken over stay in the customer data; the chapter state of the proposal starts over. Customer access: once per day. A customer without website gets no proposal. Customer access only for its own audit customer. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDAddresses the audit service measures from (instance plus active machines) and the product token of its user agent (EuidPruefservice) — to allow them in a firewall, WAF or fail2ban before a run. Same list as the public page https://euid.com/pruefadressen (no login needed, for a hoster) and /pruefung/pruefadressen.
Rollen: Betreiber, Agentur, Organisation
People with access to the own audit customer: userId, name, email, role (family owner, caretaker administration, contributor auditor, viewer reader), active, audit areas, note. Same list as https://euid.com/pruefung/pruefer. Customer access only for its own audit customer.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUIDInvites a person to the own audit customer by e-mail: name, email, role caretaker (administration), contributor (auditor, default) or viewer (reader), optional audit areas. The person gets an invitation mail and sets the password alone. Owners (family) are invited only in the interface https://euid.com/pruefung/pruefer; MCP takes no password and no technical login name. An account of another organisation is never changed. Customer access only for its own audit customer. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDname *: Full nameemail *: E-mail address for the invitationrolle: caretaker | contributor | viewer (default contributor)bereiche: Audit areas the person works on (a11y, seo, geo, cwv, co2, dsgvo, indexierung, responsive, software); empty = allEntries of the vault of the own audit customer WITHOUT values: id, label, kind (art), purpose, valid until, expired, number of reads, last read, number of auditors it is shared with. Values never leave the vault through MCP. Customer access only for its own audit customer.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUIDStores a secret in the vault of the own audit customer: label (a–z, 0–9, dot, dash, underscore), value, purpose (required), kind pruefung (protected area for the measurement: label basic-auth with value user:password, or login-formular with JSON) or fremdsystem (external system of the organisation), optional validity in days. The value is never returned and never readable through MCP; kind aufbewahrung and changing an existing entry only in the interface https://euid.com/pruefung/tresor. Customer access only for its own audit customer. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDlabel *: Label, e.g. basic-authwert *: Secret value (never returned)zweck *: Purpose, requiredart *: pruefung | fremdsystemtage: Validity in days (optional)Organisation's own vault source (2026-09-15): intern, HashiCorp/OpenBao KV v2 or own https endpoint; address, mount, path, field, order, whether token exists, last test. Never a token.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Organisation UUIDSet own vault source: art intern | hashicorp | http, adresse (https), at hashicorp mount (default secret) and pfad, feld (default value), eigeneZuerst (default true), token (access token; empty keeps existing). Then audit service reads organisation's secrets (login, basic auth, foreign system, hook secrets) from this source. art intern removes source and token. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation UUIDart *: intern | hashicorp | httpadresse: https base address; http endpoint may contain {label}mount: hashicorp: KV mountpfad: hashicorp: Path prefixfeld: Field with valueeigeneZuerst: erst die eigene Quelle, dann interntoken: Access token to sourceTest connection of own vault source: reads label euid-verbindungstest; says whether source is reachable, token accepted and label exists.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation UUIDRemove own vault source with token — organisation is entirely in audit service vault. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation UUIDConditions of the own audit customer towards the organisations it accompanies: who pays (zahlweg kunde or agentur), level of detail, allowed audit areas, help with implementation. Read only; conditions are set at https://euid.com/pruefung/betreute. Customer access only for its own audit customer.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUIDPartner directory (public, same data as /partner/verzeichnis): agencies that help fix findings, insurers, organisations, hosters — cards with contact, services, images. Filters: name (matches name, city, text, services), art (agentur | organisation | versicherung | pentester | hoster), plz + land (ordered by postcode distance within the same country — no kilometre value), seite.
Rollen: offen
name: Search word (optional)art: Kind (optional)plz: Postcode (optional)land: Country ISO-2 (optional, with plz)repariert: Only partners that repair websites (optional)seite: Page, 12 per page (optional)The partner behind an audit customer: values (contact e-mail, embedding module, countries, note), the full partner page profile (all fields, state, public address), the ads with state, impressions and clicks. Customer access for its own audit customer.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUID (the partner is linked to it)Set the partner's own values: kontaktEmail, einbettungUrl (https address of the partner's embedding form), notiz, laender (ISO-2 list, empty = everywhere). Fields left out keep their value. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDkontaktEmail: Contact e-mail (optional)einbettungUrl: https address of the embedding module (optional)notiz: Note to euid (optional)laender: ISO-2 country codes (optional)Set the partner page profile — every field the partner login offers, including bilder (gallery), dokumente and seite (baukasten layout). Publishing stays with the operator (werbung.partner.profil). [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDprofil *: Profile of the partner page: titel (≤ 90), kurz (≤ 200), text (markdown paragraphs, ≤ 4000), leistungen[] (≤ 12), verweise[{titel,url}] (https own sites, ≤ 5), standort, rahmen[] (https origins allowed to embed the partner box), bilder[{url,alt}] (https own images with alt text, ≤ 8), dokumente[{titel,url}] (https own PDFs, ≤ 8), seite (optional @dignis/baukasten page JSON replacing text/leistungen/verweise). Fields left out keep their value.Create an ad draft for the partner (state entwurf — euid activates it). Placements: see partner.stand.platzierungen. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDplatzierung *: Placement keycreative *: Creative: eyebrow (≤ 40), titel (≤ 90, required), text (≤ 240), bild (https) + bildAlt (required with bild), ctaLabel (≤ 40, required), ctaHref (https or a euid.com path, required).Change one of the partner's own ads: platzierung and/or creative. An active ad returns to entwurf until euid activates it again. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDwerbungId *: Ad UUID (from partner.stand)platzierung: Placement key (optional)creative: Creative: eyebrow (≤ 40), titel (≤ 90, required), text (≤ 240), bild (https) + bildAlt (required with bild), ctaLabel (≤ 40, required), ctaHref (https or a euid.com path, required).Statistics of the partner behind an audit customer: impressions and clicks per ad (total, last 30 days), daily series, inquiries and closings per month, click rate. Aggregates only.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUIDRegister of organisations and instances: every accompanying organisation (agentur, hoster, organisation) with country, type, instance (zentrale | island id), licence, number of cases, active seals, accompanied customers and MCP accesses; every island with hoster, country, key fingerprint, last report. Read from pruef_kunde + pruef_insel, nothing maintained twice. Filters: land (ISO-2 or "ohne"), art, instanz.
Rollen: Betreiber
land: ISO-2 or "ohne" (no master data)art: agentur | organisation | hosterinstanz: zentrale or island idCase file of a completed run as ZIP: download address (with session or x-dev-secret), archive name, and file list of the case folder (index.html = case file, akte.json, pruefbericht.html, per audit area befunde.json/messung.json, bilder/, quelltext/). Null result if the run has no folder (legacy run, test run).
Rollen: Betreiber, Akte-Token
runId *: Run UUIDService status: online payments and outstanding invoices, errors and remote accesses over the past 7 days, heartbeat status, customers by type.
Rollen: Betreiber
zeitraumTage: Optional: Payment period in days (default 30)Reads or sets which types (seitenbesitzer, agentur, organisation) may register via an organisation's link; without permission, read-only.
Rollen: Betreiber · verändert Daten
kundeId *: Organisation UUID (audit customer)erlaubt: Optional: erlaubte Arten; leere Liste schließt die Registrierungpruefer: Optional: dürfen sich prüfende Personen selbst registrieren (Prüfer-Freigabe, keine Akte)Own mail server of organisation for invitations and auditor access in its name: without action, status (no password); action setzen with host, port, user, pass, from (empty pass keeps existing); action probe with an (test mail); action remove. Values in organisation's vault (smtp.*).
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation (Audit customer)aktion: setzen, probe, entfernen — leer = Standhost: Mail serverport: Port (587, 465)user: Userpass: Passwordfrom: From "Name <address>"an: Test email recipientLists audit cases, optionally restricted to one customer.
Rollen: Betreiber, Agentur, Organisation, Tester
kundeId: Optional: Audit customer UUIDReads an audit case including target profile and status.
Rollen: Betreiber, Agentur, Organisation, Tester, Akte-Token
auftragId *: Case UUIDAI consumption of a case from the immutable AI ledger: calls, tokens, cents across all runs, expectation for next run, plus chain verification (ok or break point).
Rollen: Betreiber
auftragId *: Case UUIDCost report of a case, operator only (operator 2026-09-15: log costs per task, for operator only): revenue from ledger (runs, bonus, discount, assistance), AI per purpose from AI ledger, third-party services as quantity (PageSpeed, VIES, Wayback, W3C, whois, Sistrix credits, Search Console, voiceover pages), measurement time per worker, one line per run; plus a sentence. Customer receives none of this.
Rollen: Betreiber
auftragId *: Case UUIDDiscards an EMPTY case, operator only ([51.24]): only status angelegt, without any run, ledger booking or auditor verdict (checked under row lock). The case is marked deleted; the case log names reason and actor. Any other case is refused with AUFTRAG_NICHT_LEER and the reason — a case with a run always stays.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDgrund *: Why the case is discarded, e.g. "duplicate, the valid case is <auftragId>"Creates an audit case (customer, domain, volume, audit areas). Checks the start address first: redirect chain and sitemap; answer field vorab (art ok|umgeleitet|fremd|abgewiesen|nicht_erreichbar, meldung, sitemap, seiten), also written to the case log. With vorab.art fremd the run is refused until pruefservice.auftraege.umleitung_folgen or a new case for the target domain.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDdomain *: https URL of website to auditstufe *: Page volume in pages (tiers 15, 50, 100, 300, 1000; at most 1000)dimensionen *: Zu prüfende Dimensionen (a11y, seo, geo, cwv, co2, dsgvo, indexierung, responsive, software)sitemapUrl: OPTIONAL: Sitemap URL for crawl to use in addition to automatic discoveryberechtigungBestaetigt *: PFLICHT: Bestätigung, zur Beauftragung der Prüfung dieser Domain berechtigt zu sein (Betreiber der Website oder in seinem Auftrag). Die Ergebnisse dienen der Qualitätssicherung; ihre Verwendung für Abmahnungen ist untersagt (AGB Abschnitt 3).Sets the case status. Invalid transitions are rejected by the state machine.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDstatus *: Neuer StatusPrimary domain: if start address of a case redirects to a FOREIGN domain, run refuses (DOMAIN_LEITET_FREMD) and charges nothing. With folgen:true, run measures target — only for cases where operator knows both domains belong to same person. www/protocol/subdomain case equalizes automatically (case log, primary-domain event).
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDfolgen *: true = der Umleitung folgen, false = wieder verweigernPage count of a case: how many pages the NEXT run measures (2 = initial finding, otherwise the tiers of the price list). Applies from the next run; finished runs keep their count; case log entry.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDseiten *: Selectable page count (2 or a price tier, e.g. 15, 50, 100, 300, 1000)Assigns the auditor organisation of a case with ordered human audit (begleitung): its auditors then see the case and may judge pages. organisationId empty = euid.com accompanies itself. Same rules as creating a case (agency, organisation or host; never the customer itself; partner pool). Case log entry.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDorganisationId: Audit customer UUID of the auditor organisation; empty = euid.comScope of a case: which audit areas it covers (a11y, seo, geo, cwv, co2, dsgvo, indexierung, responsive, software). Applies from the next run and changes what it costs; nothing is booked here. Areas removed keep their measured values in the file; a partial seal stays valid until it expires. Case log entry.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDdimensionen *: Audit areas the case covers from now on, at least one: a11y, seo, geo, cwv, co2, dsgvo, indexierung, responsive, softwareCrawl scope of a case: whitelist (only these paths) and blacklist (never these paths), one pattern per entry — path prefix (/zertifikat/) or * wildcard (*.pdf). Blacklist wins; empty lists remove the restriction; the start page is always fetched. Applies from the next run. Read with erlaubt/gesperrt omitted.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDerlaubt: Whitelist patterns, strings (empty = everything)gesperrt: Blacklist patterns, stringsPath in the operator workspace for exactly one target: customer (kundeId), case (auftragId), run (runId) or a page of a run (runId + seite, e.g. "/kontakt"). Returns { art, pfad, titel } for the Bubble action "oeffnen"; find IDs first with kunden.liste, auftraege.liste or durchgaenge.liste.
Rollen: Betreiber
kundeId: Audit customer UUIDauftragId: Case UUID (opens its audit file with the latest run)runId: Run UUID (opens the audit file of exactly this run)seite: Optional with runId: page path or address of the audited websiteOngoing monitoring of a domain (audit areas cyber, keywords): one run per interval (cyber daily, otherwise every 30 days), status and change compared to previous run, no seal statement. ⚠ CHARGEABLE per month, reserved once per month (price as proposal, question 24a). First run is immediately due; heartbeat processes it.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUID whose credit is chargeddomain *: https address of websiterubriken *: cyber, keywords oder beideseiten: Ausgewählte Seiten (absolute URLs, höchstens 50); leer = Startseite und Crawl bis 8 SeitenStatus of monitoring: subscription and all monthly runs with point values and change; without ueberwachungId, the list of subscriptions.
Rollen: Betreiber
ueberwachungId: Monitoring UUIDkundeId: only subscriptions of this customer (list)Ends monitoring: no further monthly runs; a pending run will be refunded.
Rollen: Betreiber · verändert Daten
ueberwachungId *: Monitoring UUIDLists audit runs of a case.
Rollen: Betreiber, Agentur, Organisation, Tester, Akte-Token
auftragId *: Case UUIDStarts an audit run. ⚠ CHARGEABLE: reserves cost estimate from credit balance and settles actual extent after completion. With queue returns immediately eingereiht:true with jobId (worker measures); pruefservice.durchgaenge.liste shows run, pruefservice.pruefung.stand shows progress.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
auftragId *: Case UUIDdimensionen: Only these audit areas (subset of the case; e.g. ["a11y","seo"]); omitted = all ordered areas. The file merges per area the latest run that carries it.Reads the credit balance of an audit customer in cents.
Rollen: Betreiber, Agentur, Organisation, Tester
kundeId *: Audit customer UUID⚠ MONEY MOVEMENT: Books a credit deposit to an audit customer's account.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDcents *: Amount in cents (positive)notiz: Optional: Booking noteReads current prices and optionally calculates a cost estimate.
Rollen: offen
vollSeiten: Optional: Number of full pagesleichtSeiten: Optional: Number of light pagesVerifies a partial seal publicly (domain, audit area, score, validity, status). No login required.
Rollen: offen
pruefId *: Public audit ID⚠ ISSUES A SEAL: creates partial seal for an audit area if target value is reached. Result is publicly verifiable.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDdimension *: Zu besiegelnde Dimension⚠ REVOKES A SEAL. Verification page remains and explicitly states revocation — it does not disappear.
Rollen: Betreiber · verändert Daten
pruefId *: Public audit IDLists report publications of a partial seal (initial publication and any corrections with reason).
Rollen: Betreiber, Agentur, Organisation, Tester
pruefId *: Public audit IDSends the audit report of ONE run to ONE e-mail address with the PDF attached (customer view, the same file as the download) and links to the criteria register and knowledge pages of the measured audit areas; replies go to the operator address. Without senden:true nothing is sent: the answer is the preview (subject, text, attachment). Activity log entry bericht.mail.
Rollen: Betreiber · verändert Daten
runId *: Run UUIDan *: One recipient e-mail addressanrede: Salutation, e.g. "Guten Tag Herr Mag. Fortner,"; default "Guten Tag,"stufe: PDF level: zusammenfassung (default), erweitert or fachlichsenden: true sends the mail; omitted or false returns the preview onlyReads the visual template of an audit customer (set override and resolved theme).
Rollen: Betreiber, Agentur, Organisation, Tester
kundeId *: Audit customer UUIDSets the design template of an audit customer (brand, logo, color scheme). ISSUER is not configurable — corresponding fields are rejected.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDtheme *: Optik-Vorlage: marke, logo_url (https), akzent, akzent_hell, akzent_kontrast, hintergrund, flaeche, rahmen, text, text_leise (Hex)Reads operator branding (base for all themes).
Rollen: Betreiber, Agentur, Organisation, Tester
Checks service operational status (ledger integrity, settlement cron, open reservations, legal text release status). An empty check is treated as error.
Rollen: Betreiber
Audits ONE domain in one call: creates case if needed and starts run. ⚠ CHARGEABLE (reserve from audit customer's credit balance). Returns auftragId and runId; with queue instead eingereiht:true and jobId, runId then via pruefservice.durchgaenge.liste — pruefservice.pruefung.stand shows progress.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUID whose credit is charged for auditdomain *: Domain or https URL of website to auditstufe: Page tier (15, 50, 100, 300, 1000) — if omitted, customer's preselection (customer account), otherwise 10dimensionen: Prüfbereiche; ohne Angabe die Vorauswahl des Prüfkunden, sonst alleStatus of a run: is it still running, how many pages measured, what point values per audit area. Query until run completes.
Rollen: Betreiber, Agentur, Organisation, Tester, Prüfende Person, Akte-Token
runId *: Run UUIDIMPROVEMENT MODE FOR AGENCIES: per page of completed run, findings with remedy, JSON-LD proposal (placeholder «…» instead of invented facts), suggestions for internal linking, and ready-to-copy AI task; plus task for whole site (template problems first). Changes no point value. Markdown: /bericht/lauf/<runId>/updateplan.
Rollen: Betreiber, Agentur, Organisation, Tester, Akte-Token
runId *: Run UUIDpath: Optional: only this page (path, e.g., /kontakt)RESULT AS TASK LIST: findings of completed run, bundled per audit area and rule — with severity, count, affected pages, remedy, and reference to knowledge base. Running run returns empty list; preliminary findings would mislead.
Rollen: Betreiber, Agentur, Organisation, Tester, Prüfende Person, Akte-Token
runId *: Run UUIDbereich: Optional: nur dieser PrüfbereichminSchwere: Optional: Mindest-Schwerelimit: Optional: Maximum task count (default 100, maximum 500)stufe: Optional: Ausführlichkeit — knapp · standard · voll. Ohne Angabe entscheidet das Profil des Kunden.lang: Optional: Sprache der Aufgabentexte (z. B. en). Rückfall en→de je Befund; Vorgabe de.WCAG-2.2 criteria catalog of completed run: per success criterion passed / failed / requires manual check / not automatically testable — actual accessibility answer behind point value. Empty if accessibility not measured or run still running.
Rollen: Betreiber, Agentur, Organisation, Tester, Prüfende Person, Akte-Token
runId *: Run UUIDInventory of a run (2026-09-15): all detected images with alt text, size, occurrence per page; all links with link text, occurrence, internal/external; external links checked (broken, http only); legal section (impressum, datenschutz, AGB, cookies, barrierefreiheit, withdrawal, contact); every measured page with HTTP status, title, H1, page type and its number of images and links (seitenListe, [65.2]); the menus of the run, each once, with the number of pages they appear on (menues, [65.13]). From case file (inventar.json); older runs from database without link check. No audit judgment.
Rollen: Betreiber
runId *: Run UUIDData sheet of ONE page of a run ([65.2], 2026-10-21): every image on the page with alt text (missing, empty = decorative, text), placeholder status (no size, up to 2x2 pixels, placeholder file name; marked as decorative or not) and the verdict of the image analysis when the run has one; every link in page order with text, target, internal/external/jump mark to the page itself, and its state from the link directory. Page path as in seitenListe of pruefservice.pruefung.inventar. No audit judgment.
Rollen: Betreiber
runId *: Run UUIDseite *: Path of the page as in the page list, e.g. /kontaktDomain directory of a run (question 46, 2026-09-16): DNS (A/AAAA, NS, CAA), mail protection (SPF, DKIM, DMARC, MX), DNSSEC, TLS versions and certificate, network of the address (whois) — per line status (ok, weak, missing, not determinable), found value, meaning, purpose. Collected without browser, no seal, no point value. From case file (domain/verzeichnis.json); older runs have none.
Rollen: Betreiber
runId *: Run UUIDSEO and keyword suggestions for a run (prepared 2026-09-14): title, description and H1 per page and up to ten keywords from search data (Search Console; Sistrix when keyword list is connected). Created ONCE per run with the model for purpose empfehlung, stored at run and as ki/seo-vorschlag.json in case file. Without key, pages or search data, returns the status with the finished prompt. No audit judgment.
Rollen: Betreiber
runId *: Run UUIDImage analysis of a run (Block 6, Answer 12; Block 63): each real image described by image model against alt and context text; urteil passt|knapp|widerspruch|sinnlos|unklar, vorschlag = suggested alt text (max 150 chars), guete = quality of the alt texts in percent (passt 1, knapp half, unklar not counted). Contradiction or pointless text = hint with evidence. No audit judgment. Costs only for the operator. Occurs after full audit once key is in vault.
Rollen: Betreiber, Agentur, Organisation, Tester, Akte-Token
runId *: Run UUIDRe-analyse one image ([60.22]): the image analysis keeps judgments across runs per host, bytes (sha256), alt text, model and prompt version, so an unchanged image costs no second model call. This removes the stored judgments of ONE image (inhaltHash from pruefung.bilder of that run) on the run host; the next run with image analysis asks the model again. Does not change the run itself.
Rollen: Betreiber · verändert Daten
runId *: Run UUID whose image analysis lists the imageinhaltHash *: sha256 of the image bytes (field inhaltHash in pruefung.bilder)Ranking of a run as stored after settlement: Search Console (clicks, impressions, pages, queries) and Sistrix (visibility, keywords) or reason why nothing is there. Legacy runs without storage return null.
Rollen: Betreiber
runId *: Run UUIDBefore-after of a run against previous completed run of same case: fixed, new, unchanged per criterion with pages and locations; only commonly measured audit areas compared, "open" instead of finding counts as to review. Without previous run null.
Rollen: Betreiber, Akte-Token
runId *: Run UUIDBatch audit: order many domains in a single call (limit 100). Runs are processed ONE AFTER ANOTHER — the measurement environment audits one website at a time. ⚠ CHARGEABLE per domain. Returns a stapelId; progress via pruefservice.stapel.stand.
Rollen: Betreiber, Agentur · verändert Daten
kundeId *: Audit customer UUID whose credit is charged for runsdomains *: Liste der Domains (Host oder URL)stufe: Page tier per domain (15, 50, 100, 300, 1000) — default 10dimensionen: Prüfbereiche; Vorgabe alletitel: Optional: Batch nameProgress of batch audit: how many domains waiting, running, complete, failed — per domain with runId for task list.
Rollen: Betreiber, Agentur
stapelId *: Batch UUIDTask lists of ALL completed domains in batch, bundled per domain. Waiting and running entries appear with empty list.
Rollen: Betreiber, Agentur
stapelId *: Batch UUIDminSchwere: Optional: Mindest-SchwerelimitJeDomain: Optional: Maximum tasks per domain (default 25)Cancels batch audit: waiting domains drop, already running run completes (cancelling would leave its reservation open).
Rollen: Betreiber, Agentur · verändert Daten
stapelId *: Batch UUIDActivity log of all internal operations, newest first: case log, seals (issued, revoked, failed), payment (credited, rejected, webhook error), remote access (call, rejected). Filter by area, result, and case.
Rollen: Betreiber
bereich: Optional: nur dieser Bereichergebnis: Optional: nur dieses ErgebnisauftragId: Optional: only this caselimit: Optional: Maximum (default 100, maximum 500)Create ticket for an audit case (help with implementation, seal integration). No cost; money occurs only when logged time exceeds the quota.
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDtitel *: What it's about (3–200 characters)text: Descriptionbezug: Optional: Task from task list this ticket relates toTickets with status, logged time, and amount: per case, per customer, or all; with ticketId, a ticket with its time entries.
Rollen: Betreiber
ticketId: Ticket UUIDauftragId: only this casekundeId: only this customerstatus: offen, in_arbeit, erledigtSet ticket status: offen, in_arbeit, erledigt.
Rollen: Betreiber · verändert Daten
ticketId *: Ticket UUIDstatus *: neuer Status⚠ MONEY: Log time to a ticket in quarter-hours. First the organisation's quota (0 €), then the hourly rate as a ledger entry to the case's payer. Negative quarter-hours are a reversal of time without money.
Rollen: Betreiber · verändert Daten
ticketId *: Ticket UUIDviertel *: Quarter-hours, integer, not zeronotiz: What was doneRead assistance quota and provider of an organisation; with kontingentViertel or anbieterId, set (-1 = default, "euid" = EUID).
Rollen: Betreiber · verändert Daten
kundeId *: Organisation UUIDkontingentViertel: own quota in quarter-hours; -1 = defaultanbieterId: Agency UUID providing assistance; "euid" = EUIDStatement per auditor for one month (YYYY-MM): pages audited, amount (5 € per page), annual total, earnings limit and warning. format csv returns the file for Odoo.
Rollen: Betreiber
monat *: Month as YYYY-MMuserId: only this person (auth_user.id)format: json (Vorgabe) oder csvRead or set earnings limit for one auditor per calendar year (grenzeJahrCents; -1 = none). Warning at 80 %, reached at 100 %, no cutoff.
Rollen: Betreiber · verändert Daten
userId *: auth_user.id of persongrenzeJahrCents: Limit in cents per year; -1 = nonenotiz: Reason, e.g., country and regulationTask list of one auditor: per accompanied case domain, customer, pages total, judged, open and next page without judgment. Person = auditor access; operator specifies userId.
Rollen: Betreiber, Prüfende Person
userId: Operator only: Person (auth_user.id); auditor access gives nothingOne page to judge: findings from latest run on this page (area, title, severity, rule, remedy, knowledge), real screen-reader text (if screen-reader evidence exists), judgment so far and allowed judgments.
Rollen: Betreiber, Prüfende Person
auftragId *: Case UUID (from pruefer.aufgaben)url *: Page address (from naechsteSeite or page list)userId: Operator only: PersonEnter judgment for page: works or problem, with reasoning and optionally WCAG criteria (e.g., ["1.3.1","4.1.2"]). Same function as interface; first judgment per page writes auditor credit. [modifies data]
Rollen: Betreiber, Prüfende Person · verändert Daten
auftragId *: Case UUIDurl *: Page addressurteil *: funktioniert | problemkommentar: Reasoning in plaintextkriterien: Optional bei problem: WCAG-KriteriennummernuserId: Operator only: PersonRead or set AI model per purpose (empfehlung, vorpruefung, bild, uebersetzung) — only models from the pricing table; includes table (USD per million tokens, pricing date). Key is in vault.
Rollen: Betreiber · verändert Daten
empfehlung: Model IDvorpruefung: Model IDbild: Model IDuebersetzung: Model IDExecute model check immediately (otherwise weekly via heartbeat): whether configured models are listed at the provider, how old the pricing table is. Requires key in vault (anthropic/api_key); without it, pricing date only.
Rollen: Betreiber · verändert Daten
Register machine in machine directory (measurement or screen-reader worker): name (lowercase, digits, hyphen), type mess|vorlese, location, computer id. Returns id for all heartbeats; known name = existing machine.
Rollen: Betreiber · verändert Daten
name *: Name, e.g., keller-1art *: mess or vorlesestandort: Optional: Cellar, Cloud, Workplacekennung: Optional: Computer namestand: Optional: flache Angaben (git, node, nvda)Heartbeat of registered machine (by id only); status merged. After 180 s without heartbeat, machine is considered silent.
Rollen: Betreiber · verändert Daten
id *: Machine UUIDkennung: Optional: Computer namestand: Optional: flache Angaben (git, aufgabe, nvda)Machine directory: all machines with type, location, status and whether they are alive (heartbeat within 180 s).
Rollen: Betreiber
Deregister machine (aktiv=false, heartbeats rejected) or reactivate.
Rollen: Betreiber · verändert Daten
id *: Machine UUIDaktiv *: true = aktiv, false = abgemeldetComparison of report with should-list of break website (A13): each should-error with page and location in count, nothing doubled, no audit area passed, empty audit = error. With runId, immediately against stored run; without runId, STARTS worker measurement of break website (minutes, no audit customer and ledger) at service address or basis (https://bruch.…) — result afterwards via bruch.stand.
Rollen: Betreiber
runId: Optional: UUID of run against break websitebasis: Optional: own break website address, e.g., https://bruch.euid.comStatus of last started break test: laeuft, fertig (with comparison per should-error) or fehler.
Rollen: Betreiber
Who is currently on website and customer area: per visit page, path with dwell time, engagement (scroll, mouse, rage clicks), origin, WHOIS (organisation, provider, location), unread chat messages. Bots hidden (mitBots: true shows them).
Rollen: Betreiber
stunden: Optional: Period in hours, default 24, at most 168mitBots: Bots mit anzeigenWHOIS for IP addresses of live visitors (ip from live.besucher): organisation, provider, country, city, timezone, proxy/hosting/mobile. Reads storage; with frisch: true queries ip-api.com immediately.
Rollen: Betreiber · verändert Daten
ips *: IP-Adressen (Strings), höchstens 100frisch: beim Dienst neu holen statt nur lesenChat history of a visit (besuchId from live.besucher); visitor's messages count as read thereafter.
Rollen: Betreiber · verändert Daten
besuchId *: Visit UUIDSend message to visitor — appears in their speech bubble with next heartbeat (up to 10 s, in open chat 2 s). With schliessen: true ends chat for visitor until someone writes again.
Rollen: Betreiber · verändert Daten
besuchId *: Visit UUIDtext: Plaintext up to 2000 charactersschliessen: Chat danach beendenSearch analysis of Google Search Console for a customer: connection status (service client, customer permission) and, if connected, clicks, impressions, click-through rate, position, plus pages and queries from recent days. Customer grants permission in customer area under /pruefung/ranking.
Rollen: Betreiber
kundeId *: Audit customer UUIDtage: Optional: Period in days, default 28Search Console across all audit customers (same view as /dash/pruefservice/gsc): whether service's Google access is stored and per customer whether permission exists and until when. Reads no values, metadata only.
Rollen: Betreiber
Tracking from Search Console of a customer (Mig 319): metrics with change to previous period (28 days), position classes, queries and pages with winners, losers, new and lost, risers and fallers, opportunities (rank 4 to 20 with impressions), countries, devices, search features, search types, weekly series up to 16 months, sitemaps, indexing of strongest pages and development across all collections. Reads latest collection; without collection null — then ranking.gsc.erheben.
Rollen: Betreiber
kundeId *: Audit customer UUIDPage success of the euid.com website itself (2026-09-18): every page of the page template per language against the latest Search Console collection of the platform — clicks, impressions, CTR, position with change to previous period, the queries that brought the page, and per declared keyword (keywords in _inhalt.ts, translated per language) whether it is in the page text, which query matched (impressions, position) and which OTHER pages also receive it. Summary counts on top.
Rollen: Betreiber
Collect Search Console tracking for a customer now (otherwise daily 04:41 in heartbeat): search analysis per dimension and search type, sitemaps, inspection of 20 strongest pages; one line per day, second run same day replaces it. Requires customer permission; every read in vault protocol.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDSistrix for customer's domain: visibility index with status, keywords in top 100 and top 10, country from TLD; operator key from vault, each query costs credits and logs with customer. Status less than one day old comes from storage at customer; frisch:true forces query. Without key, no call.
Rollen: Betreiber
kundeId *: Audit customer UUIDfrisch: true erzwingt eine neue Abfrage bei Sistrix (kostet Credits)Sistrix credits for one month from activity log: total, count of queries and per customer — operator's costs. Without monat, current month.
Rollen: Betreiber
monat: YYYY-MM, default: current monthOperator switches for measurement (pruefservice.messung): tiefenpruefung (software probes) and template detection in crawl — schwelle (from this many known addresses, 0 = off) and vertreter (pages per template fully measured; more representatives see more, e.g., images without text on individual pages). Without input: read. [modifies data]
Rollen: Betreiber · verändert Daten
tiefenpruefung: Software-Sonden an/ausschwelle: Templates from this many known addresses, 0 = offvertreter: Representatives per template, 1–50Report a wrong or missing measurement for a run: art = falsch (a finding is wrong; kennung required — the rule or finding id from pruefung.todos) or fehlt (a measurement is missing), bereich (audit area code), kennung, seite (path), text (what was observed, 10–4000 chars), erwartet (what would be right). The report goes to the operator; scores and seals do not change by the report itself. Interface: /pruefung/meldung/<runId>. [modifies data]
Rollen: Betreiber, Agentur, Organisation, Prüfende Person, Akte-Token · verändert Daten
runId *: Run UUIDart *: falsch or fehltbereich *: Audit area code: a11y, dsgvo, seo, geo, indexierung, responsive, cwv, softwarekennung: Rule or finding id (required for falsch)seite: Page pathtext *: What was observed (10–4000 chars)erwartet: What would be right (optional)Reports of wrong or missing measurements of one case with state and the operator answer (customer, auditor, operator).
Rollen: Betreiber, Agentur, Organisation, Prüfende Person, Akte-Token
auftragId *: Case UUIDAll reports of wrong or missing measurements with the domain of the case, filtered by stand (neu, in_pruefung, bestaetigt, abgelehnt, behoben, offen = neu+in_pruefung+bestaetigt), limit (≤500). Interface: /dash/pruefservice/meldungen.
Rollen: Betreiber
stand: neu, in_pruefung, bestaetigt, abgelehnt, behoben or offenlimit: at most 500Set the state of a report along the state machine (neu → in_pruefung | bestaetigt | abgelehnt; in_pruefung → bestaetigt | abgelehnt; bestaetigt → behoben | abgelehnt; abgelehnt → in_pruefung) with an answer to the reporter. The report itself stays unchanged. [modifies data]
Rollen: Betreiber · verändert Daten
meldungId *: Report UUIDstand *: neu, in_pruefung, bestaetigt, abgelehnt, behobenantwort: Answer to the reporter (≤4000 chars)An agent (Claude window, machine) reports its status: agent (name), stand (arbeitet | wartet | deploy | blockiert | fertig), tut (what's happening), wo (file, area). Operator sees it in documentation archive. [modifies data]
Rollen: Betreiber · verändert Daten
agent *: Agent name, e.g., euid-com-50stand: arbeitet | wartet | deploy | blockiert | fertigtut *: Activity, up to 500 characterswo: Optional: File or areaMost recent status per agent (silent after 30 minutes without report) and history of recent reports.
Rollen: Betreiber
verlauf: Optional: how many history lines, default 40Partner pools with members and roles (pruefer | assistenz | beides); with kundeId additionally the partners selectable for that customer.
Rollen: Betreiber
kundeId: Optional: Audit customerCreate partner pool: name, beschreibung, inhaberKundeId (organisation the pool belongs to; empty = operator). [modifies data]
Rollen: Betreiber · verändert Daten
name *: Name, 2–80 charactersbeschreibung: OptionalinhaberKundeId: Optional: Audit customerSet partner in pool (rolle pruefer | assistenz | beides) or remove (rolle null). Agencies, organisations, hosters only. [modifies data]
Rollen: Betreiber · verändert Daten
poolId *: PoolkundeId *: Partner (Audit customer)rolle: pruefer | assistenz | beides | null (entfernen)Assign partner pool to a customer (poolId) or remove assignment (poolId null) — customer selects auditor organisation and assistance from this. [modifies data]
Rollen: Betreiber · verändert Daten
kundeId *: Audit customerpoolId: Pool-Kennung oder null (Zuordnung entfernen)Island operation (Block 21): instance type of this instance (zentrale | insel), identifier, billing transfer method and — on an island — license status (gueltig | gnade | abgelaufen | ungueltig).
Rollen: Betreiber
Counters of one month (YYYY-MM, default previous month) as they would appear in billing report — numbers only, nothing stored.
Rollen: Betreiber
monat: Optional: YYYY-MM, default previous monthIsland only: create monthly billing report (hash chain, signature, append-only) and with transfer method push send to central; with holen stays for download (uebermitteln:true forces push). [modifies data]
Rollen: Betreiber · verändert Daten
monat: Optional: YYYY-MM, default previous monthuebermitteln: Optional: an die Zentrale schicken (Vorgabe: ja bei push)Central: all islands (identifier, hoster, transfer method, license end, count of reports, last month).
Rollen: Betreiber
Central: create or renew island for hoster: kennung, oeffentlicherSchluessel (PEM of island from tools/abrechnung_export.mjs --schluessel), kundeId of hoster, uebergabe (push | holen), lizenzBis. [modifies data]
Rollen: Betreiber · verändert Daten
kennung *: Island identifier (a-z, 0-9, -)oeffentlicherSchluessel *: Island's public Ed25519 key, PEMkundeId: Optional: Hoster's audit customeruebergabe: push | holenlizenzBis: Optional: YYYY-MM-DDCentral, transfer method holen: check and store billing report delivered by hoster ({ bericht, signatur }). [modifies data]
Rollen: Betreiber · verändert Daten
bericht *: Der Berichtsignatur *: Island signature (base64)Billing reports (all islands or one kennung), newest first: month, method, hash, counters.
Rollen: Betreiber
kennung: Optional: only this islandlimit: Optional, default 24Island: the fleet report as it would be sent now (signed, nothing stored) plus what was last sent and the central's answer — literally, so the hoster sees exactly what leaves the island. Central: use insel.flotte.liste.
Rollen: Betreiber
Island only: create and send the fleet report now (INSEL_FLOTTE=aus → not sent, said so). [modifies data]
Rollen: Betreiber · verändert Daten
Central: fleet reports of all islands or one (newest first): version, license state, health, target projects, optional 30-day sums.
Rollen: Betreiber
kennung: Optional: only this islandlimit: Optional, default 50Open operator messages from the AManager (/dash/pruefservice/amanager, formerly documentation archive): per topic (file path or frage:NN) text, time and — if commented at a text location — anker {tag, index, zitat} (quote is the location in file), oldest first. Read sets gesehenAm (operator sees "seen"); nurLesen: true omits the mark. Reply with doku.gespraech.antwort.
Rollen: Betreiber · verändert Daten
limit: höchstens so viele, Vorgabe 50nurLesen: ohne gesehen-MarkeClaude's reply to operator message in documentation archive: stores reply in same topic and marks message as answered.
Rollen: Betreiber · verändert Daten
id *: Operator message UUIDtext *: Reply text, at most 8000 charactersOpen questions from docs/TODOS-PROGRAMM.md as documentation page shows them: number, title, whether operator answer is recorded.
Rollen: Betreiber
Review jobs from the AManager (tab "Review"): what still has to be checked after a change. Per job: kennung (roadmap checkbox), titel, beschreibung (the job), aenderung (the change it refers to), erkennung (how to tell the result), wer (betreiber | agent), stand (offen | laeuft | erledigt | befund), ergebnis, beleg. Sorted: running first, then open, findings, done last.
Rollen: Betreiber
offen: nur offene und laufendekurz: short form per job: id, kennung, titel, stand, wer (without the long texts); use it for an overviewCreate a review job (or update the texts of the job with the same kennung). titel is required; give beschreibung (what to do), aenderung (what it refers to) and erkennung (how to tell the result) — without erkennung the check is a feeling, and the list marks the job incomplete.
Rollen: Betreiber · verändert Daten
kennung: Roadmap checkbox, e.g. 42.1 — empty for a job without onetitel *: What has to be checkedbeschreibung: The job: what to doaenderung: The change it refers to (checkbox, commit, date)erkennung: How to tell the resultwer: betreiber | agent, default agentSet the state of a review job: offen, laeuft, erledigt (all in order) or befund (something is wrong). ergebnis holds what the check produced — a finding is never fixed silently, it becomes a checkbox in the responsible block. Every change in the activity log.
Rollen: Betreiber · verändert Daten
id *: Review job UUIDstand *: offen | laeuft | erledigt | befundergebnis: What the check producedbeleg: Commit, image or addressAll billable values as service applies them today: assistance (hourly rate, starting quota, commission), compensation per accompanied partial seal, credit per manually audited page, price and base per add-on service with release.
Rollen: Betreiber
Set billable value — same function as profile: gruppe assistenz (hourly € , quota quarter-hours, commission %), verguetung (active, accompaniment €), pruefer_person (page €) or zusatz (id, price € per page, base €). Validated with upper limits; add-on release and cash prices remain separate. Every change in activity log.
Rollen: Betreiber · verändert Daten
gruppe *: assistenz | verguetung | pruefer_person | zusatzid: For zusatz: menschlich | kanzlei | cyber | umsetzungshilfe | hostingstundensatz: Euro per hour, e.g., 100.00kontingent: Quarter-hours, e.g., 8provision: Percent, e.g., 20aktiv: Vergütung aktivbegleitung: Euro per partial sealseite: Euro per pagepreis: Euro per audited pagebasis: Base price in euro, empty = noneStatement on accessibility of audit case (EU model statement 2018/1523): latest version with status, numbers, gaps, address of hosted page, all versions, prefilled information and what is missing before publication.
Rollen: Betreiber, Agentur, Organisation
auftragId *: Audit caseGenerate new version of accessibility statement — from case's latest completed run and `angaben` (object like in erklaerung.stand: stelle, land, bundesland, kontaktName, kontaktEmail, kontaktTelefon, kontaktAnschrift, feedbackUrl, durchsetzungName/Url/Email, belastung[], ausserhalb[] per {inhalt, grund, alternative}, abhilfe, bestaetigung, veroeffentlichtAm, hilfsangebote). Missing information from previous version. Append-only: older versions preserved.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
auftragId *: Audit caseangaben: Angaben der Stelle (siehe Beschreibung); leer = Vorversionsprache: de or en (default: customer's language)HTML of a version of statement (without version: the latest) — for insertion into own system.
Rollen: Betreiber, Agentur, Organisation
auftragId *: Audit caseversion: Version number; empty = latestCreate a dossier: a shareable folder /vorschau/<token> showing euid pages, the sample case and own explanatory pages in the recipient's look. Recipient from zielkunde, anfrage or kunde (id) or free (name, email); art allgemein|hoster|organisation|agentur presets the entries; fristTage 0 = unlimited (default 30); optional passwort. Returns id, token and url once.
Rollen: Betreiber · verändert Daten
titel *: Title, 1–120 charactersart: allgemein, hoster, organisation or agenturempfaengerArt: zielkunde, anfrage, kunde or keinerempfaengerId: UUID of the recipient row (zielkunde, anfrage or audit customer)empfaengerName: Free recipient nameempfaengerEmail: Free recipient e-mailintro: Intro shown above the folder and in the mailfristTage: Days until expiry, 0 = unlimitedtheme: Optional look of the recipient: marke, logo_url, akzent, akzent_hell, akzent_kontrast, hintergrund, flaeche, text, rahmen, infobar (hex colours; contrast is checked, never the issuer)passwort: Optional password (6–200 characters), handed over separatelynotiz: Internal noteeintraege: Optional entries [{ art: seite|akte|eigen, pfad (euid path or case area), seiteId (library page), runId (real run of the recipient), titel, intro }]; omitted = preset of the art, [] = look onlySet or clear the recipient of an existing dossier: art kunde|zielkunde|anfrage with id, or keiner. Only with a recipient does a case entry show THEIR audit file instead of the sample one; entries carrying a real run of someone else are refused (fremd and unbekannt are the same answer).
Rollen: Betreiber · verändert Daten
dossierId *: Dossier UUIDart *: kunde, zielkunde, anfrage or keinerid: UUID of the recipient (not with keiner)name: Name, overrides the one on fileemail: Email, overrides the one on fileAll dossiers with counters: entries, views, accesses, last access, open comments; status aktiv|widerrufen|abgelaufen filter.
Rollen: Betreiber
status: aktiv, widerrufen or abgelaufenlimit: at most 500One dossier with its entries, comments and url (the token is derived server-side).
Rollen: Betreiber
dossierId *: Dossier UUIDReplace the entries of a dossier (ordered): [{ art: seite|akte|eigen, pfad, seiteId, runId, titel, intro, abschnitt }] — abschnitt groups the sidebar (e.g. "Das Produkt", "Der Kundenbereich", max 60 chars). A real run (runId) is accepted only when it belongs to the audit customer behind the recipient.
Rollen: Betreiber · verändert Daten
dossierId *: Dossier UUIDeintraege *: Entries in orderRevoke a dossier: the link answers 404 from now on. Idempotent.
Rollen: Betreiber · verändert Daten
dossierId *: Dossier UUIDSend the link by mail to the recipient (never to a target customer without inquiry, never the password); marks the dossier as sent.
Rollen: Betreiber · verändert Daten
dossierId *: Dossier UUIDComments of recipients across all dossiers, open ones first (anker.p = page of the comment); with antwort and erledigt:true a comment is answered and closed; with loeschen:true it is deleted.
Rollen: Betreiber · verändert Daten
kommentarId: Comment UUID to answerantwort: Answer texterledigt: true = answer and closeloeschen: true = delete the comment (also answered ones)limit: at most 1000Gallery of a dossier: with dossierId the images FROM THE AUDIT of the recipient (page screenshots per viewport and evidence images of the audit folder, per akte entry with a real run — nothing uploaded); without dossierId the library images of the page builder (Mig 363). With bildId and beschreibung/eintragId a library image is changed, with bildId and entfernen:true removed.
Rollen: Betreiber · verändert Daten
dossierId: Dossier UUID (omit for library images)bildId: Image UUID to change or removebeschreibung: New description (max 400 chars)eintragId: Entry UUID or empty string for the whole dossierentfernen: true = remove the image (row and file)Library of own explanatory pages (building-block JSON, @dignis/baukasten): list; with seite a page is created (seiteId omitted) or updated (new version). The page is validated against the euid building block set.
Rollen: Betreiber · verändert Daten
seiteId: Page UUID to updateseite: Page JSON { version: 1, id, titel, sprache, elemente: [{ id, typ, werte }] }limit: at most 500Propose a NEW criterion the service should measure in future (a new HTML element, an SEO condition, a legal requirement) — not bound to a case (for a wrong or missing measurement of one run use messung.melden). bereich = audit area code or unklar, titel, beschreibung (20–4000 chars), optional beispielSchlecht/beispielGut (source snippets), quelle (standard, law, vendor docs), begruendung. The operator reviews it; accepted proposals become candidates in the criteria library.
Rollen: Betreiber, Agentur, Organisation, Prüfende Person · verändert Daten
bereich *: Audit area code: a11y, dsgvo, seo, geo, indexierung, responsive, cwv, software — or unklartitel *: Short title (3–200 chars)beschreibung *: What should be measured and how it can be detected (20–4000 chars)beispielSchlecht: Source example: wrong (optional, ≤6000)beispielGut: Source example: right (optional, ≤6000)quelle: Standard, law, guideline or vendor documentation (optional)begruendung: Why it matters (optional)All criterion proposals with state and operator answer, filtered by stand (neu, in_pruefung, angenommen, abgelehnt, offen = neu+in_pruefung), limit (≤500).
Rollen: Betreiber
stand: neu, in_pruefung, angenommen, abgelehnt or offenlimit: at most 500Set the state of a criterion proposal along the state machine (neu → in_pruefung | angenommen | abgelehnt; in_pruefung → angenommen | abgelehnt; abgelehnt → in_pruefung; angenommen is final) with an answer to the proposer. angenommen requires kandidatKennung (lowercase id of the candidate in the library, becomes <bereich>:<kennung>); a proposal with bereich unklar cannot be accepted — answer and reject instead.
Rollen: Betreiber · verändert Daten
vorschlagId *: Proposal UUIDstand *: neu, in_pruefung, angenommen, abgelehntantwort: Answer to the proposer (≤4000 chars)kandidatKennung: Candidate id for angenommen (2–80 chars, lowercase)Criteria register: every single check of the service with its stable identifier WCE-YYYY-NNNNN (like a CVE id), audit area, source in the measurement core (<bereich>:<kennung>), name, state (reserviert = candidate, veroeffentlicht = measured since an engine version, zurueckgezogen = withdrawn with successor), references. Public data; filter by bereich, stand, suche, limit.
Rollen: Betreiber, Agentur, Organisation, Prüfende Person
bereich: Audit area codestand: reserviert, veroeffentlicht or zurueckgezogensuche: Text filter over identifier, source, namelimit: at most 5000One register entry by its identifier WCE-YYYY-NNNNN with its history (append-only).
Rollen: Betreiber, Agentur, Organisation, Prüfende Person
kennung *: WCE-YYYY-NNNNNReserve an identifier for a candidate criterion (operator): bereich, kennung (the future source id in the measurement core, lowercase), name, optional referenzen [{art norm|gesetz|doku|beispiel|sollfehler|quelle, titel, url https}], gemeldetVon, vorschlagId. Numbers are assigned sequentially per year under a lock; a source id is registered once.
Rollen: Betreiber · verändert Daten
bereich *: Audit area codekennung *: Source id in the measurement corename: Namereferenzen: ReferencesgemeldetVon: Reported by (optional)vorschlagId: Proposal UUID (optional)Set the state of a register entry (operator): veroeffentlicht (measured since engineVersion, default the current engine) or zurueckgezogen (until engineVersion, optional nachfolger WCE-…). reserviert → veroeffentlicht | zurueckgezogen; veroeffentlicht → zurueckgezogen; zurueckgezogen is final. Every change is recorded in the history.
Rollen: Betreiber · verändert Daten
kennung *: WCE-YYYY-NNNNNstand *: veroeffentlicht or zurueckgezogenengineVersion: Engine version, default currentnachfolger: Successor WCE-YYYY-NNNNN (for zurueckgezogen)Replace the references of a register entry and/or set its name (operator): referenzen [{art, titel, url}], name.
Rollen: Betreiber · verändert Daten
kennung *: WCE-YYYY-NNNNNreferenzen: References (replaces the list)name: NameReconcile the register with the criteria library (operator): every library criterion without an identifier gets one (veroeffentlicht since the current engine), deterministic order, idempotent. Returns what was assigned per audit area and the remaining gaps.
Rollen: Betreiber · verändert Daten
Library of audit criteria: every rule, WCAG criterion and finding code of the measurement core per audit area, with weight, topic, reason, impact and measure — code registers merged with the operator’s additions (pruef_kriterium_text). Optional bereich (a11y, seo, geo, dsgvo, indexierung, software, cwv, co2, responsive) and suche (full text). "—" means the source has nothing.
Rollen: Betreiber
bereich: Audit area code; omit for allsuche: Full-text filter over identifier, name, topic, reason, impact, measureAdd or replace the operator’s content for one criterion of the library — same function as the workplace form: thema, grund, auswirkung, massnahme (each replaces the code text while set; empty string resets to the code text), notiz (internal), beispiele (list of {titel, schlecht, gut, hinweis} — bad → good with source code), erfahrungen (list of {quelle, datum YYYY-MM-DD, text} from other websites or case files), grundlagen (additional measurement bases: quelltext, dom, netzwerk, kopfzeilen, fremddienst, sonde, mensch). Lists replace the stored list; empty list clears. The report (Prüfakte) and the task list read grund and massnahme from here first. Only identifiers the catalogue knows. Every change in activity log. [modifies data]
Rollen: Betreiber · verändert Daten
bereich *: Audit area codekennung *: Identifier as listed by kriterien.liste (rule id, WCAG number, finding code, responsive check)thema: Topicgrund: Why it is auditedauswirkung: Impact for the websitemassnahme: What to donotiz: Internal notebeispiele: Examples {titel, schlecht, gut, hinweis}erfahrungen: Experiences {quelle, datum, text}grundlagen: Additional bases (ids)Engine releases of the measurement core: version (YEAR.MONTH.N, as stored on every run), date, state (entwicklung, produktion), note, change list in register ids (neu, geaendert, zurueckgezogen). Newest first; the running production version is ENGINE_VERSION.
Rollen: Betreiber, Agentur, Organisation, Prüfende Person
Describe the next engine release (operator, state entwicklung): version (optional, default next in this month), datum (YYYY-MM-DD), notiz, aenderungen { neu, geaendert, zurueckgezogen } as register ids WCE-YYYY-NNNNN. A version must lie after the current production release.
Rollen: Betreiber · verändert Daten
version: YEAR.MONTH.N (optional)datum: YYYY-MM-DD (optional)notiz: Release noteaenderungen: { neu: [], geaendert: [], zurueckgezogen: [] }Change note and change list of a release in development (operator); a released version only takes a new note.
Rollen: Betreiber · verändert Daten
version *: YEAR.MONTH.Nnotiz: Release noteaenderungen: Replaces the change listRelease a version to production (operator). Requires the deployed code to carry this version (lib/seo/engine_version.ts), otherwise FREIGABE_VERSION. Register entries listed as neu become veroeffentlicht since this version, zurueckgezogen entries are withdrawn.
Rollen: Betreiber · verändert Daten
version *: YEAR.MONTH.NContribution vouchers of an audit customer (kundeId): ledger lines with reason mitwirkung (criterion proposed and measured, wrong measurement reported and fixed), each with amount, expiry and contribution key; plus the current rules (amounts per kind, quarterly cap, expiry months — 0 € until question 62 is answered).
Rollen: Betreiber
kundeId *: Audit customer UUIDDomain proofs of an audit customer: per domain status, method (dns, datei, manuell), verified at, valid until.
Rollen: Betreiber
kundeId *: Audit customer UUIDCreate (or return, stable) the domain proof token for (customer, domain): the value goes as DNS TXT record under dnsName or as the only line of the file at dateiPfad on the domain. Then call nachweis.pruefen.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDdomain *: Domain (host or https URL)Verify the domain proof, all ways in order: a confirmed account with an e-mail address at the domain (konto), the imprint of the website naming the customer firm (impressum), the whois registrant naming the firm (whois) — then the customer token as DNS TXT or file under /.well-known/. Success is stored at the customer with its evidence (valid for a limited time) and unlocks zertifikat.ausstellen; no way matching is { ok:false, gruende[] }, not an error.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDdomain *: Domain (host or https URL)Record a manual domain proof (written order, audit rules §7) with person and reason: operatorId = auth_user.id of the recording operator (taken from a personal access when omitted; the operator admin token must pass it), begruendung required.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDdomain *: Domain (host or https URL)begruendung *: Reason, e.g. written order of <date>operatorId: auth_user.id of the operator (Operator only; personal accesses take their own)Goodwill exemptions of a case: criterion key, further keys of the same matter, reason, granted/revoked. Active ones are excluded from the seal gates (score, departments, K.O.); the measured value stays visible.
Rollen: Betreiber
auftragId *: Case UUIDnurAktive: true: only active exemptions⚠ ISSUES A SEAL (indirectly): exempt ONE matter of a case from the seal assessment with a mandatory reason — key = criterion as in the study (<bereich>:<kennung>, e.g. a11y:2.1.2), weitere = further keys of the same matter in the same audit area (e.g. a11y:regel:a11y.tastaturfalle, ≤5), grund (20–2000 chars, shown openly in the file and on the verification page), meldungId (optional report it stems from). At most one active exemption per audit area; the score counts without the criterion (the measured value stays visible). [modifies data]
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDkey *: Criterion key <bereich>:<kennung>weitere: Further keys of the same matter, same audit areagrund *: Reason (20–2000 chars)meldungId: Report UUID this exemption stems from (optional)Revoke a goodwill exemption with a reason — the row stays as evidence, the criterion counts again. [modifies data]
Rollen: Betreiber · verändert Daten
auftragId *: Case UUIDkulanzId *: Exemption UUIDgrund: Reason for revokingInquiry database (organisation, agency, webhoster, interested) from /anfrage and /registrieren: stand (neu, kontakt, angelegt, abgelehnt, offen = neu+kontakt), limit (≤500). Interface: /dash/pruefservice/anfragen.
Rollen: Betreiber
stand: neu, kontakt, angelegt, abgelehnt or offenlimit: at most 500Set status and note of inquiry (neu, kunde, agentur, organisation, partner, werber, pruefer, abgelehnt) or create an audit customer from it with kunde:true (needs a website; status becomes kunde, agentur or organisation). Target customers are the operator's own address list — nothing writes there automatically.
Rollen: Betreiber · verändert Daten
anfrageId *: Inquiry UUIDstand: neu, kunde, agentur, organisation, partner, werber, pruefer, abgelehntnotiz: Operator notekunde: true: als Prüfkunden anlegen (braucht eine Website)Target customers (potential customers from lists) by filter: suche, land, branche, typ, quelle, prioritaet (A/B/C), sichtung (offen, gesichtet, interessant, vielleicht, nicht), mitEmail, mitWebsite, befoerdert, zielgruppeId, jeDomain, limit (≤500), offset. Interface: /dash/pruefservice/zielkunden.
Rollen: Betreiber
suche: Free text on name, city, postal code, email, domain, noteland: ISO-2branche: Industry (identifier)typ: Type (verband, kammer, gemeinde, firma …)quelle: Source of importprioritaet: A, B or Csichtung: offen, gesichtet, interessant, vielleicht, nichtmitEmail: nur mit / ohne E-MailmitWebsite: nur mit / ohne Websitebefoerdert: schon Prüfkunde (true) oder noch keiner (false)zielgruppeId: Only members of this target groupjeDomain: eine Zeile je Domainlimit: at most 500offset: Offsetcsv: true: den Filter als CSV-Text liefern (ohne Seitenbegrenzung)Count of target customer directory per country, industry, type, source, priority and totals (total, with email, with website, screened, interesting, audit customers) plus target groups.
Rollen: Betreiber
Import target customers: `eintraege` (objects with name, land, branche, typ, prioritaet, email, telefon, website, ort, plz, notiz, quelleKennung) or `csv` (text in format docs/marketing/zielgruppen.csv or BusinessScraper). Same (quelle, identifier) updates master data, screening and promotion remain. At most 5000 per call.
Rollen: Betreiber · verändert Daten
quelle *: List identifier (zielgruppen, herold, wko …)eintraege: Einträge als Objektecsv: CSV text as alternative to eintraegeScreen one target customer: sichtung 3 interessant, 2 vielleicht, 1 nicht, 0 back to unscreened; groesse klein/mittel/gross; notiz. Without id: next unscreened entry (filter like zielkunden.liste).
Rollen: Betreiber · verändert Daten
id: Target customer idsichtung: 3, 2, 1 or 0groesse: klein, mittel, grossnotiz: Screening noteland: Filter for next entrybranche: Filterquelle: Filterprioritaet: FilterMake target customer an audit customer — same path as onboarding (createKunde); needs website, final; same domain links to existing audit customer.
Rollen: Betreiber · verändert Daten
id *: Target customer idCreate target group (name, beschreibung) or fill (zielgruppeId + ids of target customers); without input, list of target groups with member count. A target group is a selection for mail, LinkedIn, procurement or Odoo lead import — never a mailing list.
Rollen: Betreiber · verändert Daten
name: Name of new target groupbeschreibung: Purpose of selectionzielgruppeId: Existing target groupids: Zielkunde-ids, die aufgenommen werdenStatus of consent of one email address for one purpose (newsletter): keine, offen (granted, confirmation pending), verfallen, aktiv, widerrufen. Only when aktiv may advertising go to that address.
Rollen: Betreiber
email *: Email addresszweck: Zweck (Vorgabe newsletter)All addresses with ACTIVE consent for one purpose — the only permitted source for a mailing list.
Rollen: Betreiber
zweck: Zweck (Vorgabe newsletter)Withdraw consent of an address (e.g. at person's request). Writes new line to chain; if no active or open consent, nothing happens. [modifies data]
Rollen: Betreiber · verändert Daten
email *: Email addresszweck: Zweck (Vorgabe newsletter)grund: Optional: why, in one sentenceOdoo integration: switch pruefservice.odoo, mailing list, whether access in vault is complete (url, db, benutzer, api_key) — never the values.
Rollen: Betreiber
Run Odoo synchronisation now (otherwise every 15 min via heartbeat): leads per audit customer, mailing contacts from active consent, withdrawals from Odoo as withdrawal back. Without switch or access, nothing runs. [modifies data]
Rollen: Betreiber · verändert Daten
Brevo integration (Mig 359): switch pruefservice.brevo, contact list id, whether the api key is in the vault (brevo/api_key) — never the key.
Rollen: Betreiber
Run Brevo synchronisation now (otherwise every 15 min via heartbeat): contacts into the list only from active consent, blacklist or list exit in Brevo as withdrawal back. Without switch, list or key, nothing runs. [modifies data]
Rollen: Betreiber · verändert Daten
Web push for the PWA (Mig 361): whether the VAPID pair is in the vault (pwa/vapid_public, vapid_private — never the keys), registered devices, last delivery.
Rollen: Betreiber
Send a test notification to every registered device of the operator (title, one sentence, link — no customer data). Says whether keys and devices exist and how many were reached. [sends notifications]
Rollen: Betreiber · verändert Daten
FreeFinance integration (Mig 360): switch pruefservice.freefinance, environment, mandant, whether access in vault is complete (client_id, client_secret, mandant) — never the values. WHMCS stays the invoicing circle; FreeFinance mirrors each WHMCS invoice as external document.
Rollen: Betreiber
Read-only probe of the FreeFinance access: token, mandant UUID, enabled modules, first customers and invoices. Nothing is written.
Rollen: Betreiber
Run FreeFinance synchronisation now (otherwise hourly via heartbeat): each paid payment with a WHMCS invoice becomes an external invoice WHMCS-<id> (date, net line, account and 20 % from the mandant), customer per audit customer found by e-mail or created from real master data. Without switch or access, nothing runs. [modifies data]
Rollen: Betreiber · verändert Daten
Switch a hand-over on or off — same function as the settings page: art odoo (CRM lead and mailing list), brevo (newsletter list) or freefinance (bookkeeping); aktiv plus liste (list id for odoo and brevo, omit to clear; none for freefinance). Access values stay in the vault (settings page or vault script); without them nothing runs. Every change in activity log. [modifies data]
Rollen: Betreiber · verändert Daten
art *: odoo | brevo | freefinanceaktiv *: on or offliste: List id (odoo mailing list, brevo list); omit to clearNext screen-reader task for machine of type vorlese: one completed run of full audit (last 60 days, no vault access) with up to 5 core pages, 30 minutes reserved. null if nothing pending.
Rollen: Betreiber · verändert Daten
maschineId *: Machine UUID (maschine.anmelden)Attach spoken text of page as evidence to run (append-only, once per run and page; only the machine that reserved run). Reports which pages of task are still open.
Rollen: Betreiber · verändert Daten
maschineId *: Machine UUIDrunId *: Run UUID from taskurl *: Page from taskzeilen *: gesprochene Zeilen (Text) in Reihenfolgewerkzeug: Optional: NVDA version, Guidepup, browserdauerMs: Optional: Reading duration in msScreen-reader status of a run: reservation, evidence per page with spoken text, what remains open.
Rollen: Betreiber
runId *: Run UUIDCreate MCP access for an audit customer. Response contains plaintext EXACTLY ONCE (prefix euid_mcp_); only digest stored. Role: defaults from customer type (agentur | organisation), narrower (tester) allowed, wider never. Customer access may create only for its own audit customer. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUID who owns the accessname *: Access name: 2–40 characters, a-z, 0-9, hyphenrolle: Optional: agentur | organisation | tester (Vorgabe aus der Kundenart)notiz: Optional: Purpose or computer, at most 500 charactersMCP accesses of an audit customer: name, role, created, last used, uses, revoked. Never plaintext.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Audit customer UUIDRevoke MCP access; takes effect immediately, row remains as evidence. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Audit customer UUIDzugangId *: Access UUID (from zugang.liste)Reassign the "created by" label of an MCP access ([37.45]; e.g. an automatic file token that recorded the operator's account). Display column only — fingerprint, role and scope stay. Operator only. [modifies data]
Rollen: Betreiber · verändert Daten
zugangId *: Access UUIDangelegtVon *: New "created by" text, e.g. an account e-mail or akte:automatischHook event catalogue: each subscribable type with area and text (filter allows types and prefixes like ticket.*).
Rollen: Betreiber, Agentur, Organisation
Create webhook for organisation: https address, optional event filter and name. Response contains secret EXACTLY ONCE (thereafter only in organisation's vault). Deliveries are signed (X-Euid-Signature: t=<unix>,v1=<hmac-sha256(secret, t.body)>). Customer access only for its own audit customer. [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation UUID (audit customer)url *: https address of recipientereignisse: Optional: Arten oder Präfixe (ticket.*); leer = alles Abonnierbarebezeichnung: Optional: Hook nameHooks of organisation: address, filter, active/paused, error sequence. Never secret.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Organisation UUIDTest delivery (event hook.test) to webhook immediately; response: status, HTTP code, duration, error.
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation UUIDhookId *: Hook UUIDDeliveries of webhook, newest first: event, status (wartet/ok/fehler/aufgegeben), attempts, HTTP code, duration, error.
Rollen: Betreiber, Agentur, Organisation
kundeId *: Organisation UUIDhookId *: Hook UUIDlimit: Optional: at most this many (default 50)Remove webhook (with secret in vault and deliveries). [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation UUIDhookId *: Hook UUIDResume paused webhook (error sequence to 0). [modifies data]
Rollen: Betreiber, Agentur, Organisation · verändert Daten
kundeId *: Organisation UUIDhookId *: Hook UUIDTasks of the agent manager (roadmap checkboxes with id [<block>.<n>]): state, risk class, evidence commit, block; filters block, stand, nurOffen. The roadmap file is the plan, the table is the runtime state.
Rollen: Betreiber
block: Block key, e.g. 24 or 6cstand: only this statenurOffen: exclude ausgeliefert and verworfenlimit: at most this many (1–2000, default 500)zielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoHistory of a task (append-only): created, changed, state, evidence, disappeared, back in plan — with agent, time and data. Newest first.
Rollen: Betreiber
kennung *: Task id [<block>.<n>], e.g. 24.2limit: at most this many history rows (1–1000, default 100)zielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoReconcile the roadmap of a target project (default: this repo, docs/TODOS-PROGRAMM.md + docs/AGENT-MANAGER-PROGRAMM.md) with the task table: create, update (title, block, checkbox, evidence), disappeared, back in plan — idempotent, every movement in the history. Refuses when ids are missing or duplicated (then tools/fahrplan_kennungen.mjs --schreiben).
Rollen: Betreiber · verändert Daten
wer: Agent triggering the import (session name)zielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoSet the state of a task — only along the state machine (frei → vergeben → in_arbeit → wartet_freigabe → gemerged → ausgeliefert; pausiert, blockiert, verworfen), with agent and optionally evidence and note. While a run holds the task, the claim token is required (TOKEN_NOETIG, FENCE_ALT for a superseded claim). ausgeliefert only with a commit hash that git cat-file -e confirms.
Rollen: Betreiber · verändert Daten
kennung *: Task id [<block>.<n>]stand *: the new stateagent *: Session name of the windowbeleg: Commit hashnotiz: Short reasontoken: Claim token from agenten.aufgaben.claim (required while a run holds the task)zielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoClaim a task for this window (agent = session name, sitzung = session id, pid): returns the claim token ONCE (art neu or uebernahme), sets in_arbeit, lease 30 minutes. Same identity again: art gleich, lease renewed, token stays with the holder. Another window with a valid lease: CLAIM_BELEGT. Expired lease: uebernahme — new run with fence+1, the old token is dead. Keep the token; heartbeat, release and stand require it.
Rollen: Betreiber · verändert Daten
kennung *: Task id [<block>.<n>]agent *: Session name of the window (ListAgents)sitzung: Session id (CLAUDE_CODE_SESSION_ID)pid: process id of the window, optionalzielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoRenew the lease of a claimed task (every 5 minutes while working). Requires the claim token; KEIN_RUN, FENCE_ALT, TOKEN_FALSCH or LEASE_ABGELAUFEN say why not.
Rollen: Betreiber · verändert Daten
kennung *: Task id [<block>.<n>]token *: Claim tokenzielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoGive a claimed task back: nach = wartet_freigabe (run abgeschlossen; work is committed, evidence = commit hash), frei, pausiert, blockiert or verworfen (run abgebrochen). Requires the claim token; the task loses its run and can be claimed again.
Rollen: Betreiber · verändert Daten
kennung *: Task id [<block>.<n>]token *: Claim tokennach *: state after the releaseergebnis: One line: what was done or why it stopsbeleg: Commit hashzielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoRuns: without kennung all running claims (who holds what until when); with kennung every run of that task, newest fence first, with predecessor on takeover.
Rollen: Betreiber
kennung: Task id [<block>.<n>], optionalzielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoActive emergency stops of the agent manager: global (agent null) or per agent, with reason, who and when. A stopped agent gets no claim, no heartbeat, no state change; deploy and migrations refuse while a global stop is active. verlauf:true lists lifted stops too.
Rollen: Betreiber
verlauf: include lifted stops (newest first, 50)Set an emergency stop — for one agent (agent = session name) or for all (agent empty). Reason is mandatory. An identical active stop is returned, not duplicated. [modifies data]
Rollen: Betreiber · verändert Daten
grund *: Why the stop is set — mandatorywer *: Who sets it (operator account or agent)agent: Session name of the agent to stop; empty = all agentsLift an active emergency stop by id, with who. [modifies data]
Rollen: Betreiber · verändert Daten
id *: Stop idwer *: Who lifts itGrant a human approval bound to an artefact: art (merge | deploy | ausnahme), commit hash (default: HEAD of the working copy), rules hash (SHA-256 of CLAUDE.md now, computed here), task version (fence of kennung, if given), who, reason. The approval expires by itself when commit, rules or task version differ. Rows are append-only; revoke with freigabe.widerruf. [modifies data]
Rollen: Betreiber · verändert Daten
art *: merge | deploy | ausnahmewer *: Who approvesgrund *: Reason — mandatorykennung: Task id [<block>.<n>], optional (binds the task version)artefaktHash: Commit hash 7–64 hex; default HEADApprovals, newest first; filters kennung and art. With pruefen:true also says whether a valid approval exists for art + artefaktHash (default HEAD) + current CLAUDE.md + task version, with the reasons if not (WIDERRUFEN, HASH_ABWEICHUNG, REGELN_GEAENDERT, VERSION_ALT, KEINE_FREIGABE).
Rollen: Betreiber
kennung: Task id, optionalart: only this kindpruefen: check validity for art + artefaktHashartefaktHash: Commit hash for the check; default HEADlimit: at most this many (1–1000, default 100)Revoke an approval by id, with who — final; the row stays. [modifies data]
Rollen: Betreiber · verändert Daten
id *: Approval idwer *: Who revokesCosts of the agent windows (K14: raw token counts are the truth, cents are a versioned calculation): rows per model answer with run, task id, agent, model, tokens, cache, cents, price version; sum per model. Filters kennung, runId, agent, stunden (hours back). jeAufgabe:true instead returns the totals per task id (null = shared, no single run held). Never per person — an agent is a window.
Rollen: Betreiber
kennung: Task id [<block>.<n>]runId: Run UUIDagent: Session name of the windowquelle: Billing source: 'abo' = window in the operator's subscription (cents are notional), 'api' = session with API key (real invoice; only these count against the cap)stunden: only the last N hourslimit: at most this many rows (1–5000, default 500)jeAufgabe: totals per task id over the last stunden (default 720)Create the round file (Runden-Akte, K16) for a task: collects task, run, rules snapshot (CLAUDE.md hash), environment, git before/after with diff, protocol, gates, approvals, token costs into var/runden/<kennung>/R-<n>/ with manifest (SHA-256 per file, Merkle root), index.html and an append-only row in agent_akte. Secret scan aborts on any key or password (C30). anweisung, ergebnis, uebergabe are the human texts. [modifies data]
Rollen: Betreiber · verändert Daten
kennung *: Task id [<block>.<n>]wer *: Who files it (session name or operator)runId: Run UUID, default: newest run of the taskvorher: Commit before the round (default HEAD~1)nachher: Commit after the round (default HEAD)anweisung: Instruction text (Markdown)ergebnis: Result text (Markdown)uebergabe: Handover text (Markdown)Round files (append-only register): task id, round, run, path, Merkle root, complete or not, who and when; optional filter kennung.
Rollen: Betreiber
kennung: Task id, optionalDecision register (ADR files docs/entscheidungen/E-<year>-<n>.md with an append-only ledger): newest version per id with status (vorgeschlagen | entschieden | ersetzt | abgelehnt), source, replaced-by. pruefen:true also compares files against the ledger and lists deviations.
Rollen: Betreiber
pruefen: also check file ↔ ledgerRecord a decision (ADR: title, context, decision, alternatives, consequences, source — an operator instruction from the conversation with its date, or an evaluation). Writes the file and ledger version 1; ersetzt marks the replaced decision. Status default entschieden; use vorgeschlagen when the operator has not decided yet. [modifies data]
Rollen: Betreiber · verändert Daten
titel *: Titlekontext *: Context — why the question came upentscheidung *: The decisionalternativen: Alternatives considered and why rejectedkonsequenzen: Consequences: guards, follow-upsquelle *: Source with date, e.g. "Betreiber 2026-09-16 10:54 (Doku-Gespräch)"status: default entschiedenersetzt: Id of the decision this one replaceswer *: Who records itSet the status of a decision (new file version + ledger row): entschieden, abgelehnt, vorgeschlagen. [modifies data]
Rollen: Betreiber · verändert Daten
kennung *: Decision id E-<year>-<n>status *: new statuswer *: Who sets itExceptions register (C38): a rule suspended for a limited time (at most 90 days). Default only the ones valid now; alle:true lists expired and lifted ones too.
Rollen: Betreiber
alle: include expired and liftedGrant an exception: which rule, why, until when (ISO, at most 90 days ahead), optionally the decision it belongs to. Gets id A-<year>-<n>. [modifies data]
Rollen: Betreiber · verändert Daten
regel *: The rule being suspendedgrund *: Why the rule is suspendedgiltBis *: Valid until (ISO date-time)wer *: Who grantsentscheidung: Decision id, optionalLift an exception before it expires — final. [modifies data]
Rollen: Betreiber · verändert Daten
kennung *: Exception id A-<year>-<n>wer *: Who lifts itRisk class of a task (C17: R0 docs · R1 code · R2 infra · R3 data · R4 production/security) with the gates and approvals it requires (C16: R2 merge, R3/R4 merge AND deploy). With risiko: set it — an agent may only raise, lowering needs betreiber:true; every change is logged with old/new.
Rollen: Betreiber · verändert Daten
kennung *: Task id [<block>.<n>]risiko: new risk class (optional)wer: Who sets it (session name or operator)betreiber: true = operator, may lower the classgrund: Reason, optionalzielprojekt: Target project id or name (agenten.zielprojekt.liste); default: this repoThe bundled question round for the operator: every open question of the roadmap with its autonomy class (1 = agent decides, default applies · 2 = default applies, work continues, operator is asked in this round · 3 = waits for the operator) and default, class 3 first. senden:true posts the round once per state (hash) into the documentation conversation on docs/TODOS-PROGRAMM.md.
Rollen: Betreiber · verändert Daten
senden: true = post the round into the documentation conversation (once per state)Audit export of one run (C36): ZIP of the round file under var/audit/ with checked manifest, the chain instruction → task → run → commit → gate → approval → deploy → health (each link belegt, fehlt, nicht-noetig or nicht-protokolliert) and a readable report; no secrets (scan before packing); SHA-256 and Merkle root in the append-only register.
Rollen: Betreiber · verändert Daten
kennung *: Task id [<block>.<n>]runde: round number, default the newestwer *: Who exports (session name or operator)Monthly pack (C37) for JJJJ-MM: changes on main, rule changes (CLAUDE.md), decisions, approvals, emergency stops, exceptions, rejected agent calls, costs, merge gates, round files, deliveries, deploy reports — figures with traffic light (gruen/gelb/rot with reasons) for management, every figure with its evidence; ZIP under var/audit/, append-only register.
Rollen: Betreiber · verändert Daten
monat *: Month JJJJ-MMwer *: Who exports (session name or operator)Audit exports (append-only register): kind run|monat, task and round or month, path, SHA-256 of the ZIP, Merkle root, size, chain complete or traffic light, who and when.
Rollen: Betreiber
art: kind, optionalkennung: Task id, optionalGoals of the agent manager (newest version each): id ziel-<slug>, version, status (vorgeschlagen|aktiv|pausiert|beendet), definition (measure, source script with hash, target, cadence, derivation, auto_claim, quota, budget, cooldown, hysteresis, stop conditions) and the latest measurement. With kennung: the measurements of that goal (append-only evidence with hash).
Rollen: Betreiber
kennung: Goal id ziel-<slug>, optional — returns its measurementsCreate a goal (version 1) or a new version of it: definition with kennung ziel-<slug>, titel, owner, messgroesse {name, einheit, richtung hoch|tief}, quelle {art: skript, pfad: tools/ziele/<name>.mjs}, sollwert, ableitung {titel, risikoklasse, anweisung, scope}; optional taktMinuten, autoClaim, quote, budgetCentsJeTag, abkuehlungMinuten, hysterese, stopp. The source hash is read from the file, never from the input. A change of target, measure or source is class 3 → the new version starts as vorgeschlagen (C73).
Rollen: Betreiber · verändert Daten
definition *: goal definition (see description)wer *: Who defines itstatus: initial status, optional (operator only)Set the status of a goal: aktiv (operator releases a proposed version), pausiert, beendet, vorgeschlagen — only the status moves, the definition never.
Rollen: Betreiber · verändert Daten
kennung *: Goal idstatus *: new statuswer *: Who sets itMeasure a goal now: runs its source script, checks the script hash against the goal version (changed = MESSUNG_UNGUELTIG, new version needed), writes the append-only evidence (value, source hash, tool version, hash). An empty measurement is an error, never evidence.
Rollen: Betreiber · verändert Daten
kennung *: Goal idwer *: Who measuresTarget projects of the agent manager: id, name, title, git root on this instance, roadmap files, rules file (hash base of approvals), gate commands, risk patterns, active, number of tasks in plan and open. The default project (this repo) comes first. With id or name: one project.
Rollen: Betreiber
zielprojekt: Project id or name, optionalCreate a target project: definition {name (slug, unique), titel, gitWurzel (absolute path on this instance or relative to the manager working copy), fahrplaene [{pfad relative .md, blockAusKennung}], regelnDatei (default CLAUDE.md), gates {typecheck|suite|build|health|migration_dry_run: command or URL}, risikoMuster [{klasse R0–R4, muster regex, grund}], aktiv}. Returns the id — link by id, never by name. [modifies data]
Rollen: Betreiber · verändert Daten
definition *: project definition (see description)wer *: Who creates itChange a target project by id: any of titel, gitWurzel, fahrplaene, regelnDatei, gates, risikoMuster, aktiv — the whole new definition is validated; the name never changes. [modifies data]
Rollen: Betreiber · verändert Daten
id *: Project id (uuid)felder *: fields to changewer *: Who changes itListet die Verhalten der Hilfe-Figur (Zeigen, Willkommen, …) mit ihrer Pose.
Rollen: Betreiber
includeInactive: Auch deaktivierte VerhaltenLegt ein Verhalten der Hilfe-Figur an oder ändert es (per key); pose ist eine der Figur-Posen.
Rollen: Betreiber · verändert Daten
key *: Schlüssel (a-z, 0-9, - und _)label *: Beschriftungpose *: Figur-Posedescription: Optional: wann das Verhalten auftrittorderIndex: Optional: Reihenfolgeactive: Optional: wählbarLöscht ein Verhalten der Hilfe-Figur per key.
Rollen: Betreiber · verändert Daten
key *: SchlüsselListet Hilfe-Punkte (die Sequenz einer Seite), optional nach portal und pageId gefiltert.
Rollen: Betreiber
portal: Optional: Portal (z. B. pruefung)pageId: Optional: Routenpfad der SeiteLegt einen einzelnen Hilfe-Punkt an.
Rollen: Betreiber · verändert Daten
portal *: PortalpageId: Routenpfad der SeiteorderIndex: ReihenfolgebehaviorKey: Verhalten (key); die Pose wird daraus abgeleitet, wenn pose fehltpose: Direkte Pose der Figurtext *: Was die Figur sagtsubtitle: Optional: UntertitelnoTarget: true = ohne Ziel (Begrüßung, keine Zeigelinie)pointX: Ziel, Bruchteil der Fensterbreite 0..1pointY: Ziel, Bruchteil der Fensterhöhe 0..1holdMs: Auto-Weiter nach ms (0 oder weg = manuell)travelMs: Geh-Dauer am Seil hin zu diesem Schritt (ms)speechDelayMs: Verzögerung bis zur Sprechblase (ms)bubbleX: Sprechblase, Bruchteil der Fensterbreite 0..1bubbleY: Sprechblase, Bruchteil der Fensterhöhe 0..1anchorWfId: data-wf-id des Elements, an dem der Punkt klebtanchorRelX: Versatz im Element 0..1anchorRelY: Versatz im Element 0..1figureAnchor: Lage der Sprechblase zum ZielactionType: Einfache Vorführ-Aktion (Ereignis euid:hilfe-demo)actionValue: Wert der Vorführ-Aktionactions: DOM-Operationen als Liste {op, selector, value, event, detail, class, attr}; op: click|set|toggle|dispatch|addClass|removeClass|setAttrÄndert einen Hilfe-Punkt per id (nur übergebene Felder).
Rollen: Betreiber · verändert Daten
id *: ID des Punktsactive: AktivorderIndex: ReihenfolgebehaviorKey: Verhalten (key); die Pose wird daraus abgeleitet, wenn pose fehltpose: Direkte Pose der Figurtext: Was die Figur sagtsubtitle: Optional: UntertitelnoTarget: true = ohne Ziel (Begrüßung, keine Zeigelinie)pointX: Ziel, Bruchteil der Fensterbreite 0..1pointY: Ziel, Bruchteil der Fensterhöhe 0..1holdMs: Auto-Weiter nach ms (0 oder weg = manuell)travelMs: Geh-Dauer am Seil hin zu diesem Schritt (ms)speechDelayMs: Verzögerung bis zur Sprechblase (ms)bubbleX: Sprechblase, Bruchteil der Fensterbreite 0..1bubbleY: Sprechblase, Bruchteil der Fensterhöhe 0..1anchorWfId: data-wf-id des Elements, an dem der Punkt klebtanchorRelX: Versatz im Element 0..1anchorRelY: Versatz im Element 0..1figureAnchor: Lage der Sprechblase zum ZielactionType: Einfache Vorführ-Aktion (Ereignis euid:hilfe-demo)actionValue: Wert der Vorführ-Aktionactions: DOM-Operationen als Liste {op, selector, value, event, detail, class, attr}; op: click|set|toggle|dispatch|addClass|removeClass|setAttrLöscht einen Hilfe-Punkt per id.
Rollen: Betreiber · verändert Daten
id *: ID des PunktsBaut die ganze Hilfe-Sequenz einer Seite in einem Aufruf: steps = geordnete Schritte; replace=true ersetzt die bestehende Sequenz.
Rollen: Betreiber · verändert Daten
portal *: PortalpageId *: Routenpfad der Seitereplace: true = bestehende Punkte dieser Seite vorher löschensteps *: Schritte in Reihenfolge; jeder wie bei punkte.anlegen (text, pose oder behaviorKey, pointX/Y, holdMs, …)Placement catalogue for advertisements: key, label, position (sidebar, content, inline), surfaces (wissen, site, kunden). Fixed vocabulary; a booking carries only the key.
Rollen: Betreiber
Advertising partners: type (system, partner, versicherung, extern), name, website, contact, state, embed module.
Rollen: Betreiber
Register an advertising partner. einbettungUrl (optional): https address of a POST-prefilled embed module (e.g. the cyber insurance consultation form).
Rollen: Betreiber · verändert Daten
art *: system | partner | versicherung | externname *: Name (2–120)website: DomainkontaktEmail: Contact e-maileinbettungUrl: https address of the embed module (POST form)notiz: NoteSet partner state: aktiv or gesperrt (a blocked partner delivers nothing).
Rollen: Betreiber · verändert Daten
partnerId *: Partner UUIDstand *: aktiv | gesperrtLink a partner to an audit customer (partner login, [37.8]): the customer then sees „Partnerdaten“ in its organisation menu. kundeId empty = unlink. One customer is at most one partner.
Rollen: Betreiber · verändert Daten
partnerId *: Partner UUIDkundeId: Audit customer UUID or emptyPartner page ([37.13], public /partner/<kuerzel> for backlinks): set the profile (titel, kurz, text, leistungen[], verweise[{titel,url}] ≤ 5 https links, standort, rahmen[] https origins allowed to embed the partner box, seite = optional page in @dignis/baukasten JSON format replacing text/leistungen/verweise) and/or its state (entwurf | veroeffentlicht) with the kuerzel. Publishing requires a kuerzel and a text; links are plain (no nofollow).
Rollen: Betreiber · verändert Daten
partnerId *: Partner UUIDprofil: Profile fields (optional)stand: entwurf | link (reachable by address only: not listed, noindex) | veroeffentlicht (optional)kuerzel: Address slug, only with stand (optional)Add an image to the partner page gallery: daten = base64 of a JPEG/PNG/WebP (the MCP body is limited to 256 KB, so keep the file under about 180 KB), alt = alternative text (required). Stored as WebP at our address, never remote. The partner needs a kuerzel and a linked audit customer.
Rollen: Betreiber · verändert Daten
partnerId *: Partner UUIDname: File name, e.g. team.jpgmime *: image/jpeg | image/png | image/webpdaten *: Base64 of the imagealt *: Alternative text (≤ 160)Remove an image from the partner page gallery by its id (the file stays in the archive).
Rollen: Betreiber · verändert Daten
partnerId *: Partner UUIDbildId *: Image id from profil.bilder[].idStatistics of one partner ([37.22]): per ad impressions and clicks (total, last 30 days), a 30-day daily series, inquiries (customer links at the partner, matched by its website) and closings per month, click rate. Aggregates only — no person, no IP.
Rollen: Betreiber
partnerId *: Partner UUIDAll advertisement bookings with partner, placement, creative, context, weight, period, state, impressions and clicks (daily aggregates, no persons).
Rollen: Betreiber
Book an advertisement: partnerId, platzierung (key from werbung.platzierungen), creative { eyebrow?, titel, text?, bild?, bildAlt?, ctaLabel, ctaHref } (https or own path only), kontext { themen?, bereiche?, seiten? } (empty = everywhere the placement allows), gewicht 1–100, von/bis ISO, stand (default entwurf). The renderer always labels it as an advertisement.
Rollen: Betreiber · verändert Daten
partnerId *: Partner UUIDplatzierung *: Placement keycreative *: Creativekontext: Context: themen[], bereiche[], seiten[]gewicht: 1–100von: ISO date/timebis: ISO date/timestand: entwurf | aktiv | pausiert | beendetSet booking state: entwurf | aktiv | pausiert | beendet. Only aktiv within its period is delivered.
Rollen: Betreiber · verändert Daten
werbungId *: Booking UUIDstand *: entwurf | aktiv | pausiert | beendetConsultation link of the cyber insurance partner for one audit customer: creates it via the partner API (master data prefilled, valid 30 days) or returns the valid one; neu:true forces a new one; senden:true e-mails it to the customer address. ⚠ Sends the master data of the customer to the partner.
Rollen: Betreiber · verändert Daten
kundeId *: Audit customer UUIDneu: Force a new linksenden: E-mail the link to the customerAll consultation sessions at the cyber insurance partner (customer area, public page, MCP): company, domain, contact, source, validity, mailed, feedback status.
Rollen: Betreiber
limit: max rows (default 200)Die Liste entsteht beim Bau der Seite aus lib/mcp/werkzeuge.ts und lib/mcp/rollen.ts;GET /api/mcp liefert sie als JSON. Zurück zu Automatisierung und MCP.
Geprüft. Für eine bessere digitale Zukunft.euid.com