Unternehmensanalyse-Briefing
Geben Sie eine Website und ein Ziel an und erhalten Sie ein strukturiertes Briefing zum Unternehmen, mit dem Ihr eigenes KI-Modell oder Ihr Team sofort arbeiten kann: was das Unternehmen verkauft und an wen, der Markt und die Sprache der Käufer, echte Wettbewerber, was Käufer in öffentlichen Diskussionen fragen und einwenden, sowie ein fertiges Playbook für das gewählte Ziel. Jede Sachangabe verweist auf den Beleg, aus dem sie stammt.
Ein Briefing dient genau einem Ziel:
focus | Ausgelegt für |
|---|---|
reddit_promotion | die Bewerbung des Unternehmens auf Reddit: relevante Communities, Suchanfragen, die passende Threads zutage fördern, Fragen und Einwände von Käufern, sichere Aussagen |
seo_web | die Bewerbung des Unternehmens in der Suche: kommerzielle Suchanfragen nach Suchintention, wer die Ergebnisse heute besetzt, Content-Lücken |
competitor_intel | die Analyse des Unternehmens als Wettbewerber: Positionierung, Preise, Funktionen, worüber sich seine Kunden beschweren |
Ein zweites Ziel für dasselbe Unternehmen ist eine zweite Anfrage. Innerhalb von 7 Tagen nutzt sie
das Einlesen der Website und das Unternehmensprofil aus dem ersten Briefing erneut; so startet sie
schneller, und beide Briefings beschreiben das Unternehmen gleich. Der Auftrag zeigt
"core_reused": true.
Die Unternehmensanalyse wird für einen Schlüssel auf Anfrage freigeschaltet: Schreiben Sie an support@omev.be. Das Briefing wird vom üblichen Guthaben des Schlüssels abgerechnet.
Tiefe und Preis
depth | Preis pro geliefertem Briefing | Was es enthält |
|---|---|---|
standard (Voreinstellung) | $0.99 | das Unternehmensbriefing ohne die Stimme der Zielgruppe: 3–6 Wettbewerber und die Standardsuche; die Abschnitte zur Käuferstimme sind als nicht enthalten markiert |
extended | $1.99 | alles aus standard, dazu die Stimme der Zielgruppe (bis zu 300 gelesene Käuferkommentare, bei kleinen Nischen ergänzt um Foren und weitere Quellen), 7–8 Wettbewerber und eine breitere Suche |
Sie zahlen einmal pro Briefing, beim ersten Herunterladen eines fertigen Ergebnisses, und zwar nach seiner Vollständigkeit:
| Vollständigkeit des Briefings | Berechnung |
|---|---|
| 75 % oder mehr | der volle Preis |
| 40–74 % | 70 % des Preises |
| 15–39 % | 30 % des Preises |
| unter 15 % | kostenlos |
Ein Teilbetrag wird auf ganze Cent abgerundet.
Der Auftrag zeigt completeness_percent und charged_usd. Ein fehlgeschlagenes Briefing, eine
Website, die wir nicht lesen können, ein abgebrochener Auftrag und wiederholte Downloads desselben
Briefings werden nicht berechnet. Ein Domain-Bericht enthält das erweiterte
Briefing zusammen mit der Recherche zu Communitys und KI-Sichtbarkeit.
Ein Briefing starten
curl -sS https://llmapi.omev.be/v1/cig/jobs/create \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://vessi.com",
"focus": "reddit_promotion",
"depth": "standard",
"client_ref": "acme-client-17",
"idempotency_key": "acme-17-vessi-reddit-2026-09"
}'
| Feld | Erforderlich | Bedeutung |
|---|---|---|
url | ja | die Website des Unternehmens; eine öffentliche http/https-Adresse |
focus | ja | einer der Werte reddit_promotion, seo_web, competitor_intel |
depth | nein | standard (Voreinstellung) oder extended |
market | nein | ein Land oder eine Region, zum Beispiel "US", oder eine Liste mit bis zu 10, zum Beispiel ["EU", "DE"] |
language | nein | ein Sprachcode wie "en" oder eine Liste mit bis zu 6, zum Beispiel ["en", "de"] |
voice | nein | in wessen Namen die vorgeschlagenen Antworten sprechen: brand (Voreinstellung) oder community_member; OmevAI veröffentlicht nie etwas |
max_age_days | nein | 1–1830; ältere Diskussionsthreads werden aus dem Playbook ausgelassen |
client_ref | nein | Ihre eigene Kennzeichnung für den Endkunden (Agenturen: Ausgaben pro Kunde aufschlüsseln) |
idempotency_key | nein | 8–200 Zeichen; bei Wiederholung wird derselbe Auftrag zurückgegeben, statt einen neuen zu starten |
callback_url | nein | eine öffentliche https-Adresse, die wir aufrufen, wenn das Briefing fertig ist (siehe Benachrichtigung) |
callback_secret | nein | 16–200 Zeichen; damit wird jede Benachrichtigung signiert |
Bevor ein Briefing startet, prüfen wir, ob das Guthaben Ihres Schlüssels seinen Preis deckt. Ist das
nicht der Fall, lautet die Antwort 402 INSUFFICIENT_BALANCE, und es wird nichts gestartet.
Die Antwort ist 202 mit dem Auftrag:
{
"job": {"id": "cig_…", "status": "queued", "stage": "", "focus": "reddit_promotion",
"depth": "standard", "client_ref": "acme-client-17", "charged_usd": 0},
"idempotent_replay": false,
"poll_after_seconds": 10
}
Viele Websites auf einmal
Senden Sie bis zu 50 Briefings in einem Aufruf. Jedes Element akzeptiert dieselben Felder wie ein einzelnes Briefing.
curl -sS https://llmapi.omev.be/v1/cig/jobs/batch \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{"url": "https://vessi.com", "focus": "reddit_promotion", "client_ref": "acme-17"},
{"url": "https://vessi.com", "focus": "seo_web", "client_ref": "acme-17"},
{"url": "https://allbirds.com", "focus": "competitor_intel", "client_ref": "acme-17",
"callback_url": "https://hooks.example.com/omev", "callback_secret": "a-long-random-secret"}
]
}'
Die Antwort ist 202 mit einem Eintrag pro Element, in derselben Reihenfolge. Ein fehlerhaftes
Element erhält ein eigenes error und hält die anderen nicht auf:
{
"items": [
{"index": 0, "job": {"id": "cig_…", "status": "queued", …}, "idempotent_replay": false},
{"index": 1, "job": {"id": "cig_…", "status": "queued", …}, "idempotent_replay": false},
{"index": 2, "error": {"code": "INVALID_URL", "message": "…"}}
],
"poll_after_seconds": 10
}
Das Guthaben muss alle gültigen Elemente zusammen decken; andernfalls gibt der Aufruf
402 INSUFFICIENT_BALANCE zurück, und kein Element wird gestartet. Zwei Ziele für dieselbe Website
in einem Aufruf teilen sich ein einziges Einlesen der Website.
Den Auftrag verfolgen
Ein standard-Briefing dauert 10–25 Minuten, ein extended-Briefing bis zu etwa einer Stunde:
Der Dienst liest die Website, führt Suchen durch, prüft Wettbewerber und liest Käuferdiskussionen.
Fragen Sie den Status alle 15–30 Sekunden ab.
curl -sS https://llmapi.omev.be/v1/cig/jobs/get \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{"job_id": "cig_…"}'
status ist queued, running und danach einer der Werte completed, partial, failed, cancelled.
Während der Ausführung zeigt stage, wo die Arbeit gerade steht, zum Beispiel site_read,
business_mix, profile_extract, research_plan, market_frame, competitors, search,
communities, audience, claim_verify, synthesis, thread_tone, moderation. Ein Briefing,
das ein früheres Einlesen der Website wiederverwendet, zeigt site_core_reused statt der ersten
drei. Betrachten Sie die Liste als Orientierung: Es können neue Schritte hinzukommen.
partial ist ein geliefertes Briefing, bei dem ein Teil nicht abgeschlossen wurde; der Grund steht in
evidence_base.limitations, und evidence_base.coverage.completeness zeigt jeden Abschnitt mit dem
Gefundenen, seinem Ziel und seinem Minimum. Bei failed gibt error.code die Ursache an, zum Beispiel
site_unreadable, wenn die Website automatisierte Zugriffe blockiert.
Um einen Auftrag abzubrechen, senden Sie denselben Body an /v1/cig/jobs/cancel.
Benachrichtigung, wenn ein Briefing fertig ist
Mit callback_url müssen Sie den Status nicht abfragen. Sobald der Auftrag completed, partial,
failed oder cancelled erreicht, senden wir einen POST an diese Adresse:
{"event": "cig.job.finished", "job": {"id": "cig_…", "status": "completed", …}}
| Header | Bedeutung |
|---|---|
X-Omev-Event-Id | die Auftrags-ID; damit können Sie wiederholte Zustellungen ignorieren |
X-Omev-Signature | sha256= und der hexadezimale HMAC-SHA256 des unveränderten Bodys, berechnet mit Ihrem callback_secret (nur gesendet, wenn Sie einen geheimen Schlüssel angegeben haben) |
Antworten Sie mit einem beliebigen 2xx-Status. Schlägt der Aufruf fehl, versuchen wir es noch
zweimal, nach 10 Sekunden und nach 60 Sekunden. Das Ergebnis steht in job.callback_status. Die
Benachrichtigung enthält nur den Auftrag; das Briefing laden Sie wie gewohnt über
/v1/cig/jobs/result herunter.
Prüfen Sie die Signatur, bevor Sie dem Body vertrauen:
import hashlib, hmac
def is_from_omev(raw_body: bytes, header: str, secret: str) -> bool:
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header or "")
Das Briefing herunterladen
curl -sS https://llmapi.omev.be/v1/cig/jobs/result \
-H "Authorization: Bearer $OMEV_API_KEY" \
-H "Content-Type: application/json" \
-d '{"job_id": "cig_…"}'
Die Antwort enthält job, profile (das vollständige Briefing) und stage1 (eine kurze
Zusammenfassung desselben Briefings mit zehn Feldern). Solange der Auftrag nicht abgeschlossen ist,
gibt der Aufruf 409 JOB_NOT_READY zurück.
Das Briefing hat neun Abschnitte:
| Abschnitt | Inhalt |
|---|---|
meta | Ziel, Tiefe, Ziel-URL, Markt, Erstellungszeitpunkt |
company | Produkt, Positionierung, Geschäftsmix, Funktionen, Angebot, Vertrauenssignale |
market | Käuferprofil (ICP), Marktrahmen, Keywords, Suchanfragen von Käufern |
problems | Probleme, die die Marke löst, Frustrationen in der Kategorie |
brand_perception | Beschwerden, Lob und Erwähnungen aus öffentlichen Quellen |
competition | Wettbewerber (direct, adjacent, status_quo) mit dem jeweiligen Grund, warum sie konkurrieren |
audience | Fragen, Einwände und Erwartungen von Käufern, wörtliche Käuferzitate |
playbook | der Plan für das Ziel: Communities, Suchanfragen, Botschaften, nächste Schritte, Leitplanken für Aussagen |
evidence_base | alle Quellen und Zitate, auf denen das Briefing beruht, Abdeckungszahlen, Einschränkungen |
Einträge enthalten evidence_ids, die auf evidence_base.evidence verweisen; dort hat jeder Eintrag
die Quell-url und das exakte quote. Aussagen sind als stated (vom Unternehmen selbst
angegeben), observed (in unabhängigen Quellen beobachtet) oder inferred (unsere Schlussfolgerung)
gekennzeichnet. Wenn Sie das Briefing an ein KI-Modell übergeben, weisen Sie es an, nur stated- und
observed-Einträge als Fakten darzustellen und niemals etwas zu verwenden, das in
playbook.reply_guardrails.do_not_claim aufgeführt ist.
Fehler
| Code | Wann |
|---|---|
401 | fehlender oder ungültiger API-Schlüssel |
402 INSUFFICIENT_BALANCE | das Guthaben des Schlüssels deckt das Briefing nicht (bzw. nicht alle gültigen Elemente eines Aufrufs für mehrere Websites) |
404 JOB_NOT_FOUND | unbekannter Auftrag oder ein Auftrag, der zu einem anderen Konto gehört |
409 JOB_NOT_READY | das Ergebnis wurde angefordert, bevor der Auftrag abgeschlossen war |
422 INVALID_URL | die Adresse ist keine öffentliche Website |
422 INVALID_FOCUS, 422 INVALID_DEPTH, 422 INVALID_VOICE | ein Wert außerhalb der oben genannten Listen |
422 INVALID_MARKET, 422 INVALID_LANGUAGE, 422 INVALID_MAX_AGE, 422 INVALID_IDEMPOTENCY_KEY | ein Feld außerhalb des zulässigen Bereichs: mehr als 10 Märkte, mehr als 6 Sprachcodes, ein Alter außerhalb von 1–1830 Tagen, ein Schlüssel außerhalb von 8–200 Zeichen |
422 INVALID_CALLBACK_URL, 422 INVALID_CALLBACK_SECRET | die Benachrichtigungsadresse ist keine öffentliche https-Adresse, oder der geheime Schlüssel hat nicht 16–200 Zeichen |
422 INVALID_REQUEST, 422 BATCH_TOO_LARGE | ein Aufruf für mehrere Websites ohne Elemente, mit einem Element, das kein Objekt ist, oder mit mehr als 50 Elementen |
429 | zu viele Anfragen; nach einer kurzen Pause erneut versuchen |
Jeder Fehler hat dieselbe Form: {"error": {"code": "INVALID_FOCUS", "message": "…"}}.
Ein 401 wegen eines falschen Schlüssels und ein 429 funktionieren bei allen OmevAI-APIs gleich; ihr
Format finden Sie unter Fehler.