[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fapi\u002Fendpoints\u002Flanding-page\u002Fgenerate-landing-page":3},{"_path":4,"title":5,"description":6,"navigation":7,"image":13,"head":18,"body":32},"\u002Fdocs\u002Fapi\u002Fendpoints\u002Flanding-page\u002Fgenerate-landing-page","Generate Landing Page (AI) API Endpoint · Waitlister Documentation","Generate a complete custom landing page — or edit an existing AI page — from a natural-language prompt with the Waitlister API.",{"title":8,"parent":9,"group":10,"description":11,"order":12},"Generate Landing Page (AI)","Endpoints","Advanced","Generate or edit a complete landing page with the AI builder via the API.",14,{"src":14,"width":15,"height":16,"alt":17},"https:\u002F\u002Ffirebasestorage.googleapis.com\u002Fv0\u002Fb\u002Fwaitinglist-app-c24fc.appspot.com\u002Fo\u002Fdocs-og-image.png?alt=media&token=85e60b24-c882-4f84-aa9e-ef85e1ae4bb5",400,300,"Waitlister API Generate Landing Page",{"meta":19},[20,23,26,29],{"name":21,"content":22},"keywords","ai landing page, generate landing page, ai page builder api, ai waitlist page",{"name":24,"content":25},"robots","index, follow",{"name":27,"content":28},"author","Waitlister",{"name":30,"content":31},"copyright","© 2026 Waitlister",{"type":33,"children":34,"toc":567},"root",[35,49,55,78,99,109,116,162,168,175,280,286,299,305,318,329,335,395,401],{"type":36,"tag":37,"props":38,"children":39},"element","p",{},[40],{"type":36,"tag":41,"props":42,"children":45},"span",{"className":43},[44],"secondary-heading",[46],{"type":47,"value":48},"text","API Reference \u002F Endpoints",{"type":36,"tag":50,"props":51,"children":53},"h1",{"id":52},"generate-landing-page-ai",[54],{"type":47,"value":8},{"type":36,"tag":37,"props":56,"children":57},{},[58,60,67,69,76],{"type":47,"value":59},"Generates a complete, custom-designed landing page from a natural-language prompt — the same ",{"type":36,"tag":61,"props":62,"children":64},"a",{"href":63},"\u002Fdocs\u002Fai-page-builder",[65],{"type":47,"value":66},"AI builder",{"type":47,"value":68}," the dashboard uses, with the same prompts, guardrails, and quality bar. With ",{"type":36,"tag":70,"props":71,"children":73},"code",{"className":72},[],[74],{"type":47,"value":75},"is_edit",{"type":47,"value":77},", it edits the existing AI page instead (\"change the headline\", \"make it dark\", …).",{"type":36,"tag":37,"props":79,"children":80},{},[81,83,89,91,97],{"type":47,"value":82},"The result is saved as a ",{"type":36,"tag":84,"props":85,"children":86},"strong",{},[87],{"type":47,"value":88},"draft",{"type":47,"value":90}," — review it in the dashboard or go live via ",{"type":36,"tag":61,"props":92,"children":94},{"href":93},"\u002Fdocs\u002Fapi\u002Fendpoints\u002Flanding-page\u002Fpublish-landing-page",[95],{"type":47,"value":96},"Publish Landing Page",{"type":47,"value":98},". The AI conversation is saved too, so the dashboard's AI chat picks up exactly where the agent left off.",{"type":36,"tag":37,"props":100,"children":101},{},[102,107],{"type":36,"tag":84,"props":103,"children":104},{},[105],{"type":47,"value":106},"Costs 1 AI credit per call",{"type":47,"value":108},", from the same balance as the dashboard AI builder (the free plan includes a few one-time credits; paid plans include monthly credits).",{"type":36,"tag":110,"props":111,"children":113},"h2",{"id":112},"endpoint-details",[114],{"type":47,"value":115},"Endpoint Details",{"type":36,"tag":117,"props":118,"children":119},"ul",{},[120,137,152],{"type":36,"tag":121,"props":122,"children":123},"li",{},[124,129,131],{"type":36,"tag":84,"props":125,"children":126},{},[127],{"type":47,"value":128},"URL",{"type":47,"value":130},": ",{"type":36,"tag":70,"props":132,"children":134},{"className":133},[],[135],{"type":47,"value":136},"https:\u002F\u002Fwaitlister.me\u002Fapi\u002Fv1\u002Fwaitlist\u002F{waitlistKey}\u002Flanding-page\u002Fgenerate",{"type":36,"tag":121,"props":138,"children":139},{},[140,145,146],{"type":36,"tag":84,"props":141,"children":142},{},[143],{"type":47,"value":144},"Method",{"type":47,"value":130},{"type":36,"tag":70,"props":147,"children":149},{"className":148},[],[150],{"type":47,"value":151},"POST",{"type":36,"tag":121,"props":153,"children":154},{},[155,160],{"type":36,"tag":84,"props":156,"children":157},{},[158],{"type":47,"value":159},"Timing",{"type":47,"value":161},": synchronous — typically 20–50 seconds",{"type":36,"tag":110,"props":163,"children":165},{"id":164},"request",[166],{"type":47,"value":167},"Request",{"type":36,"tag":169,"props":170,"children":172},"h3",{"id":171},"body-parameters",[173],{"type":47,"value":174},"Body Parameters",{"type":36,"tag":176,"props":177,"children":178},"table",{},[179,208],{"type":36,"tag":180,"props":181,"children":182},"thead",{},[183],{"type":36,"tag":184,"props":185,"children":186},"tr",{},[187,193,198,203],{"type":36,"tag":188,"props":189,"children":190},"th",{},[191],{"type":47,"value":192},"Parameter",{"type":36,"tag":188,"props":194,"children":195},{},[196],{"type":47,"value":197},"Type",{"type":36,"tag":188,"props":199,"children":200},{},[201],{"type":47,"value":202},"Required",{"type":36,"tag":188,"props":204,"children":205},{},[206],{"type":47,"value":207},"Description",{"type":36,"tag":209,"props":210,"children":211},"tbody",{},[212,240],{"type":36,"tag":184,"props":213,"children":214},{},[215,225,230,235],{"type":36,"tag":216,"props":217,"children":218},"td",{},[219],{"type":36,"tag":70,"props":220,"children":222},{"className":221},[],[223],{"type":47,"value":224},"prompt",{"type":36,"tag":216,"props":226,"children":227},{},[228],{"type":47,"value":229},"String",{"type":36,"tag":216,"props":231,"children":232},{},[233],{"type":47,"value":234},"Yes",{"type":36,"tag":216,"props":236,"children":237},{},[238],{"type":47,"value":239},"What to build or change, in natural language (max 2000 characters)",{"type":36,"tag":184,"props":241,"children":242},{},[243,251,256,261],{"type":36,"tag":216,"props":244,"children":245},{},[246],{"type":36,"tag":70,"props":247,"children":249},{"className":248},[],[250],{"type":47,"value":75},{"type":36,"tag":216,"props":252,"children":253},{},[254],{"type":47,"value":255},"Boolean",{"type":36,"tag":216,"props":257,"children":258},{},[259],{"type":47,"value":260},"No",{"type":36,"tag":216,"props":262,"children":263},{},[264,270,272,278],{"type":36,"tag":70,"props":265,"children":267},{"className":266},[],[268],{"type":47,"value":269},"true",{"type":47,"value":271}," edits the existing AI page instead of generating a fresh one. ",{"type":36,"tag":70,"props":273,"children":275},{"className":274},[],[276],{"type":47,"value":277},"409",{"type":47,"value":279}," when there is no AI page yet",{"type":36,"tag":169,"props":281,"children":283},{"id":282},"example-request",[284],{"type":47,"value":285},"Example Request",{"type":36,"tag":287,"props":288,"children":294},"pre",{"className":289,"code":291,"language":292,"meta":293},[290],"language-bash","curl -X POST \"https:\u002F\u002Fwaitlister.me\u002Fapi\u002Fv1\u002Fwaitlist\u002FWAITLIST_KEY\u002Flanding-page\u002Fgenerate\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -H \"X-Api-Key: wl_acct_your-account-api-key\" \\\n  -d '{ \"prompt\": \"Dark, bold, dev-tool aesthetic. Emphasize the CLI-first workflow.\" }'\n","bash","",[295],{"type":36,"tag":70,"props":296,"children":297},{"__ignoreMap":293},[298],{"type":47,"value":291},{"type":36,"tag":110,"props":300,"children":302},{"id":301},"response",[303],{"type":47,"value":304},"Response",{"type":36,"tag":169,"props":306,"children":308},{"id":307},"success-response-200",[309,311],{"type":47,"value":310},"Success Response ",{"type":36,"tag":70,"props":312,"children":315},{"className":313},[314],"inline-code-green",[316],{"type":47,"value":317},"200",{"type":36,"tag":287,"props":319,"children":324},{"className":320,"code":322,"language":323,"meta":293},[321],"language-json","{\n  \"success\": true,\n  \"data\": {\n    \"status\": \"draft\",\n    \"page_type\": \"ai\",\n    \"preview\": {\n      \"title\": \"Ship faster from your terminal\",\n      \"description\": \"A dark, bold dev-tool landing page\",\n      \"style\": \"bold\",\n      \"primary_color\": \"#22d3ee\"\n    },\n    \"credits_remaining\": 4,\n    \"note\": \"Draft updated — review at https:\u002F\u002Fwaitlister.me\u002Fwaitlist\u002Fmy-product\u002Flanding-page or publish via POST \u002Fapi\u002Fv1\u002Fwaitlist\u002F{waitlistKey}\u002Flanding-page\u002Fpublish\"\n  }\n}\n","json",[325],{"type":36,"tag":70,"props":326,"children":327},{"__ignoreMap":293},[328],{"type":47,"value":322},{"type":36,"tag":169,"props":330,"children":332},{"id":331},"after-generating",[333],{"type":47,"value":334},"After Generating",{"type":36,"tag":37,"props":336,"children":337},{},[338,340,345,347,353,355,361,363,369,371,377,379,385,387,393],{"type":47,"value":339},"The page is now an ",{"type":36,"tag":84,"props":341,"children":342},{},[343],{"type":47,"value":344},"AI page",{"type":47,"value":346},": structured copy fields on ",{"type":36,"tag":61,"props":348,"children":350},{"href":349},"\u002Fdocs\u002Fapi\u002Fendpoints\u002Flanding-page\u002Fupdate-landing-page",[351],{"type":47,"value":352},"Update Landing Page",{"type":47,"value":354}," return ",{"type":36,"tag":70,"props":356,"children":359},{"className":357},[358],"inline-code-red",[360],{"type":47,"value":277},{"type":47,"value":362}," (the copy lives inside the generated page) — make copy changes with another ",{"type":36,"tag":70,"props":364,"children":366},{"className":365},[],[367],{"type":47,"value":368},"generate",{"type":47,"value":370}," call using ",{"type":36,"tag":70,"props":372,"children":374},{"className":373},[],[375],{"type":47,"value":376},"is_edit: true",{"type":47,"value":378},". ",{"type":36,"tag":70,"props":380,"children":382},{"className":381},[],[383],{"type":47,"value":384},"theme",{"type":47,"value":386}," and ",{"type":36,"tag":70,"props":388,"children":390},{"className":389},[],[391],{"type":47,"value":392},"seo",{"type":47,"value":394}," can still be PATCHed normally.",{"type":36,"tag":169,"props":396,"children":398},{"id":397},"error-responses",[399],{"type":47,"value":400},"Error Responses",{"type":36,"tag":176,"props":402,"children":403},{},[404,419],{"type":36,"tag":180,"props":405,"children":406},{},[407],{"type":36,"tag":184,"props":408,"children":409},{},[410,415],{"type":36,"tag":188,"props":411,"children":412},{},[413],{"type":47,"value":414},"Status Code",{"type":36,"tag":188,"props":416,"children":417},{},[418],{"type":47,"value":207},{"type":36,"tag":209,"props":420,"children":421},{},[422,444,461,478,499,516,533,550],{"type":36,"tag":184,"props":423,"children":424},{},[425,434],{"type":36,"tag":216,"props":426,"children":427},{},[428],{"type":36,"tag":70,"props":429,"children":431},{"className":430},[358],[432],{"type":47,"value":433},"400",{"type":36,"tag":216,"props":435,"children":436},{},[437,439],{"type":47,"value":438},"Missing or over-long ",{"type":36,"tag":70,"props":440,"children":442},{"className":441},[],[443],{"type":47,"value":224},{"type":36,"tag":184,"props":445,"children":446},{},[447,456],{"type":36,"tag":216,"props":448,"children":449},{},[450],{"type":36,"tag":70,"props":451,"children":453},{"className":452},[358],[454],{"type":47,"value":455},"401",{"type":36,"tag":216,"props":457,"children":458},{},[459],{"type":47,"value":460},"Missing or invalid API key \u002F waitlist key",{"type":36,"tag":184,"props":462,"children":463},{},[464,473],{"type":36,"tag":216,"props":465,"children":466},{},[467],{"type":36,"tag":70,"props":468,"children":470},{"className":469},[358],[471],{"type":47,"value":472},"402",{"type":36,"tag":216,"props":474,"children":475},{},[476],{"type":47,"value":477},"Insufficient AI credits — the message names the remaining balance",{"type":36,"tag":184,"props":479,"children":480},{},[481,489],{"type":36,"tag":216,"props":482,"children":483},{},[484],{"type":36,"tag":70,"props":485,"children":487},{"className":486},[358],[488],{"type":47,"value":277},{"type":36,"tag":216,"props":490,"children":491},{},[492,497],{"type":36,"tag":70,"props":493,"children":495},{"className":494},[],[496],{"type":47,"value":75},{"type":47,"value":498}," passed but no AI page exists yet",{"type":36,"tag":184,"props":500,"children":501},{},[502,511],{"type":36,"tag":216,"props":503,"children":504},{},[505],{"type":36,"tag":70,"props":506,"children":508},{"className":507},[358],[509],{"type":47,"value":510},"429",{"type":36,"tag":216,"props":512,"children":513},{},[514],{"type":47,"value":515},"Rate limit exceeded (2\u002Fmin)",{"type":36,"tag":184,"props":517,"children":518},{},[519,528],{"type":36,"tag":216,"props":520,"children":521},{},[522],{"type":36,"tag":70,"props":523,"children":525},{"className":524},[358],[526],{"type":47,"value":527},"502",{"type":36,"tag":216,"props":529,"children":530},{},[531],{"type":47,"value":532},"Generation failed upstream — safe to retry",{"type":36,"tag":184,"props":534,"children":535},{},[536,545],{"type":36,"tag":216,"props":537,"children":538},{},[539],{"type":36,"tag":70,"props":540,"children":542},{"className":541},[358],[543],{"type":47,"value":544},"504",{"type":36,"tag":216,"props":546,"children":547},{},[548],{"type":47,"value":549},"Generation timed out (rare) — retry with a simpler prompt; a credit may still have been consumed",{"type":36,"tag":184,"props":551,"children":552},{},[553,562],{"type":36,"tag":216,"props":554,"children":555},{},[556],{"type":36,"tag":70,"props":557,"children":559},{"className":558},[358],[560],{"type":47,"value":561},"503",{"type":36,"tag":216,"props":563,"children":564},{},[565],{"type":47,"value":566},"The landing-page API is temporarily disabled",{"title":293,"searchDepth":568,"depth":568,"links":569},3,[570,572,576],{"id":112,"depth":571,"text":115},2,{"id":164,"depth":571,"text":167,"children":573},[574,575],{"id":171,"depth":568,"text":174},{"id":282,"depth":568,"text":285},{"id":301,"depth":571,"text":304,"children":577},[578,580,581],{"id":307,"depth":568,"text":579},"Success Response 200",{"id":331,"depth":568,"text":334},{"id":397,"depth":568,"text":400}]