[{"data":1,"prerenderedAt":507},["ShallowReactive",2],{"docs-navigation":3,"docs-\u002Fdocs\u002Fentwickler-einstieg\u002Foauth-app-registrieren":156,"docs-surround-\u002Fdocs\u002Fentwickler-einstieg\u002Foauth-app-registrieren":504},[4],{"title":5,"path":6,"stem":7,"children":8},"Start","\u002Fdocs","docs\u002F0.index",[9,10,28,54,80,126,152],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13,"children":14},"Erste Schritte","\u002Fdocs\u002Ferste-schritte","docs\u002F01.erste-schritte\u002F1.index",[15,16,20,24],{"title":11,"path":12,"stem":13},{"title":17,"path":18,"stem":19},"Erste Abfrage","\u002Fdocs\u002Ferste-schritte\u002Ferste-abfrage","docs\u002F01.erste-schritte\u002F2.erste-abfrage",{"title":21,"path":22,"stem":23},"Pläne und Abrechnung","\u002Fdocs\u002Ferste-schritte\u002Fabrechnung","docs\u002F01.erste-schritte\u002F3.abrechnung",{"title":25,"path":26,"stem":27},"Dashboard","\u002Fdocs\u002Ferste-schritte\u002Fdashboard","docs\u002F01.erste-schritte\u002F4.dashboard",{"title":29,"path":30,"stem":31,"children":32},"Leitfäden","\u002Fdocs\u002Fintegration-guides","docs\u002F02.integration-guides\u002F1.index",[33,34,38,42,46,50],{"title":29,"path":30,"stem":31},{"title":35,"path":36,"stem":37},"ChatGPT","\u002Fdocs\u002Fintegration-guides\u002Fchatgpt","docs\u002F02.integration-guides\u002F2.chatgpt",{"title":39,"path":40,"stem":41},"Claude","\u002Fdocs\u002Fintegration-guides\u002Fclaude","docs\u002F02.integration-guides\u002F3.claude",{"title":43,"path":44,"stem":45},"Gemini","\u002Fdocs\u002Fintegration-guides\u002Fgemini","docs\u002F02.integration-guides\u002F4.gemini",{"title":47,"path":48,"stem":49},"Copilot","\u002Fdocs\u002Fintegration-guides\u002Fcopilot","docs\u002F02.integration-guides\u002F5.copilot",{"title":51,"path":52,"stem":53},"Andere KI-Tools","\u002Fdocs\u002Fintegration-guides\u002Fandere-ki","docs\u002F02.integration-guides\u002F6.andere-ki",{"title":55,"path":56,"stem":57,"children":58},"Grundlagen","\u002Fdocs\u002Fgrundlagen","docs\u002F03.grundlagen\u002F1.index",[59,60,64,68,72,76],{"title":55,"path":56,"stem":57},{"title":61,"path":62,"stem":63},"Was ist ein Bodenrichtwert?","\u002Fdocs\u002Fgrundlagen\u002Fwas-ist-ein-bodenrichtwert","docs\u002F03.grundlagen\u002F2.was-ist-ein-bodenrichtwert",{"title":65,"path":66,"stem":67},"Richtig suchen","\u002Fdocs\u002Fgrundlagen\u002Frichtig-suchen","docs\u002F03.grundlagen\u002F3.richtig-suchen",{"title":69,"path":70,"stem":71},"Nutzungsart","\u002Fdocs\u002Fgrundlagen\u002Fnutzungsart","docs\u002F03.grundlagen\u002F4.nutzungsart",{"title":73,"path":74,"stem":75},"Ergebnis verstehen","\u002Fdocs\u002Fgrundlagen\u002Fergebnis-verstehen","docs\u002F03.grundlagen\u002F5.ergebnis-verstehen",{"title":77,"path":78,"stem":79},"Im Team arbeiten","\u002Fdocs\u002Fgrundlagen\u002Fim-team-arbeiten","docs\u002F03.grundlagen\u002F6.im-team-arbeiten",{"title":81,"path":82,"stem":83,"children":84},"API & Integration","\u002Fdocs\u002Fentwickler-einstieg","docs\u002F04.entwickler-einstieg\u002F1.index",[85,86,90,94,112,116,121],{"title":81,"path":82,"stem":83},{"title":87,"path":88,"stem":89},"Authentifizierung","\u002Fdocs\u002Fentwickler-einstieg\u002Fauthentication","docs\u002F04.entwickler-einstieg\u002F2.authentication",{"title":91,"path":92,"stem":93},"OAuth-App registrieren","\u002Fdocs\u002Fentwickler-einstieg\u002Foauth-app-registrieren","docs\u002F04.entwickler-einstieg\u002F3.oauth-app-registrieren",{"title":95,"path":96,"stem":97,"children":98},"REST API","\u002Fdocs\u002Fentwickler-einstieg\u002Frest-api","docs\u002F04.entwickler-einstieg\u002F4.rest-api\u002F1.index",[99,100,104,108],{"title":95,"path":96,"stem":97},{"title":101,"path":102,"stem":103},"GET \u002Fapi\u002Fbodenrichtwert","\u002Fdocs\u002Fentwickler-einstieg\u002Frest-api\u002Fbodenrichtwert","docs\u002F04.entwickler-einstieg\u002F4.rest-api\u002F2.bodenrichtwert",{"title":105,"path":106,"stem":107},"GET \u002Fapi\u002Fme","\u002Fdocs\u002Fentwickler-einstieg\u002Frest-api\u002Fme","docs\u002F04.entwickler-einstieg\u002F4.rest-api\u002F3.me",{"title":109,"path":110,"stem":111},"POST \u002Fapi\u002Fbodenwert","\u002Fdocs\u002Fentwickler-einstieg\u002Frest-api\u002Fbodenwert","docs\u002F04.entwickler-einstieg\u002F4.rest-api\u002F4.bodenwert",{"title":113,"path":114,"stem":115},"MCP Server","\u002Fdocs\u002Fentwickler-einstieg\u002Fmcp-server","docs\u002F04.entwickler-einstieg\u002F5.mcp-server",{"title":117,"path":118,"stem":119,"icon":120},"OpenAPI","\u002Fdocs\u002Fentwickler-einstieg\u002Fopenapi","docs\u002F04.entwickler-einstieg\u002F6.openapi","i-lucide-file-code-2",{"title":122,"path":123,"stem":124,"icon":125},"Fehler 451","\u002Fdocs\u002Fentwickler-einstieg\u002Ferror-451","docs\u002F04.entwickler-einstieg\u002F7.error-451","i-lucide-shield-alert",{"title":127,"path":128,"stem":129,"children":130},"Cookbooks","\u002Fdocs\u002Fcookbooks","docs\u002F05.cookbooks\u002F1.index",[131,132,136,140,144,148],{"title":127,"path":128,"stem":129},{"title":133,"path":134,"stem":135},"n8n","\u002Fdocs\u002Fcookbooks\u002Fn8n","docs\u002F05.cookbooks\u002F2.n8n",{"title":137,"path":138,"stem":139},"Python · pandas","\u002Fdocs\u002Fcookbooks\u002Fpython-pandas","docs\u002F05.cookbooks\u002F3.python-pandas",{"title":141,"path":142,"stem":143},"Excel · Power Query","\u002Fdocs\u002Fcookbooks\u002Fexcel-power-query","docs\u002F05.cookbooks\u002F4.excel-power-query",{"title":145,"path":146,"stem":147},"LangChain","\u002Fdocs\u002Fcookbooks\u002Flangchain","docs\u002F05.cookbooks\u002F5.langchain",{"title":149,"path":150,"stem":151},"Zapier · Make","\u002Fdocs\u002Fcookbooks\u002Fzapier-make","docs\u002F05.cookbooks\u002F6.zapier-make",{"title":153,"path":154,"stem":155},"Häufige Fragen","\u002Fdocs\u002Fhaeufige-fragen","docs\u002F06.haeufige-fragen",{"id":157,"title":91,"audience":158,"body":159,"description":497,"extension":498,"links":499,"meta":500,"navigation":501,"path":92,"seo":502,"stem":93,"__hash__":503},"docs\u002Fdocs\u002F04.entwickler-einstieg\u002F3.oauth-app-registrieren.md","developer",{"type":160,"value":161,"toc":485},"minimark",[162,175,180,247,251,356,366,370,377,380,384,387,398,408,412,419,423,444,448,480],[163,164,165,166,170,171,174],"p",{},"Eigene OAuth-Apps registrierst du im Dashboard — entweder für ",[167,168,169],"strong",{},"End-User-Logins"," (deine Kund:innen loggen sich mit ihrem bodenrichtwert.ai-Account in deine App ein) oder für ",[167,172,173],{},"Machine-to-Machine","-Zugriff im eigenen Namen.",[176,177,179],"h2",{"id":178},"wann-du-eine-oauth-app-brauchst","Wann du eine OAuth-App brauchst",[181,182,183,196],"table",{},[184,185,186],"thead",{},[187,188,189,193],"tr",{},[190,191,192],"th",{},"Fall",[190,194,195],{},"Lösung",[197,198,199,216,229],"tbody",{},[187,200,201,205],{},[202,203,204],"td",{},"Einmalige Abfragen aus eigenen Skripten \u002F n8n \u002F Excel",[202,206,207,210,211],{},[167,208,209],{},"API-Key"," reicht — siehe ",[212,213,215],"a",{"href":214},"\u002Fdocs\u002Fentwickler-einstieg\u002Fauthentication#weg-1-api-key-einfachster-weg","Authentifizierung · Weg 1",[187,217,218,221],{},[202,219,220],{},"Deine SaaS \u002F App lässt End-User Bodenrichtwerte abfragen, die Nutzung soll gegen den End-User zählen",[202,222,223,224,228],{},"OAuth-App mit ",[225,226,227],"code",{},"authorization_code"," (PKCE)",[187,230,231,234],{},[202,232,233],{},"Dein Server-Job, Cron, CI läuft im eigenen Namen",[202,235,223,236,239,240,243,244],{},[225,237,238],{},"client_credentials"," (M2M) — ",[167,241,242],{},"confidential"," Client mit ",[225,245,246],{},"client_secret",[176,248,250],{"id":249},"app-anlegen","App anlegen",[252,253,254,267,340],"ol",{},[255,256,257,258,262,263,266],"li",{},"Login → ",[212,259,261],{"href":260},"\u002Fdashboard\u002Fentwickler?tab=oauth-apps","Dashboard → OAuth-Apps"," → ",[167,264,265],{},"„Neue App\"",".",[255,268,269,270],{},"Felder ausfüllen:\n",[271,272,273,279,285,309,327],"ul",{},[255,274,275,278],{},[167,276,277],{},"Name"," (sichtbar im Consent-Dialog für End-User)",[255,280,281,284],{},[167,282,283],{},"Beschreibung"," (optional)",[255,286,287,290],{},[167,288,289],{},"Typ:",[271,291,292,303],{},[255,293,294,297,298,300,301,266],{},[225,295,296],{},"Confidential"," → Server-Backend mit ",[225,299,246],{},". Pflicht für ",[225,302,238],{},[255,304,305,308],{},[225,306,307],{},"Public"," → Mobile-App, SPA oder CLI. Nur PKCE, kein Secret.",[255,310,311,314,315],{},[167,312,313],{},"Grant-Types:"," mindestens einer aus:\n",[271,316,317,322],{},[255,318,319,321],{},[225,320,227],{}," → End-User-Login (Consent-Flow).",[255,323,324,326],{},[225,325,238],{}," → Server-zu-Server, nur für confidential Clients.",[255,328,329,332,333,335,336,339],{},[167,330,331],{},"Redirect-URIs"," (nur bei ",[225,334,227],{},"): HTTPS-URL(s), Localhost erlaubt, Fragmente (",[225,337,338],{},"#…",") nicht erlaubt.",[255,341,342,262,345,348,349,351,352,355],{},[167,343,344],{},"„App erstellen\"",[225,346,347],{},"client_id"," wird sofort angezeigt. Bei confidential Clients zusätzlich das ",[225,350,246],{}," — ",[167,353,354],{},"einmalig",", danach nie wieder sichtbar.",[357,358,360],"callout",{"icon":359},"i-lucide-shield",[163,361,362,363,365],{},"Trage ",[225,364,246],{}," direkt in deinen Secret-Manager ein (1Password, Doppler, GitHub Secrets, AWS Secrets Manager, Env-Variablen deines Hostings). Nie ins Git-Repo committen.",[176,367,369],{"id":368},"secret-rotieren","Secret rotieren",[163,371,372,373,376],{},"Verdacht auf Kompromittierung? Im Dashboard → OAuth-Apps → App öffnen → ",[167,374,375],{},"„Secret rotieren\"",". Das alte Secret wird sofort ungültig; das neue wird einmal angezeigt.",[163,378,379],{},"Danach alle Deployments auf das neue Secret aktualisieren — idealerweise in einem kurzen Wartungsfenster.",[176,381,383],{"id":382},"app-bearbeiten","App bearbeiten",[163,385,386],{},"Im Detail-Drawer änderst du:",[271,388,389,392,395],{},[255,390,391],{},"Name + Beschreibung",[255,393,394],{},"Redirect-URIs (hinzufügen \u002F entfernen)",[255,396,397],{},"Grant-Types (aktivieren \u002F deaktivieren)",[163,399,400,401,404,405,407],{},"Nicht änderbar: Typ (",[225,402,403],{},"public"," vs. ",[225,406,242],{},") — dafür eine neue App anlegen.",[176,409,411],{"id":410},"app-löschen","App löschen",[163,413,414,415,418],{},"Löschen widerruft ",[167,416,417],{},"sofort alle ausgestellten Access- und Refresh-Tokens"," dieser App — End-User müssen sich neu einloggen, M2M-Jobs können keine neuen Tokens mehr holen.",[176,420,422],{"id":421},"flows","Flows",[271,424,425,435],{},[255,426,427,430,431],{},[167,428,429],{},"End-User-Login (authorization_code + PKCE):"," siehe ",[212,432,434],{"href":433},"\u002Fdocs\u002Fentwickler-einstieg\u002Fauthentication#weg-2-oauth-20-mit-pkce-end-user-flow","Authentifizierung · Weg 2",[255,436,437,430,440],{},[167,438,439],{},"Server-zu-Server (client_credentials):",[212,441,443],{"href":442},"\u002Fdocs\u002Fentwickler-einstieg\u002Fauthentication#weg-3-client-credentials-m2m","Authentifizierung · Weg 3",[176,445,447],{"id":446},"nutzung-limits","Nutzung & Limits",[181,449,450,460],{},[184,451,452],{},[187,453,454,457],{},[190,455,456],{},"Grant-Type",[190,458,459],{},"Nutzung zählt gegen",[197,461,462,471],{},[187,463,464,468],{},[202,465,466],{},[225,467,227],{},[202,469,470],{},"End-User (dessen Monatslimit)",[187,472,473,477],{},[202,474,475],{},[225,476,238],{},[202,478,479],{},"App-Owner (dein Account)",[163,481,482,483,266],{},"Client-Credentials-Tokens können Plan-Limits deines Accounts überschreiten — achte darauf, dass dein Plan für die erwartete Last passt. Details: ",[212,484,21],{"href":22},{"title":486,"searchDepth":487,"depth":487,"links":488},"",3,[489,491,492,493,494,495,496],{"id":178,"depth":490,"text":179},2,{"id":249,"depth":490,"text":250},{"id":368,"depth":490,"text":369},{"id":382,"depth":490,"text":383},{"id":410,"depth":490,"text":411},{"id":421,"depth":490,"text":422},{"id":446,"depth":490,"text":447},"Eigene OAuth-Apps im Dashboard anlegen — für SaaS-End-User-Logins oder Server-zu-Server-Zugriff.","md",null,{},{"title":91},{"title":91,"description":497},"OhgPxJBlNtX8TP3FFbMdAS8Po_dLw8sY3yjMK2Mqmcg",[505,506],{"title":87,"path":88,"stem":89,"children":-1},{"title":95,"path":96,"stem":97,"children":-1},1785091389768]