Dossier Preview (read-only)
fyn_dossier_preview_2026_07Produkte, strukturierte Fakten und QuelldokumenteAPI-Dokumentation
Durchsuche, filtere und extrahiere belegte Produkt-Dossiers in einem strukturierten Aufruf – oder nutze die Archiv-API für Dokumentdetails, Run-Monitoring und kontrollierte Archivläufe.
POST /api/v1/dossiers/query
Authorization: Bearer fyn_dossier_preview_2026_07
{"filters":{"productTypes":["tagesgeld"]},
"select":{"fields":["interest"]}}Authentifizierung
Sende den Token im HTTP-Header. Lesende und schreibende Zugriffe sind bewusst getrennt, damit Integrationen nur die nötigen Rechte erhalten.
Dossier Preview (read-only)
fyn_dossier_preview_2026_07Produkte, strukturierte Fakten und QuelldokumenteLesender Zugriff
ARCHIVE_READ_TOKENSuche, Details, Runs und CapabilitiesSchreibender Zugriff
ARCHIVE_WRITE_TOKENNeue Archivläufe, Flue-Batches und Audit-Refreshes auslösenAuthorization: Bearer fyn_dossier_preview_2026_07Für AI Agents
POST /api/v1/dossiers/query durchsucht Produktnamen, Fakten, Werte, Belegzitate und Dokumenttitel. Typisierte Bedingungen wie gte filtern Zahlen direkt; mit select.fields kommt nur die benötigte Fakten-Projektion samt Quellenbeleg zurück.
GET /llms.txt
GET /api/v1/openapi.jsoncurl -X POST https://archive.fynfyn.com/api/v1/dossiers/query \
-H 'Authorization: Bearer fyn_dossier_preview_2026_07' \
-H 'Content-Type: application/json' \
-d '{
"filters": {
"productTypes": ["tagesgeld"],
"verifiedEvidenceOnly": true,
"conditions": [{
"field": "interest.baseRate",
"operator": "gte",
"value": 2
}]
},
"select": {
"fields": ["interest"],
"includeEvidence": true
}
}'Read-only Playground
Der Playground führt nur sichere GET-Anfragen aus. Der Token bleibt im Speicher dieser Seite und wird nicht gespeichert.
https://archive.fynfyn.com/api/v1/capabilitiesNoch keine Anfrage gesendet.Referenz
Die Beispiele verwenden die konfigurierte Archiv-Basis-URL dieser Umgebung. Pfadparameter wie fileId, documentId und runId ersetzt du durch IDs aus Such- oder Listen-Antworten.
/api/v1/healthPrüft, ob der Archivdienst erreichbar ist und die SQLite-Datenbank geöffnet werden kann.
curl -X GET 'https://archive.fynfyn.com/api/v1/health'const response = await fetch('https://archive.fynfyn.com/api/v1/health', {
headers: {}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"ok": true,
"service": "fynfyn.archive",
"sqlite": {
"path": "/app/apps/archive/data/archive.sqlite"
}
}/api/v1/capabilitiesLiefert erlaubte Dokumenttypen, Kategorien und die aktuellen API-Fähigkeiten.
curl -X GET 'https://archive.fynfyn.com/api/v1/capabilities' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/capabilities', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"schema": "fynfyn.archive.capabilities",
"version": 1,
"documentTypes": ["pdf", "html"],
"categories": ["preis_leistung", "agb", "entgeltinformation"],
"api": {
"readRequiresBearerToken": true,
"writeRequiresBearerToken": true,
"groupedFiles": true,
"legalAuditReviewFindings": true,
"legalAuditIssueRead": true,
"manualLegalAuditIssueAdjudication": true
}
}/api/v1/reports/legal-auditLiefert fuer einen Bank-Root den kanonischen Legal-Audit-Report mit Evidence-Readiness, Review-Aufteilung, Review-Worklist, publishable Findings und maschinenlesbarer Next Action.
rootUrlurlNeinRoot-URL des Bankauftritts. Ohne Wert wird der Commerzbank-Root verwendet.limitnumberNein1 bis 200, Standardwert 100.curl -X GET 'https://archive.fynfyn.com/api/v1/reports/legal-audit?rootUrl=https%3A%2F%2Fwww.commerzbank.de%2F&limit=50' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/reports/legal-audit?rootUrl=https%3A%2F%2Fwww.commerzbank.de%2F&limit=50', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"schema": "fynfyn.archive.legal-audit-report",
"readiness": {
"status": "needs_adjudication",
"readyForCustomer": false,
"nextAction": {
"kind": "run_adjudication_refresh",
"endpoint": "/api/v1/reports/legal-audit",
"protectedBy": "ARCHIVE_WRITE_TOKEN",
"dryRunBody": {
"rootUrl": "https://www.example-bank.de/",
"dryRun": true,
"adjudicateOnly": true,
"limit": 50
}
}
},
"totals": {
"publishableFindings": 12,
"rejectedFindings": 5,
"staleAdjudicationFindings": 4
},
"review": {
"findings": 3,
"documents": 2,
"lanes": [
{
"lane": "legal_or_pricing_decision",
"findings": 2,
"documents": 1,
"findingsBySeverity": {
"fehler": 0,
"warnung": 2,
"hinweis": 0
}
}
],
"items": [
{
"lane": "legal_or_pricing_decision",
"fileId": "afile_...",
"issueId": "issue_0_...",
"documentTitle": "Preis- und Leistungsverzeichnis",
"filename": "preis_leistungsverzeichnis.pdf",
"severity": "warnung",
"category": "preis_entgelt",
"title": "Unklare Entgeltgrundlage",
"page": 12,
"confidence": 0.6
}
]
},
"managementReadiness": {
"readyForCustomer": false,
"label": "Review erforderlich",
"summary": "1 Freigabe-Blocker; 3 offene Findings in 2 Dokumenten.",
"blockers": [
{
"kind": "finding_review",
"label": "Offene Findings brauchen visuelle oder fachliche Review.",
"documents": 2,
"findings": 3
}
]
},
"documents": []
}/api/v1/reports/legal-audit/rootsLiefert die Evidence-Readiness aller Bank-Roots mit Coverage, Totals und maschinenlesbarer Next Action fuer Automationen.
limitnumberNein1 bis 500, Standardwert 100.offsetnumberNeinPagination-Offset ab 0.rootUrlurl | url[]NeinOptional wiederholbar, um Readiness nur fuer bestimmte Roots abzurufen.qstringNeinRoot-, Domain-, Status- oder Next-Action-Suche.statusRootStatusNeinready, needs_audit, needs_adjudication, needs_visual_review, needs_scan, needs_extraction, critical_review, needs_review oder empty.actionablebooleanNeinWenn true, werden kundentaugliche Roots ausgeblendet.curl -X GET 'https://archive.fynfyn.com/api/v1/reports/legal-audit/roots?rootUrl=https%3A%2F%2Fwww.commerzbank.de%2F&status=needs_adjudication&actionable=1&limit=100' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/reports/legal-audit/roots?rootUrl=https%3A%2F%2Fwww.commerzbank.de%2F&status=needs_adjudication&actionable=1&limit=100', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"schema": "fynfyn.archive.legal-audit-roots",
"generatedAt": "2026-06-23T10:00:00.000Z",
"roots": [
{
"status": "needs_adjudication",
"actionable": true,
"nextAction": {
"kind": "run_adjudication_refresh",
"endpoint": "/api/v1/reports/legal-audit",
"protectedBy": "ARCHIVE_WRITE_TOKEN"
},
"coverage": {
"rootUrl": "https://www.example-bank.de/",
"importantDocuments": 18
},
"readiness": {
"status": "needs_adjudication",
"readyForCustomer": false,
"nextAction": {
"kind": "run_adjudication_refresh",
"endpoint": "/api/v1/reports/legal-audit",
"protectedBy": "ARCHIVE_WRITE_TOKEN"
}
},
"totals": {
"publishableFindings": 12,
"extractionOnlyFindings": 8,
"needsVisualReviewFindings": 3,
"rejectedFindings": 5
},
"review": {
"findings": 3,
"documents": 2,
"lanes": [
{
"lane": "visual_source_check",
"findings": 3,
"documents": 2
}
]
},
"managementReadiness": {
"readyForCustomer": false,
"label": "Review erforderlich",
"summary": "1 Freigabe-Blocker; 3 offene Findings in 2 Dokumenten."
}
}
],
"statusCounts": {
"ready": 12,
"needs_audit": 8,
"needs_adjudication": 5
},
"total": 1200,
"filteredTotal": 5,
"limit": 100,
"offset": 0
}/api/v1/reports/legal-audit/review-findingsLiefert eine globale zeilenweise Worklist fuer offene needs_visual_review-Findings. Mit lane=web_research_required werden nur Findings gelistet, die aktuelle Web-/Quellenpruefung brauchen.
limitnumberNein1 bis 500, Standardwert 100.offsetnumberNeinPagination-Offset ab 0.rootUrlurl | url[]NeinOptional wiederholbar, um Review-Findings auf bestimmte Roots zu begrenzen.laneneeds_visual_review | web_research_required | legal_or_pricing_decision | visual_source_check | likely_reject_low_value | semantic_source_check | allNeinStandardwert needs_visual_review; web_research_required filtert nur externe Recherchefaelle.qstringNeinSuche ueber Root, Dokument, Titel, Evidence und Review-Grund.curl -X GET 'https://archive.fynfyn.com/api/v1/reports/legal-audit/review-findings?lane=web_research_required&limit=25' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/reports/legal-audit/review-findings?lane=web_research_required&limit=25', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"schema": "fynfyn.archive.legal-audit-review-findings",
"items": [
{
"lane": "web_research_required",
"rootUrl": "https://www.example-bank.de/",
"fileId": "afile_...",
"issueId": "issue_0_...",
"issueIndex": 0,
"documentTitle": "Preis- und Leistungsverzeichnis",
"filename": "preise.pdf",
"page": 18,
"severity": "warnung",
"category": "pangv",
"title": "Bulgarien EUR/BGN gegen aktuellen Stand pruefen",
"needsWebResearch": true,
"webResearchReason": "Bulgaria EU, currency, or euro-area status is time-dependent and must be checked against official current sources.",
"decisionEndpoint": "/api/v1/files/afile_.../legal-audit-issues/issue_0_...",
"suggestedDryRunDecisions": {
"reject": {
"dryRun": true,
"evidenceOrigin": "visible_in_document",
"publishable": false,
"needsWebResearch": false
},
"publish": {
"dryRun": true,
"evidenceOrigin": "visible_in_document",
"publishable": true,
"needsWebResearch": false
}
}
}
],
"laneCounts": {
"needs_visual_review": 14,
"web_research_required": 3
},
"total": 14,
"nextOffset": 100
}/api/v1/files/{fileId}/legal-audit-issues/{issueId}Liest ein einzelnes Legal-Audit-Finding inklusive Review-Lane, Evidence, Web-Recherche-Status und Decision-Endpoint. Dient als sichere Vorstufe vor dryRun/apply.
fileIdpathJaArchiv-Datei-ID.issueIdpathJaFinding-ID aus der Worklist.curl -X GET 'https://archive.fynfyn.com/api/v1/files/afile_.../legal-audit-issues/issue_0_...' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/files/afile_.../legal-audit-issues/issue_0_...', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"schema": "fynfyn.archive.legal-audit-issue",
"finding": {
"lane": "web_research_required",
"fileId": "afile_...",
"issueId": "issue_0_...",
"title": "Bulgarien EUR/BGN gegen aktuellen Stand pruefen",
"needsWebResearch": true,
"decisionEndpoint": "/api/v1/files/afile_.../legal-audit-issues/issue_0_..."
},
"openForReview": true
}/api/v1/reports/legal-auditStartet oder dry-runt Full-Audits und Evidence-Refreshes fuer einen Root. Erst dryRun ausfuehren, dann applyBody aus der Report-Next-Action verwenden.
rootUrlurlNeinRoot-URL des Bankauftritts. Ohne Wert wird der Commerzbank-Root verwendet.dryRunbooleanNeinNur Ziele und Aktionen anzeigen.adjudicateOnlybooleanNeinNur bestehende Audits mit aktueller Evidence-Policy refreshen.missingOnlybooleanNeinNur fehlende oder fehlgeschlagene Full-Audits ausführen; bestehende Audits und Evidence-Refreshes auslassen.forcebooleanNeinFull-Audit erzwingen.limitnumberNein1 bis 50, Standardwert 10.maxChunkCharsnumberNeinChunkgroesse fuer Full-Audits, 10.000 bis 250.000 Zeichen.curl -X POST 'https://archive.fynfyn.com/api/v1/reports/legal-audit' \
-H 'Authorization: Bearer <ARCHIVE_WRITE_TOKEN>' \
-H 'Content-Type: application/json' \
--data '{
"rootUrl": "https://www.example-bank.de/",
"dryRun": true,
"adjudicateOnly": true,
"limit": 50
}'const response = await fetch('https://archive.fynfyn.com/api/v1/reports/legal-audit', {
method: 'POST',
headers: {
Authorization: 'Bearer <ARCHIVE_WRITE_TOKEN>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"rootUrl": "https://www.example-bank.de/",
"dryRun": true,
"adjudicateOnly": true,
"limit": 50
})
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"status": "ok",
"dryRun": true,
"requested": 5,
"audited": 0,
"adjudicated": 0,
"failed": 0,
"results": [
{
"fileId": "afile_...",
"status": "dry_run",
"action": "adjudication_refresh"
}
]
}/api/v1/files/{fileId}/legal-audit-issues/{issueId}Persistiert eine manuelle Review-Entscheidung fuer ein einzelnes Legal-Audit-Finding. Erst mit dryRun pruefen, dann dieselbe Entscheidung ohne dryRun anwenden.
evidenceOriginvisible_in_document | text_extraction_only | needs_visual_reviewJaManuell bestaetigter Evidence-Status des Findings.publishablebooleanNeinNur true, wenn das Finding im Dokument sichtbar und reportfaehig ist.confidencenumberNein0 bis 1. Veröffentlichbare Findings benötigen mindestens 0.7.rationalestringJaKurze Begruendung der Review-Entscheidung.needsWebResearchbooleanNeinAuf false setzen, wenn eine Web-Recherche mit offiziellen Quellen erledigt wurde.webResearchReasonstringNeinOptionaler verbleibender Recherchegrund, wenn das Finding offen bleibt.noiseReasonstringNeinOptional fuer Extraktionsartefakte.reviewerstringNeinOptionaler Reviewer-Alias.dryRunbooleanNeinVor dem Persistieren auf true setzen.curl -X POST 'https://archive.fynfyn.com/api/v1/files/afile_.../legal-audit-issues/issue_0_...' \
-H 'Authorization: Bearer <ARCHIVE_WRITE_TOKEN>' \
-H 'Content-Type: application/json' \
--data '{
"dryRun": true,
"evidenceOrigin": "visible_in_document",
"publishable": false,
"confidence": 0.9,
"rationale": "Manual visual review rejected this finding."
}'const response = await fetch('https://archive.fynfyn.com/api/v1/files/afile_.../legal-audit-issues/issue_0_...', {
method: 'POST',
headers: {
Authorization: 'Bearer <ARCHIVE_WRITE_TOKEN>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"dryRun": true,
"evidenceOrigin": "visible_in_document",
"publishable": false,
"confidence": 0.9,
"rationale": "Manual visual review rejected this finding."
})
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"status": "dry_run",
"fileId": "afile_...",
"issueId": "issue_0_...",
"issueIndex": 0,
"impact": {
"before": {
"publishable": 121,
"needsVisualReview": 52,
"rejected": 44
},
"after": {
"publishable": 121,
"needsVisualReview": 51,
"rejected": 45
}
}
}/api/v1/files/searchSucht gruppierte Dateien. Mehrfach gefundene Dokumente erscheinen als eine Datei mit Occurrence-Metriken.
qstringNeinVolltext- oder Titelsuche, maximal 200 Zeichen.rootUrlurlNeinNur Dateien aus einem bestimmten Root-Kontext.documentTypepdf | htmlNeinAuf PDF oder HTML einschränken.categoryArchiveDocumentCategoryNeinKategorie wie preis_leistung, agb oder entgeltinformation.sortlast_seen_desc | title_asc | root_url_count_descNeinSortierung der gruppierten Dateien.limitnumberNein1 bis 100, Standardwert 30.offsetnumberNeinPagination-Offset ab 0.curl -X GET 'https://archive.fynfyn.com/api/v1/files/search?q=girokonto&category=preis_leistung&limit=10' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/files/search?q=girokonto&category=preis_leistung&limit=10', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"files": [
{
"id": "file_...",
"title": "Preis- und Leistungsverzeichnis",
"documentType": "pdf",
"rootUrlCount": 4,
"downloadUrl": "https://archive.fynfyn.com/files/file_.../download"
}
],
"total": 42,
"limit": 10,
"offset": 0
}/api/v1/files/{fileId}Liefert eine gruppierte Datei, extrahierten Text und alle bekannten Fundstellen.
fileIdstringJaID der gruppierten Datei aus der Dateisuche.curl -X GET 'https://archive.fynfyn.com/api/v1/files/file_123' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/files/file_123', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"file": {
"id": "file_...",
"title": "Entgeltinformation",
"textUrl": "https://archive.fynfyn.com/files/file_.../text.txt"
},
"text": {
"extractionStatus": "extracted",
"text": "..."
},
"occurrences": []
}/api/v1/documents/searchSucht einzelne Dokumentfunde inklusive Run-, Quellen- und Versionsmetadaten.
qstringNeinVolltext- oder Titelsuche, maximal 200 Zeichen.rootUrlurlNeinNur Dokumente aus einem bestimmten Root-Kontext.documentTypepdf | htmlNeinAuf PDF oder HTML einschränken.categoryArchiveDocumentCategoryNeinKategorie wie bedingungen oder produktinformation.limitnumberNein1 bis 100, Standardwert 30.offsetnumberNeinPagination-Offset ab 0.curl -X GET 'https://archive.fynfyn.com/api/v1/documents/search?q=entgeltinformation&limit=10' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/documents/search?q=entgeltinformation&limit=10', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"documents": [
{
"id": "doc_...",
"runId": "run_...",
"fileId": "file_...",
"sourceUrl": "https://example.com/preise.pdf",
"category": "preis_leistung"
}
],
"total": 18,
"limit": 10,
"offset": 0
}/api/v1/documents/{documentId}Liefert ein einzelnes Dokument mit Download-URL, Text-URL, Extraktionsstatus und Versionshistorie.
documentIdstringJaDokument-ID aus der Dokumentensuche.curl -X GET 'https://archive.fynfyn.com/api/v1/documents/doc_123' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/documents/doc_123', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"document": {
"id": "doc_...",
"title": "AGB",
"downloadUrl": "https://archive.fynfyn.com/documents/doc_.../download"
},
"text": {
"extractionStatus": "extracted",
"text": "..."
},
"versions": [
{
"id": "doc_...",
"revisionNumber": 2,
"versionDate": "2026-02-01"
}
]
}/api/v1/runsLiefert die neuesten Archivläufe mit Status, Zeitstempeln, Filtern und Totals.
limitnumberNein1 bis 100, Standardwert 30.curl -X GET 'https://archive.fynfyn.com/api/v1/runs?limit=10' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/runs?limit=10', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"runs": [
{
"id": "run_...",
"rootUrl": "https://example-bank.de",
"status": "succeeded",
"totals": {
"discovered": 12,
"downloaded": 5
}
}
]
}/api/v1/runs/{runId}Liefert einen Archivlauf mit gefundenen Dokumenten und Discovery-Zeilen.
runIdstringJaRun-ID aus der Run-Liste oder aus einer Create-Run-Antwort.curl -X GET 'https://archive.fynfyn.com/api/v1/runs/run_123' \
-H 'Authorization: Bearer <ARCHIVE_READ_TOKEN>'const response = await fetch('https://archive.fynfyn.com/api/v1/runs/run_123', {
headers: {
Authorization: 'Bearer <ARCHIVE_READ_TOKEN>'
}
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"run": {
"id": "run_...",
"status": "succeeded"
},
"documents": [],
"discoveries": []
}/api/v1/runsLegt einen neuen Archivlauf an. Dieser Endpunkt wird absichtlich nicht im Playground ausgeführt.
rootUrlurlJaStart-URL des zu archivierenden Anbieterbereichs.allowedDomainsstring[]NeinErlaubte Hostnamen. Standard ist der Host der rootUrl.seedUrlsurl[]NeinZusätzliche Suchstartpunkte, z.B. Rechts-, AGB- oder Downloadseiten.documentTypes("pdf" | "html")[]NeinZu sammelnde Dokumenttypen.categoriesArchiveDocumentCategory[]NeinGesuchte Dokumentkategorien.knownDocuments{ url: string; title?: string }[]NeinBekannte Dokument-URLs, die direkt berücksichtigt werden.stopWhenCategoriesFoundArchiveDocumentCategory[]NeinKategorien, die im Lauf priorisiert werden. Archivläufe sammeln trotzdem weiter.maxDepthnumberNein0 bis 4, Standardwert 1.maxPagesnumberNein1 bis 500, Standardwert 80.curl -X POST 'https://archive.fynfyn.com/api/v1/runs' \
-H 'Authorization: Bearer <ARCHIVE_WRITE_TOKEN>' \
-H 'Content-Type: application/json' \
--data '{
"rootUrl": "https://www.example-bank.de",
"seedUrls": [
"https://www.example-bank.de/rechtliche-hinweise/"
],
"documentTypes": [
"pdf",
"html"
],
"categories": [
"preis_leistung",
"agb",
"entgeltinformation"
],
"maxDepth": 1,
"maxPages": 80
}'const response = await fetch('https://archive.fynfyn.com/api/v1/runs', {
method: 'POST',
headers: {
Authorization: 'Bearer <ARCHIVE_WRITE_TOKEN>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"rootUrl": "https://www.example-bank.de",
"seedUrls": [
"https://www.example-bank.de/rechtliche-hinweise/"
],
"documentTypes": [
"pdf",
"html"
],
"categories": [
"preis_leistung",
"agb",
"entgeltinformation"
],
"maxDepth": 1,
"maxPages": 80
})
})
if (!response.ok) throw new Error(await response.text())
const data = await response.json(){
"run": {
"id": "run_...",
"rootUrl": "https://example-bank.de",
"status": "pending",
"filters": {
"maxDepth": 1,
"maxPages": 80
}
}
}