# PiratePage > AI-powered landing page generator. Create conversion-optimized landing pages programmatically. PiratePage solves "homepage paralysis" — answer 9 questions about your product, get a complete homepage blueprint with sections, headlines, and copy based on proven conversion copywriting principles. Ready in 5 minutes. ## Core Pages - [Homepage](https://piratepage.cc/): Product overview and signup - [Landing Page Examples](https://piratepage.cc/examples): Annotated landing page breakdowns - [Copywriting Principles](https://piratepage.cc/principles): The 12 conversion copywriting principles - [Section Components](https://piratepage.cc/components): All landing page section types with variants - [AI Usability Test](https://piratepage.cc/ai-usability-test): Free tool to test any landing page with 5 AI personas - [Updates](https://piratepage.cc/updates): Product changelog - [API Reference](https://piratepage.cc/docs/api): Full REST API documentation ## API Base URL: https://piratepage.cc/api/v1 Auth: Bearer token — `Authorization: Bearer pp_live_...` Get API keys: https://piratepage.cc/api-keys (Agency plan) ### Quick Start 1. Create project: POST /projects { name } → { id, homepageId } 2. Save wizard answers: PUT /projects/{id}/pages/{pageId}/wizard { answers } 3. Generate: POST /projects/{id}/pages/{pageId}/generate → { sections, shareUrl } 4. Get share URL: POST /projects/{id}/pages/{pageId}/share → { shareUrl } ### Endpoints #### Projects - GET /projects — List all projects - POST /projects — Create project; body: { name, description?, url?, language?, knowledgeBase? }; returns { id, homepageId } - GET /projects/{id} — Get project detail (includes knowledgeBase) - PATCH /projects/{id} — Update project - DELETE /projects/{id} — Delete project #### Knowledge Base - GET /projects/{id}/knowledge — Get knowledge base markdown - PUT /projects/{id}/knowledge — Update; body: { markdown } (max 50KB) - POST /projects/{id}/knowledge/extract — AI extract from URL; body: { url?, context? } #### Pages - GET /projects/{id}/pages — List pages (includes shareUrl) - POST /projects/{id}/pages — Create page; body: { name, parentId? } - GET /projects/{id}/pages/{pageId} — Get page with sections (JSON) - GET /projects/{id}/pages/{pageId}?format=markdown — Get page as markdown - GET /projects/{id}/pages/{pageId}?format=html — Get page as semantic HTML - PATCH /projects/{id}/pages/{pageId} — Update page name - DELETE /projects/{id}/pages/{pageId} — Delete page - POST /projects/{id}/pages/{pageId}/duplicate — Duplicate page - PUT /projects/{id}/pages/reorder — Batch reorder; body: { pages: [{ id, order, parentId }] } #### Wizard - PUT /projects/{id}/pages/{pageId}/wizard — Save answers; body: { answers, language? } - POST /projects/{id}/pages/{pageId}/wizard/extract — AI extract from URL/text; body: { url?, context? } #### Generation - POST /projects/{id}/pages/{pageId}/generate — Generate from wizard answers; body: { feedback? }; returns { sections, generationChoices, shareUrl, durationMs } - POST /projects/{id}/pages/{pageId}/share — Get/create share URL → { shareToken, shareUrl } #### Sections - PUT /projects/{id}/pages/{pageId}/sections — Replace all sections - POST /projects/{id}/pages/{pageId}/sections/add — Add section; body: { type, content?, insertAt? } - PATCH /projects/{id}/pages/{pageId}/sections/{sectionId} — Edit content; body: { content } - DELETE /projects/{id}/pages/{pageId}/sections/{sectionId} — Delete section - POST /projects/{id}/pages/{pageId}/sections/{sectionId}/move — Move; body: { direction: "up"|"down" } - POST /projects/{id}/pages/{pageId}/sections/{sectionId}/duplicate — Duplicate section - POST /projects/{id}/pages/{pageId}/sections/{sectionId}/reprompt — AI reprompt; body: { instruction } #### Variations - POST /projects/{id}/pages/{pageId}/sections/{sectionId}/variations/generate — Generate 5 tone variations - GET /projects/{id}/pages/{pageId}/sections/{sectionId}/variations — List variations - PUT /projects/{id}/pages/{pageId}/sections/{sectionId}/variations/{variationId} — Pick/discard/restore; body: { action } - DELETE /projects/{id}/pages/{pageId}/sections/{sectionId}/variations/{variationId} — Delete variation - DELETE /projects/{id}/pages/{pageId}/sections/{sectionId}/variations — Delete all variations ### Section Types hero, features-grid, features-list, testimonials, pricing, faq, social-proof, stats, cta, text-block, pain, how-it-works, results, comparison-table, showcase, news, code-sample, founder-story, statement, screenshot ### Variation Tones punchy, conversational, benefit-focused, problem-aware, bold-confident ### Errors Format: { error: { code, message } } - VALIDATION (400) — Bad input - NOT_FOUND (404) — Resource not found - PLAN_LIMIT (402) — Upgrade required - RATE_LIMITED (429) — 60 requests/minute per key - MISSING_DATA (400) — Wizard answers not saved yet - GENERATION_FAILED (500) — AI generation error - PARSE_ERROR (500) — AI response parsing issue ## Docs - Full API reference: https://piratepage.cc/docs/api - OpenAPI spec: https://piratepage.cc/openapi.yaml - Skill file (for AI agents): https://piratepage.cc/piratepage-api-skill.md