PageSourceSearch

https://www.contract-ai.de/assets/ApiDocs-w46xPf2J.js

js contract-ai.de collected 2026-10-09 03:14:32 UTC 13,195 bytes, 56 lines download raw bytes

1import{j as e,m as d,bH as l,_ as h,Z as o,aS as x,s as j,a3 as u}from"./ui-vendor-Bx5ZS6-E.js";import{a as p}from"./react-vendor-CHzeZC6v.js";import{H as g}from"./index-CTjnQqyU.js";import"./utils-vendor-BCn5QfZZ.js";const m="_container_1h04l_39",_="_sidebar_1h04l_127",f="_content_1h04l_191",y="_header_1h04l_193",b="_headerIcon_1h04l_205",N="_title_1h04l_221",A="_subtitle_1h04l_241",B="_enterpriseBadge_1h04l_261",v="_section_1h04l_297",R="_link_1h04l_383",k="_featureList_1h04l_403",E="_infoBox_1h04l_439",I="_warningBox_1h04l_441",P="_codeBlock_1h04l_507",T="_codeHeader_1h04l_521",z="_language_1h04l_539",H="_copyButton_1h04l_555",K="_endpoint_1h04l_619",L="_endpointHeader_1h04l_633",D="_method_1h04l_651",S="_post_1h04l_675",C="_path_1h04l_679",F="_table_1h04l_701",V="_cta_1h04l_749",q="_ctaButton_1h04l_803",s={container:m,sidebar:_,content:f,header:y,headerIcon:b,title:N,subtitle:A,enterpriseBadge:B,section:v,link:R,featureList:k,infoBox:E,warningBox:I,codeBlock:P,codeHeader:T,language:z,copyButton:H,endpoint:K,endpointHeader:L,method:D,post:S,delete:"_delete_1h04l_677",path:C,table:F,cta:V,ctaButton:q},n=({code:i,language:r})=>{const[c,t]=p.useState(!1),a=()=>{navigator.clipboard.writeText(i),t(!0),setTimeout(()=>t(!1),2e3)};return e.jsxs("div",{className:s.codeBlock,children:[e.jsxs("div",{className:s.codeHeader,children:[e.jsx("span",{className:s.language,children:r}),e.jsx("button",{className:s.copyButton,onClick:a,children:c?e.jsxs(e.Fragment,{children:[e.jsx(j,{size:14}),"Kopiert!"]}):e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),"Kopieren"]})})]}),e.jsx("pre",{children:e.jsx("code",{children:i})})]})};function Z(){return e.jsxs(e.Fragment,{children:[e.jsxs(g,{children:[e.jsx("title",{children:"REST API-Dokumentation - Contract AI"}),e.jsx("meta",{name:"description",content:"Contract AI REST API-Dokumentation für Enterprise-Kunden"})]}),e.jsxs("div",{className:s.container,children:[e.jsxs("div",{className:s.sidebar,children:[e.jsx("h3",{children:"Inhaltsverzeichnis"}),e.jsxs("ul",{children:[e.jsx("li",{children:e.jsx("a",{href:"#introduction",children:"Einführung"})}),e.jsx("li",{children:e.jsx("a",{href:"#authentication",children:"Authentifizierung"})}),e.jsx("li",{children:e.jsx("a",{href:"#rate-limiting",children:"Rate Limiting"})}),e.jsxs("li",{children:[e.jsx("a",{href:"#endpoints",children:"Endpoints"}),e.jsxs("ul",{children:[e.jsx("li",{children:e.jsx("a",{href:"#get-contracts",children:"Liste Verträge"})}),e.jsx("li",{children:e.jsx("a",{href:"#post-contracts",children:"Vertrag hochladen"})}),e.jsx("li",{children:e.jsx("a",{href:"#get-contract",children:"Vertrag abrufen"})}),e.jsx("li",{children:e.jsx("a",{href:"#delete-contract",children:"Vertrag löschen"})}),e.jsx("li",{children:e.jsx("a",{href:"#get-analysis",children:"Analyse abrufen"})})]})]}),e.jsx("li",{children:e.jsx("a",{href:"#errors",children:"Fehlerbehandlung"})})]})]}),e.jsx("div",{className:s.content,children:e.jsxs(d.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.5},children:[e.jsxs("div",{className:s.header,children:[e.jsx(l,{size:48,className:s.headerIcon}),e.jsx("h1",{className:s.title,children:"Contract AI REST API"}),e.jsx("p",{className:s.subtitle,children:"Dokumentation für Enterprise-Kunden • Version 1.0.0"})]}),e.jsxs("div",{className:s.enterpriseBadge,children:[e.jsx(h,{size:16}),e.jsx("span",{children:"Enterprise-Feature • Erfordert API-Key"})]}),e.jsxs("section",{id:"introduction",className:s.section,children:[e.jsx("h2",{children:"Einführung"}),e.jsx("p",{children:"Die Contract AI REST API ermöglicht es Enterprise-Kunden, Contract AI programmatisch zu nutzen. Automatisiere Vertrags-Uploads, Analysen und integriere Contract AI in deine bestehenden Workflows."}),e.jsxs("div",{className:s.infoBox,children:[e.jsx(o,{size:20}),e.jsxs("div",{children:[e.jsx("strong",{children:"Base URL:"})," ",e.jsx("code",{children:"https://api.contract-ai.de/api/v1"})]})]}),e.jsx("h3",{children:"Features"}),e.jsxs("ul",{className:s.featureList,children:[e.jsx("li",{children:"Sichere API-Key Authentifizierung"}),e.jsx("li",{children:"Automatischer Vertrag-Upload & Analyse"}),e.jsx("li",{children:"Zugriff auf alle Analysen & Daten"}),e.jsx("li",{children:"Rate Limiting: 1000 Requests/Stunde (Enterprise)"}),e.jsx("li",{children:"RESTful Design & JSON Responses"})]})]}),e.jsxs("section",{id:"authentication",className:s.section,children:[e.jsx("h2",{children:"Authentifizierung"}),e.jsxs("p",{children:["Alle API-Requests benötigen einen gültigen API-Key. Erstelle einen API-Key in deinem ",e.jsx("a",{href:"/api-keys",className:s.link,children:"API-Keys Dashboard"}),"."]}),e.jsx("h3",{children:"Authorization Header"}),e.jsx(n,{language:"HTTP",code:"Authorization: Bearer sk_live_your_api_key_here"}),e.jsx("h3",{children:"Beispiel-Request (cURL)"}),e.jsx(n,{language:"bash",code:`curl https://api.contract-ai.de/api/v1/contracts \\
2  -H "Authorization: Bearer sk_live_your_api_key_here"`}),e.jsxs("div",{className:s.warningBox,children:[e.jsx("strong",{children:"⚠️ Wichtig:"}
2)," Teile deinen API-Key niemals öffentlich. Behandle ihn wie ein Passwort!"]})]}),e.jsxs("section",{id:"rate-limiting",className:s.section,children:[e.jsx("h2",{children:"Rate Limiting"}),e.jsx("p",{children:"API-Requests sind limitiert basierend auf deinem Subscription-Plan:"}),e.jsxs("table",{className:s.table,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Plan"}),e.jsx("th",{children:"Requests/Stunde"}),e.jsx("th",{children:"Max API-Keys"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"Business"})}),e.jsx("td",{children:"100"}),e.jsx("td",{children:"3"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("strong",{children:"Enterprise"})}),e.jsx("td",{children:"1000"}),e.jsx("td",{children:"5"})]})]})]}),e.jsx("h3",{children:"Rate Limit Headers"}),e.jsx(n,{language:"HTTP",code:`RateLimit-Limit: 1000
3RateLimit-Remaining: 999
4RateLimit-Reset: 1640995200`})]}),e.jsxs("section",{id:"endpoints",className:s.section,children:[e.jsx("h2",{children:"Endpoints"}),e.jsxs("div",{id:"get-contracts",className:s.endpoint,children:[e.jsxs("div",{className:s.endpointHeader,children:[e.jsx("span",{className:s.method,children:"GET"}),e.jsx("code",{className:s.path,children:"/contracts"})]}),e.jsx("p",{children:"Listet alle Verträge des authentifizierten Users."}),e.jsx("h4",{children:"Query Parameter"}),e.jsxs("table",{className:s.table,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Parameter"}),e.jsx("th",{children:"Typ"}),e.jsx("th",{children:"Beschreibung"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"limit"})}),e.jsx("td",{children:"integer"}),e.jsx("td",{children:"Anzahl Ergebnisse (default: 50, max: 100)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"offset"})}),e.jsx("td",{children:"integer"}),e.jsx("td",{children:"Pagination Offset (default: 0)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"folder"})}),e.jsx("td",{children:"string"}),e.jsx("td",{children:"Filter nach Ordner-ID (optional)"})]})]})]}),e.jsx("h4",{children:"Beispiel-Request"}),e.jsx(n,{language:"bash",code:`curl "https://api.contract-ai.de/api/v1/contracts?limit=10" \\
5  -H "Authorization: Bearer sk_live_your_api_key_here"`}),e.jsx("h4",{children:"Response"}),e.jsx(n,{language:"json",code:`{
6  "success": true,
7  "contracts": [
8    {
9      "id": "507f1f77bcf86cd799439011",
10      "filename": "Mietvertrag.pdf",
11      "contractType": "Mietvertrag",
12      "createdAt": "2025-01-20T12:00:00.000Z",
13      "folderId": null
14    }
15  ],
16  "pagination": {
17    "total": 42,
18    "limit": 10,
19    "offset": 0,
20    "hasMore": true
21  }
22}`})]}),e.jsxs("div",{id:"post-contracts",className:s.endpoint,children:[e.jsxs("div",{className:s.endpointHeader,children:[e.jsx("span",{className:`${s.method} ${s.post}`,children:"POST"}),e.jsx("code",{className:s.path,children:"/contracts"})]}),e.jsx("p",{children:"Lädt einen neuen Vertrag hoch und analysiert ihn optional."}),e.jsx("h4",{children:"Request Body (multipart/form-data)"}),e.jsxs("table",{className:s.table,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Parameter"}),e.jsx("th",{children:"Typ"}),e.jsx("th",{children:"Beschreibung"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"file"})}),e.jsx("td",{children:"file"}),e.jsxs("td",{children:[e.jsx("strong",{children:"Required:"})," PDF- oder DOCX-Datei (max 10MB)"]})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"folderId"})}),e.jsx("td",{children:"string"}),e.jsx("td",{children:"Optional: Ordner-ID"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"analyze"})}),e.jsx("td",{children:"boolean"}),e.jsx("td",{children:"Automatische Analyse (default: true)"})]})]})]}),e.jsx("h4",{children:"Beispiel-Request"}),e.jsx(n,{language:"bash",code:`curl -X POST "https://api.contract-ai.de/api/v1/contracts" \\
23  -H "Authorization: Bearer sk_live_your_api_key_here" \\
24  -F "file=@/path/to/contract.pdf" \\
25  -F "analyze=true"`}),e.jsx("h4",{children:"Response"}),e.jsx(n,{language:"json",code:`{
26  "success": true,
27  "message": "Vertrag erfolgreich hochgeladen",
28  "contract": {
29    "id": "507f1f77bcf86cd799439011",
30    "filename": "contract.pdf",
31    "createdAt": "2025-01-20T12:00:00.000Z"
32  },
33  "analysis": {
34    "contractType": "Kaufvertrag",
35    "overallScore": 85,
36    "summary": "Der Vertrag regelt den Kauf..."
37  }
38}`})]}),e.jsxs("div",{id:"get-contract",className:s.endpoint,children:[e.jsxs("div",{className:s.endpointHeader,children:[e.jsx("span",{className:s.method,children:"GET"}),e.jsx("code",{className:s.path,children:"/contracts/:id"})]}),e.jsx("p",{children:"Ruft einen einzelnen Vertrag ab."}),e.jsx("h4",{children:"Beispiel-Request"}),e.jsx(n,{language:"bash",code:`curl "https://api.contract-ai.de/api/v1/contracts/507f1f77bcf86cd799439011" \\
39  -H "Authorization: Bearer sk_live_your_api_key_here"`})]}),e.jsxs("div",{id:"delete-contract",className:s.endpoint,children:[e.jsxs("div",{className:s.endpointHeader,children:[e.jsx("span",{className:`${s.method} ${s.delete}`,children:"DELETE"}),e.jsx("code",{className:s.path,children:"/contracts/:id"})]}),e.jsx("p",{children:"Löscht einen Vertrag."}),e.jsx("h4",{children:"Beispiel-Request"}),e.jsx(n,{language:"bash",code:`curl -X DELETE "https://api.contract-ai.de/api/v1/contracts/507f1f77bcf86cd799439011" \\
40  -H "Authorization: Bearer sk_live_your_api_key_here"`})]}),e.jsxs("div",{id:"get-analysis",className:s.endpoint,children:[e.jsxs("div",{className:s.endpointHeader,children:[e.jsx("span",{className:s.method,children:"GET"}),e.jsx("code",{className:s.path,children:"/contracts/:id/analysis"})]}),e.jsx("p",{children:"Ruft die Analyse eines Vertrags ab."}),e.jsx("h4",{children:"Response"}),e.jsx(n,{language:"json",code:`{
41  "success": true,
42  "analysis": {
43    "contractType": "Kaufvertrag",
44    "overallScore": 85,
45    "risks": ["Keine Kündigungsfrist definiert"],
46    "suggestions": ["Klare Kündigungsklausel hinzufügen"],
47    "parties": ["Max Mustermann", "Firma GmbH"],
48    "keyTerms": ["Kaufpreis", "Lieferung", "Gewährleistung"],
49    "summary": "Der Vertrag regelt den Kauf..."
50  }
51}`})]})]}),e.jsxs("section",{id:"errors",className:s.section,children:[e.jsx("h2",{children:"Fehlerbehandlung"}),e.jsx("p",{children:"Die API verwendet Standard-HTTP-Statuscodes und gibt JSON-Fehler zurück:"}),e.jsxs("table",{className:s.table,children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Status"}),e.jsx("th",{children:"Bedeutung"})]})}),e.jsxs("tbody",{children:[e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"200"})}),e.jsx("td",{children:"Erfolg"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"400"})}),e.jsx("td",{children:"Ungültige Anfrage"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"401"})}),e.jsx("td",{children:"Unauthorized (ungültiger API-Key)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"403"})}),e.jsx("td",{children:"Forbidden (kein Enterprise-Plan)"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"404"})}),e.jsx("td",{children:"Nicht gefunden"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"429"})}),e.jsx("td",{children:"Rate Limit überschritten"})]}),e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("code",{children:"500"})}),e.jsx("td",{children:"Server-Fehler"})]})]})]}),e.jsx("h4",{children:"Beispiel-Error Response"}),e.jsx(n,{language:"json",code:`{
52  "success": false,
53  "message": "API-Key ungültig oder deaktiviert",
54  "error": "UNAUTHORIZED",
55  "docs": "/api-docs"
56}`})]}),e.jsxs("div",{className:s.cta,children:[e.jsx(x,{size:32}),e.jsx("h3",{children:"Bereit loszulegen?"}),e.jsx("p",{children:"Erstelle deinen ersten API-Key im Dashboard"}),e.jsx("a",{href:"/api-keys",className:s.ctaButton,children:"Zum API-Keys Dashboard"})]})]})})]})]})}export{Z as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.