- A single URL you can paste into any LLM to make it Pictory-aware
- A system prompt that turns the model into a Pictory API assistant
- A reference list of example user prompts and the API calls they should produce
- A working setup for the Pictory MCP server so agentic tools can call the API directly
Why This Matters
The Pictory API exposes many endpoints, dozens of optional fields, and several content-source types (text, blog URLs, PowerPoint, audio, video). A user describing their goal in natural language (“create a 60-second product demo with a chef avatar”) needs a lot of context to be translated correctly into a request payload. LLMs handle this translation well, when given the right context. The pieces below give an LLM that context.1. Point an LLM at llms.txt or llms-full.txt
Pictory’s documentation site automatically generates two machine-friendly bundles you can feed to any LLM:
| File | URL | What It Contains | When to Use |
|---|---|---|---|
llms.txt | https://docs.pictory.ai/llms.txt | Index of all docs pages with titles and one-line descriptions | Quick navigation, smaller context windows |
llms-full.txt | https://docs.pictory.ai/llms-full.txt | Entire documentation site concatenated into one Markdown file | Maximum accuracy, large context windows |
How to Use
Option A: Paste into a chat session. Open any LLM chat (Claude, ChatGPT, Perplexity, Gemini) and paste the URL or the contents ofllms-full.txt at the top of the conversation. Then ask your question normally.
Option B: Use the per-page Copy/Open buttons.
Every page on docs.pictory.ai has a “Copy” menu in the top-right with these options: Copy as Markdown, Open in ChatGPT, Open in Claude, Open in Perplexity, Open in MCP, Open in Cursor, Open in VSCode. Use these when you need context from a single page.
Option C: Reference the URL programmatically.
If you are building an agent or chatbot, fetch llms-full.txt once per session and pass it as a system prompt or context block:
llms-full.txt is large. If your model’s context window is small, prefer llms.txt and use the per-page Markdown URLs for the specific pages the user’s question touches.2. Use the Pictory OpenAPI Spec
For deterministic codegen and structured tool use, the Pictory API publishes an OpenAPI 3.1 specification:https://docs.pictory.ai/openapi.json
You can:
- Feed this directly to an LLM as a structured tool schema
- Generate client SDKs in any language (TypeScript, Python, Go, Ruby, etc.) using
openapi-generatororopenapi-typescript - Import into Postman, Insomnia, or any API client for interactive testing
3. Recommended System Prompt
Paste this as the system prompt (or the first message) in any LLM you want to act as a Pictory API assistant:4. Pictory MCP Server
For agentic LLM tools (Claude Desktop, Cursor, Windsurf, custom agents built on the MCP protocol), Pictory provides an MCP server that exposes the API as structured tools. The agent can invoke endpoints directly without you having to handcraft requests. Learn more and grab the connection details at Pictory MCP Server. Setup pages for popular agentic tools:5. Example Prompts and Expected API Calls
These examples show the natural-language input a user might give and the API call an LLM (configured per the system prompt above) should produce.Example 1: Simple text-to-video
“Create a 30-second product demo video about our new coffee maker. Use an upbeat AI voice.”Expected endpoint:
POST /v2/video/storyboard/render
Example 2: PPT-to-video in another language
“Convert this PowerPoint deck into a French training video with speaker notes as narration: https://example.com/training.pptx”Expected endpoint:
POST /v2/video/storyboard/render
Example 3: Avatar video using a saved template
“Use my brand template and render a video where my Chef avatar walks through 4 recipe steps.”Before generating the payload, the LLM should fetch the available avatars and templates so it uses real IDs from the user’s account:
POST /v2/video/storyboard/render
Example 4: Blog URL to video
“Turn this blog post into a one-minute video with subtitles: https://example.com/blog/our-launch”Expected endpoint:
POST /v2/video/storyboard/render
Example 5: Storyboard preview, then render-from-preview
“Generate a preview first so I can review the scenes before paying for a full render.”This is a two-step flow. The LLM should produce both steps. Step 1: Create the preview Expected endpoint:
POST /v2/video/storyboard
jobId. Poll GET /v1/jobs/{jobid} until the preview is completed; the response includes the storyboard scenes and metadata.
Step 2: Render from the preview
Expected endpoint: PUT /v2/video/render/{storyboardjobid}
webhook here only if you want to override the webhook URL set during the preview step.
Use this two-step flow when the user wants to review or edit scenes before committing render resources. To edit scenes between the two steps, see the Update Storyboard Elements API.
Example 6: Polling job status
“How do I check if my video at job ID 9b1c4d2e-7f8a-4321-b2c3-d456e789f012 is done?”
Expected endpoint: GET /v1/jobs/{jobid}
data.status === "completed", the rendered video URL is in data.videoURL. For long-running renders, prefer passing a webhook URL in the render request body instead of polling.
6. Troubleshooting LLM Output
| Symptom | Cause | Fix |
|---|---|---|
LLM uses Bearer YOUR_API_KEY | Default training bias toward OAuth/Bearer flows | Restate the auth rule in your system prompt: “The Authorization header value is the raw key, no prefix.” |
| LLM invents an endpoint | Insufficient context | Feed llms-full.txt or openapi.json into the session |
| Render succeeds but video does not appear in My Projects | Missing saveProject: true and no templateId | Tell the LLM: “Always include saveProject: true unless the user passes a projectId as templateId.” |
LLM passes both brandId and brandName | Field-level constraint not in training data | Reinforce in system prompt; the API rejects both-together |
| Polling returns 404 | Wrong job type or wrong account | Verify the API key matches the account that submitted the job |
Next Steps
Pictory Claude Skills
The ready-made Text-to-Video skill for Claude Code, no prompt engineering needed
MCP Server
Connect agentic tools directly to the Pictory API
Claude Code Setup
Wire Claude Code into the Pictory API
Cursor Setup
Configure Cursor to call Pictory endpoints
Windsurf Setup
Configure Windsurf for Pictory automation
End-to-End Recipes
Complete working JSON payloads for common use cases
API Reference
Endpoint-by-endpoint reference
