[{"data":1,"prerenderedAt":467},["ShallowReactive",2],{"search-de":3,"content-de-api":4,"surround-de-\u002Fapi":460},[],{"id":5,"title":6,"body":7,"description":13,"extension":453,"meta":454,"navigation":455,"path":456,"seo":457,"stem":458,"__hash__":459},"content_de\u002F2.api\u002F1.index.md","API-Überblick",{"type":8,"value":9,"toc":444},"minimark",[10,14,19,22,39,42,51,55,62,71,79,83,86,112,116,177,181,184,213,228,304,349,353,364,392,395,399,406,409,429,440],[11,12,13],"p",{},"Owlat stellt authentifizierte API-Endpunkte unter Ihrer Convex-Site-URL bereit.",[15,16,18],"h2",{"id":17},"basis-url","Basis-URL",[11,20,21],{},"Verwenden Sie die URL Ihres Deployments:",[23,24,29],"pre",{"className":25,"code":26,"language":27,"meta":28,"style":28},"language-txt shiki shiki-themes github-light github-dark-dimmed","https:\u002F\u002F\u003Cyour-deployment>.convex.site\n","txt","",[30,31,32],"code",{"__ignoreMap":28},[33,34,37],"span",{"class":35,"line":36},"line",1,[33,38,26],{},[11,40,41],{},"Authentifizierte Endpunkte liegen derzeit unter:",[23,43,45],{"className":25,"code":44,"language":27,"meta":28,"style":28},"\u002Fapi\u002Fv1\u002F*\n",[30,46,47],{"__ignoreMap":28},[33,48,49],{"class":35,"line":36},[33,50,44],{},[15,52,54],{"id":53},"authentifizierung","Authentifizierung",[11,56,57,58,61],{},"Senden Sie Ihren API-Key im Header ",[30,59,60],{},"Authorization",":",[23,63,65],{"className":25,"code":64,"language":27,"meta":28,"style":28},"Authorization: Bearer lm_live_...\n",[30,66,67],{"__ignoreMap":28},[33,68,69],{"class":35,"line":36},[33,70,64],{},[11,72,73,74,78],{},"API-Keys werden unter ",[75,76,77],"strong",{},"Einstellungen → API"," erstellt.",[15,80,82],{"id":81},"sdks","SDKs",[11,84,85],{},"Verwenden Sie für serverseitige Integrationen ein offizielles SDK statt roher HTTP-Aufrufe:",[87,88,89,102],"ul",{},[90,91,92,97,98,101],"li",{},[93,94,96],"a",{"href":95},"\u002Fapi\u002Fsdk","TypeScript-SDK"," -- ",[30,99,100],{},"@owlat\u002Fsdk-js"," für Node.js, Bun und Deno",[90,103,104,97,108,111],{},[93,105,107],{"href":106},"\u002Fapi\u002Fsdk-java","Java-SDK",[30,109,110],{},"com.owlat:owlat-sdk"," für JVM-Anwendungen (Java 11+)",[15,113,115],{"id":114},"aktuelle-endpunktgruppen","Aktuelle Endpunktgruppen",[87,117,118,123,129,135,141,147,153,159,165,171],{},[90,119,120],{},[93,121,54],{"href":122},"\u002Fapi\u002Fauthentication",[90,124,125],{},[93,126,128],{"href":127},"\u002Fapi\u002Fcontacts","Kontakte-API",[90,130,131],{},[93,132,134],{"href":133},"\u002Fapi\u002Ftopics","Themen-API",[90,136,137],{},[93,138,140],{"href":139},"\u002Fapi\u002Fevents","Events-API",[90,142,143],{},[93,144,146],{"href":145},"\u002Fapi\u002Ftransactional","Transaktionale API",[90,148,149],{},[93,150,152],{"href":151},"\u002Fapi\u002Fforms","Formulare-API",[90,154,155],{},[93,156,158],{"href":157},"\u002Fapi\u002Fwebhooks","Webhooks",[90,160,161],{},[93,162,164],{"href":163},"\u002Fapi\u002Fwebhook-payloads","Webhook-Payloads",[90,166,167],{},[93,168,170],{"href":169},"\u002Fapi\u002Finbound-channels","Eingehende Kanäle",[90,172,173],{},[93,174,176],{"href":175},"\u002Fapi\u002Fpublic-endpoints","Öffentliche Endpunkte",[15,178,180],{"id":179},"antwortformat","Antwortformat",[11,182,183],{},"Die meisten Endpunkte liefern JSON in dieser Form zurück:",[23,185,189],{"className":186,"code":187,"language":188,"meta":28,"style":28},"language-json shiki shiki-themes github-light github-dark-dimmed","{\n  \"data\": {}\n}\n","json",[30,190,191,197,207],{"__ignoreMap":28},[33,192,193],{"class":35,"line":36},[33,194,196],{"class":195},"sYgZi","{\n",[33,198,200,204],{"class":35,"line":199},2,[33,201,203],{"class":202},"snmFh","  \"data\"",[33,205,206],{"class":195},": {}\n",[33,208,210],{"class":35,"line":209},3,[33,211,212],{"class":195},"}\n",[11,214,215,216,219,220,223,224,227],{},"Fehler verwenden das festgeschriebene Operation-Error-Envelope — eine für\nMenschen lesbare ",[30,217,218],{},"message",", eine geschlossene ",[30,221,222],{},"category"," und ein optionales\nObjekt ",[30,225,226],{},"data"," mit den Details:",[23,229,231],{"className":186,"code":230,"language":188,"meta":28,"style":28},"{\n    \"error\": {\n        \"category\": \"invalid_input\",\n        \"message\": \"Human readable message\",\n        \"data\": { \"field\": \"email\" }\n    }\n}\n",[30,232,233,237,245,260,273,293,299],{"__ignoreMap":28},[33,234,235],{"class":35,"line":36},[33,236,196],{"class":195},[33,238,239,242],{"class":35,"line":199},[33,240,241],{"class":202},"    \"error\"",[33,243,244],{"class":195},": {\n",[33,246,247,250,253,257],{"class":35,"line":209},[33,248,249],{"class":202},"        \"category\"",[33,251,252],{"class":195},": ",[33,254,256],{"class":255},"s-HuK","\"invalid_input\"",[33,258,259],{"class":195},",\n",[33,261,263,266,268,271],{"class":35,"line":262},4,[33,264,265],{"class":202},"        \"message\"",[33,267,252],{"class":195},[33,269,270],{"class":255},"\"Human readable message\"",[33,272,259],{"class":195},[33,274,276,279,282,285,287,290],{"class":35,"line":275},5,[33,277,278],{"class":202},"        \"data\"",[33,280,281],{"class":195},": { ",[33,283,284],{"class":202},"\"field\"",[33,286,252],{"class":195},[33,288,289],{"class":255},"\"email\"",[33,291,292],{"class":195}," }\n",[33,294,296],{"class":35,"line":295},6,[33,297,298],{"class":195},"    }\n",[33,300,302],{"class":35,"line":301},7,[33,303,212],{"class":195},[11,305,306,308,309,312,313,316,317,320,321,324,325,328,329,332,333,336,337,340,341,344,345,348],{},[30,307,222],{}," ist einer der folgenden Werte: ",[30,310,311],{},"unauthenticated"," (401), ",[30,314,315],{},"limit_reached"," (402),\n",[30,318,319],{},"forbidden"," (403), ",[30,322,323],{},"not_found"," (404), ",[30,326,327],{},"invalid_input"," (400), ",[30,330,331],{},"already_exists","\n(409), ",[30,334,335],{},"conflict"," (409), ",[30,338,339],{},"invalid_state"," (422), ",[30,342,343],{},"rate_limited"," (429),\n",[30,346,347],{},"internal"," (500).",[15,350,352],{"id":351},"cors","CORS",[11,354,355,356,359,360,363],{},"Private API-Endpunkte (",[30,357,358],{},"\u002Fapi\u002Fv1\u002F*",") werden über die Umgebungsvariable ",[30,361,362],{},"ALLOWED_ORIGINS"," eingeschränkt. Setzen Sie sie im Convex-Dashboard auf eine kommaseparierte Liste erlaubter Origins:",[23,365,369],{"className":366,"code":367,"language":368,"meta":28,"style":28},"language-bash shiki shiki-themes github-light github-dark-dimmed","npx convex env set ALLOWED_ORIGINS \"https:\u002F\u002Fapp.example.com,http:\u002F\u002Flocalhost:3000\"\n","bash",[30,370,371],{"__ignoreMap":28},[33,372,373,377,380,383,386,389],{"class":35,"line":36},[33,374,376],{"class":375},"sOLd2","npx",[33,378,379],{"class":255}," convex",[33,381,382],{"class":255}," env",[33,384,385],{"class":255}," set",[33,387,388],{"class":255}," ALLOWED_ORIGINS",[33,390,391],{"class":255}," \"https:\u002F\u002Fapp.example.com,http:\u002F\u002Flocalhost:3000\"\n",[11,393,394],{},"Öffentliche Endpunkte (Formulare, Abmeldung, Präferenzzentrum) erlauben alle Origins.",[15,396,398],{"id":397},"rate-limits","Rate Limits",[11,400,401,402,405],{},"Authentifizierte API-Anfragen sind auf ",[75,403,404],{},"10 Anfragen pro Sekunde"," je API-Key begrenzt.",[11,407,408],{},"Header:",[23,410,412],{"className":25,"code":411,"language":27,"meta":28,"style":28},"X-RateLimit-Limit\nX-RateLimit-Remaining\nX-RateLimit-Reset\n",[30,413,414,419,424],{"__ignoreMap":28},[33,415,416],{"class":35,"line":36},[33,417,418],{},"X-RateLimit-Limit\n",[33,420,421],{"class":35,"line":199},[33,422,423],{},"X-RateLimit-Remaining\n",[33,425,426],{"class":35,"line":209},[33,427,428],{},"X-RateLimit-Reset\n",[11,430,431,432,435,436,439],{},"Bei Überschreitung antworten die Endpunkte mit ",[30,433,434],{},"429"," und dem Header ",[30,437,438],{},"Retry-After",".",[441,442,443],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sYgZi, html code.shiki .sYgZi{--shiki-default:#24292E;--shiki-dark:#ADBAC7}html pre.shiki code .snmFh, html code.shiki .snmFh{--shiki-default:#005CC5;--shiki-dark:#8DDB8C}html pre.shiki code .s-HuK, html code.shiki .s-HuK{--shiki-default:#032F62;--shiki-dark:#96D0FF}html pre.shiki code .sOLd2, html code.shiki .sOLd2{--shiki-default:#6F42C1;--shiki-dark:#F69D50}",{"title":28,"searchDepth":199,"depth":199,"links":445},[446,447,448,449,450,451,452],{"id":17,"depth":199,"text":18},{"id":53,"depth":199,"text":54},{"id":81,"depth":199,"text":82},{"id":114,"depth":199,"text":115},{"id":179,"depth":199,"text":180},{"id":351,"depth":199,"text":352},{"id":397,"depth":199,"text":398},"md",{},true,"\u002Fapi",{"title":6,"description":13},"2.api\u002F1.index","EpAi7dIsvm93yf4FaJ31Ys3on3EaLY7Sf_YbShh8XzY",[461,465],{"title":462,"path":463,"stem":464,"children":-1},"Kontakte","\u002Fguide\u002Fcontacts","1.guide\u002F9.contacts",{"title":158,"path":157,"stem":466,"children":-1},"2.api\u002F10.webhooks",1786915099267]