# Prezentit - AI Presentation Generator
**Base URL**: `https://prezentit.net/api/v1`
**Auth Header**: `Authorization: Bearer {PREZENTIT_API_KEY}`
> **This skill requires a `PREZENTIT_API_KEY` environment variable.** Get a free API key at https://prezentit.net/api-keys โ new accounts include 100 free credits.
## โ ๏ธ CRITICAL FOR AI AGENTS
**ALWAYS use `"stream": false`** in generation requests! Without this, you get streaming responses that cause issues.
---
## Complete Workflow (FOLLOW THIS ORDER)
### Step 1: Check Credits First
```http
GET /api/v1/me/credits
Authorization: Bearer {PREZENTIT_API_KEY}
Response:
{
"credits": 100,
"pricing": {
"outlinePerSlide": 5,
"designPerSlide": 10,
"estimatedCostPerSlide": 15
},
"_ai": {
"canGenerate": true,
"maxSlidesAffordable": 6,
"nextSteps": ["..."]
}
}
โ If _ai.canGenerate is false, direct user to https://prezentit.net/buy-credits
โ Use _ai.maxSlidesAffordable to know the limit
Step 2: Choose a Theme
Option A โ Browse all available themes and pick by ID:
GET /api/v1/themes
Authorization: Bearer {PREZENTIT_API_KEY}
Response:
{
"themes": [
{ "id": "corporate_blue", "name": "Corporate Blue", "category": "Corporate & Professional" },
{ "id": "nature_earth", "name": "Nature Earth", "category": "Nature & Organic" }
],
"categories": ["Corporate & Professional", "Creative & Visual", "Data & Analytics", ...],
"_ai": {
"totalThemes": 20,
"popularThemes": ["corporate_blue", "midnight_tech", "nature_earth", "storyteller", "data_dashboard"]
}
}
โ Use the exact id value in your generation request
Option B โ Search for a theme by keyword:
GET /api/v1/themes?search=minimalist
Authorization: Bearer {PREZENTIT_API_KEY}
โ Returns best matches ranked by relevance. Use the id from bestMatch.
Option C โ Describe a custom style (no theme ID needed):
Use the customDesignPrompt parameter instead. See the Custom Design Prompt section below.
Step 3: Generate Presentation
POST /api/v1/presentations/generate
Authorization: Bearer {PREZENTIT_API_KEY}
Content-Type: application/json
{
"topic": "User's topic here",
"slideCount": 5,
"theme": "corporate_blue",
"stream": false
}
โฑ๏ธ IMPORTANT: Generation takes 1-3 minutes. The API will return when complete.
Full Request Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
topic |
string | Yes* | Presentation topic (2-500 chars). Required if no outline. prompt is also accepted as an alias. |
outline |
object | No | Pre-built outline (saves ~33% credits). See Outline section below. |
slideCount |
number | No | Number of slides (3-50, default: 5). Ignored if outline provided. |
theme |
string | No | Theme ID from GET /api/v1/themes. Use the exact id value. |
customDesignPrompt |
string | No | Custom visual style description (see below). Overrides theme ID. |
details |
string | No | Additional context about the presentation content. |
confirmPartial |
boolean | No | Set true to confirm partial generation when credits are limited. |
stream |
boolean | ALWAYS false | AI agents must always set stream: false. |
*topic is required even when providing an outline (used for presentation metadata).
Step 4: Get the Result
Success Response:
{
"presentationId": "uuid-here",
"viewUrl": "https://prezentit.net/view/abc123",
"creditsUsed": 75,
"remainingCredits": 25
}
โ Share the viewUrl with the user. That's their presentation!
Step 5: Download (Optional)
GET /api/v1/presentations/{presentationId}/download?format=pptx
Authorization: Bearer {PREZENTIT_API_KEY}
Formats: pptx (PowerPoint), pdf, json (raw data)
Pricing
| Scenario | Cost per Slide | Example (5 slides) |
|---|---|---|
| Auto-generate outline | 15 credits | 75 credits |
| Provide your own outline | 10 credits | 50 credits (~33% savings!) |
- New accounts get 100 free credits
- Buy more at: https://prezentit.net/buy-credits
Theme Selection
How to Pick a Theme
- Fetch the theme list:
GET /api/v1/themesโ returns all available themes withid,name, andcategory - Pick the best match for the user's topic and style preference
- Pass the
idin the generation request as thethemeparameter
You can also search: GET /api/v1/themes?search=KEYWORD or filter by category: GET /api/v1/themes?category=CATEGORY_NAME
Custom Design Prompt (Skip the Theme List)
If no existing theme fits, use customDesignPrompt to describe a fully custom visual style. This must be a detailed, structured description โ not just a color palette.
REQUIRED structure for customDesignPrompt (include ALL of these sections):
COLOR SYSTEM: Primary [hex], secondary [hex], accent [hex], background [hex/gradient], text colors for headings and body.
TYPOGRAPHY: Heading font style [e.g., bold geometric sans-serif like Montserrat], body font style [e.g., clean humanist sans-serif like Open Sans], size hierarchy [large/medium/small], weight contrast.
LAYOUT SYSTEM: Slide structure [e.g., asymmetric split with 60/40 content-to-visual ratio], alignment [left-aligned text with right visual panel], spacing philosophy [generous whitespace vs. dense information], grid approach.
VISUAL ELEMENTS: Background treatment [solid/gradient/textured/patterned], decorative motifs [geometric shapes, organic curves, line art, etc.], image style [photography with overlay, illustrations, icons, data visualizations], border/frame treatments.
MOOD & TONE: Overall aesthetic [e.g., corporate authority, playful creativity, academic rigor, tech-forward], energy level [calm/dynamic/bold], intended audience impression.
Example โ Good customDesignPrompt:
{
"topic": "AI in Healthcare",
"customDesignPrompt": "COLOR SYSTEM: Primary deep medical blue (#1B3A5C), secondary teal (#2A9D8F), accent warm coral (#E76F51) for callouts, backgrounds alternate between clean white (#FAFAFA) and very subtle blue-gray (#F0F4F8), heading text dark navy, body text #333333. TYPOGRAPHY: Headings in bold geometric sans-serif (Montserrat style), body in clean humanist sans (Source Sans style), strong size hierarchy with 48pt titles, 24pt subtitles, 16pt body. LAYOUT SYSTEM: Asymmetric layouts with 60/40 content-to-visual split, left-aligned text blocks with right-side data visualizations or medical imagery, generous padding (60px margins), clean grid structure. VISUAL ELEMENTS: Subtle DNA helix watermark in corners at 5% opacity, thin teal accent lines as section dividers, medical iconography (stethoscope, heartbeat, molecular structures) as small decorative elements, photography with blue-tinted overlay for full-bleed backgrounds. MOOD & TONE: Professional medical authority balanced with approachable warmth, calm and trustworthy, designed for hospital executives and medical professionals.",
"stream": false
}
Example โ Bad customDesignPrompt (TOO VAGUE, will produce generic results):
"blue and white medical theme"
Creating Outlines (Save ~33% Credits)
Providing your own outline saves credits and gives you full control over content.
Outline Structure
The outline is an object with a slides array. Each slide has these fields:
{
"topic": "Your Presentation Topic",
"outline": {
"slides": [
{
"title": "Slide Title Here",
"mainIdea": "A clear sentence explaining the core message of this slide and what the audience should take away from it.",
"talkingPoints": [
"First key point with enough detail to be meaningful (at least 10 characters)",
"Second key point expanding on the main idea",
"Third key point providing supporting evidence or examples"
],
"visualGuide": "Detailed description of the visual layout: background style, image placement, icon suggestions, chart types, color emphasis areas, and decorative elements for this specific slide."
}
]
},
"stream": false
}
Slide Field Reference
| Field | Required | Constraints | Description |
|---|---|---|---|
title |
Yes | 3-100 chars, 1-15 words | Slide heading |
mainIdea |
Yes | 10-500 chars, 3-75 words | Core message of the slide |
talkingPoints |
Yes | 2-7 items, each 10-300 chars (3-50 words) | Key points to cover |
visualGuide |
Yes | 20-500 chars, 5-75 words | Visual design instructions for this slide |
Validation Rules
Overall:
- Minimum 3 slides, maximum 50 slides
topicis still required (used for presentation metadata)- All four fields (
title,mainIdea,talkingPoints,visualGuide) are required per slide
The API returns detailed error messages with fix suggestions if validation fails.
Complete Example
{
"topic": "Introduction to Machine Learning",
"outline": {
"slides": [
{
"title": "Introduction to Machine Learning",
"mainIdea": "Machine learning is transforming how businesses operate by enabling systems to learn from data and improve automatically without explicit programming.",
"talkingPoints": [
"Machine learning is a subset of artificial intelligence focused on pattern recognition",
"ML systems improve through experience rather than manual rule-writing",
"Global ML market projected to reach $209 billion by 2029"
],
"visualGuide": "Bold title slide with futuristic tech aesthetic. Dark gradient background transitioning from deep navy to midnight blue. Large bold title text centered with a subtle neural network node pattern behind it. Accent glow in electric blue."
},
{
"title": "How Machine Learning Works",
"mainIdea": "Machine learning algorithms are categorized into supervised, unsupervised, and reinforcement learning based on how they learn from data.",
"talkingPoints": [
"Supervised learning uses labeled data for classification and regression tasks",
"Unsupervised learning discovers hidden patterns in unlabeled data through clustering",
"Reinforcement learning optimizes decisions through trial, error, and reward signals"
],
"visualGuide": "Three distinct visual sections showing each ML type with representative icons: labeled data pairs for supervised, clustered groups for unsupervised, and a game-like reward loop for reinforcement. Use consistent color coding with blue, green, and purple."
},
{
"title": "Business Applications",
"mainIdea": "Companies across industries are leveraging machine learning for competitive advantage in customer experience, operations, and decision-making.",
"talkingPoints": [
"Customer churn prediction reduces revenue loss by identifying at-risk accounts early",
"Fraud detection systems process millions of transactions in real-time",
"Personalized recommendation engines drive significant increases in engagement and sales"
],
"visualGuide": "Clean content layout with left-aligned text and right-side icons or mini-charts for each application. Use a white background with subtle grid lines. Each talking point gets a small illustrative icon (shield for fraud, chart for prediction, user icon for personalization)."
},
{
"title": "Getting Started with ML",
"mainIdea": "Successful ML adoption requires starting with clear use cases, quality data, and the right team rather than jumping straight to complex algorithms.",
"talkingPoints": [
"Identify high-impact use cases where prediction or automation adds clear value",
"Invest in clean, well-structured data before selecting algorithms",
"Build or partner with ML expertise and start with proven frameworks"
],
"visualGuide": "Conclusion slide with a numbered roadmap or step layout. Three large numbered circles (1, 2, 3) each containing a step. Background with subtle upward-pointing arrows suggesting progress. Call-to-action feel with bold accent color on the final step."
}
]
},
"theme": "midnight_tech",
"stream": false
}
Get Schema Programmatically
GET /api/v1/docs/outline-format
Authorization: Bearer {PREZENTIT_API_KEY}
Returns the full JSON schema with all constraints and example slides.
Error Handling
Error Response Format
{
"error": "Human readable message",
"code": "ERROR_CODE",
"fix": "Guidance on how to resolve this"
}
Common Errors & Solutions
| HTTP | Code | Message | Solution |
|---|---|---|---|
| 400 | MISSING_TOPIC |
Topic or prompt is required | Provide a topic or prompt field |
| 400 | INVALID_OUTLINE |
Outline validation failed | Check outline structure โ response includes detailed validationErrors with fix per field |
| 400 | INVALID_SLIDE_COUNT |
Slide count must be 3-50 | Adjust slideCount to be between 3 and 50 |
| 401 | UNAUTHORIZED |
Invalid or missing API key | Check Authorization: Bearer pk_... header |
| 402 | INSUFFICIENT_CREDITS |
Not enough credits | Response includes required, available, and purchaseUrl |
| 404 | PRESENTATION_NOT_FOUND |
Presentation doesn't exist | Verify presentation ID |
| 409 | DUPLICATE_REQUEST |
Same request within cooldown | Wait and retry โ don't resend identical requests |
| 409 | GENERATION_IN_PROGRESS |
Already generating | Check status at GET /api/v1/me/generation/status or cancel at POST /api/v1/me/generation/cancel |
| 429 | RATE_LIMITED |
Too many requests | Wait retryAfter seconds before retrying |
| 500 | GENERATION_FAILED |
Internal error | Retry once, then contact support |
| 503 | SERVICE_UNAVAILABLE |
System overloaded | Retry after retryAfter seconds |
Handling Insufficient Credits
{
"error": "Insufficient credits",
"code": "INSUFFICIENT_CREDITS",
"required": 75,
"available": 50,
"purchaseUrl": "https://prezentit.net/buy-credits"
}
AI Agent Response: "You need 75 credits but only have 50. Purchase more at https://prezentit.net/buy-credits"
Handling Partial Generation
If the user has some credits but not enough for full generation, the API returns a confirmation_required response with options. Read the _ai.options array and present them to the user. To proceed with partial generation, resend the request with "confirmPartial": true.
Handling Rate Limits
{
"error": "Too many requests",
"code": "RATE_LIMITED",
"retryAfter": 30
}
AI Agent Action: Wait retryAfter seconds before retrying.
Additional Endpoints
Check Generation Status
GET /api/v1/me/generation/status
Authorization: Bearer {PREZENTIT_API_KEY}
Returns current progress if a generation is running: stage, percentage, designs completed.
Cancel Active Generation
POST /api/v1/me/generation/cancel
Authorization: Bearer {PREZENTIT_API_KEY}
Cancels the current generation in progress.
Get Presentation Details
GET /api/v1/presentations/{presentationId}
Authorization: Bearer {PREZENTIT_API_KEY}
List User's Presentations
GET /api/v1/me/presentations
Authorization: Bearer {PREZENTIT_API_KEY}
Optional: ?limit=20&offset=0
List All Themes
GET /api/v1/themes
Authorization: Bearer {PREZENTIT_API_KEY}
Optional query params:
?search=keywordโ Filter by name?category=corporateโ Filter by category
Anti-Spam Rules
| Rule | Limit | What Happens |
|---|---|---|
| Duplicate detection | ~30 seconds | 409 error for identical requests |
| Rate limit | Varies by key | 429 error with retryAfter |
| One generation at a time | 1 concurrent | 409 GENERATION_IN_PROGRESS error |
Best Practice: Always check for retryAfter in error responses and wait that duration.
Quick Copy-Paste Examples
Minimal Generation
POST /api/v1/presentations/generate
{
"topic": "Introduction to Climate Change",
"stream": false
}
With Theme (Fetch ID First)
1. GET /api/v1/themes โ find the theme ID
2. POST /api/v1/presentations/generate
{
"topic": "Q4 Sales Report",
"slideCount": 8,
"theme": "corporate_blue",
"stream": false
}
With Custom Design Prompt
{
"topic": "Startup Pitch Deck",
"slideCount": 10,
"customDesignPrompt": "COLOR SYSTEM: Primary electric indigo (#4F46E5), secondary cyan (#06B6D4), accent hot pink (#EC4899), background dark charcoal (#111827) with subtle radial gradient to #1F2937, heading text white, body text #D1D5DB. TYPOGRAPHY: Headings in extra-bold wide-tracking sans-serif (Inter/Poppins style), body in medium-weight clean sans, dramatic size contrast with 56pt titles and 18pt body. LAYOUT SYSTEM: Full-bleed dark slides with asymmetric content placement, bold left-aligned headlines with supporting text below, large visual areas for mockups and charts, 80px margins. VISUAL ELEMENTS: Subtle dot grid pattern at 3% opacity on backgrounds, neon-glow accent lines, rounded corners on all containers, glassmorphism cards with frosted backgrounds for data callouts, gradient mesh blobs as decorative elements. MOOD & TONE: Bold tech-startup energy, confident and forward-looking, designed to impress venture capital investors.",
"stream": false
}
With Outline (~33% Savings)
{
"topic": "Weekly Team Sync",
"outline": {
"slides": [
{
"title": "Weekly Team Sync",
"mainIdea": "Kickoff slide for the January 15, 2024 weekly team synchronization meeting covering accomplishments and upcoming goals.",
"talkingPoints": [
"Welcome the team and set the agenda for today's sync",
"Cover last week's wins and this week's priorities"
],
"visualGuide": "Clean title slide with company colors. Bold centered title, date as subtitle below. Simple professional background with subtle geometric pattern."
},
{
"title": "Last Week's Accomplishments",
"mainIdea": "The team delivered significant progress across feature development, bug resolution, and performance optimization last week.",
"talkingPoints": [
"Feature X completed and merged into the main branch ahead of schedule",
"Resolved three critical production bugs affecting checkout flow",
"Database query optimization improved page load times by twenty percent"
],
"visualGuide": "Content slide with checkmark icons next to each accomplishment. Green accent color for completed items. Left-aligned text with small celebration graphic in the corner."
},
{
"title": "This Week's Goals",
"mainIdea": "This week focuses on the beta launch, initial user testing, and completing documentation before the public release.",
"talkingPoints": [
"Launch beta version to internal testers by Wednesday",
"Conduct user testing sessions with five pilot customers",
"Complete API documentation and developer onboarding guide"
],
"visualGuide": "Forward-looking slide with numbered steps or timeline visual. Blue accent color for upcoming items. Arrow or roadmap graphic showing progression from current state to launch."
},
{
"title": "Open Discussion",
"mainIdea": "Time for team questions, blockers, and any items not covered in the structured agenda.",
"talkingPoints": [
"Open floor for questions and discussion of blockers",
"Next sync meeting scheduled for Monday at ten AM"
],
"visualGuide": "Simple closing slide with question mark icon or discussion bubble graphic. Calm colors, minimal text, large font for the key info. Meeting time prominently displayed."
}
]
},
"theme": "corporate_blue",
"stream": false
}
Getting Help
- Website: https://prezentit.net
- Buy Credits: https://prezentit.net/buy-credits
- Support: https://prezentit.net/support
- API Key Management: https://prezentit.net/api-keys