canonical: https://jentic.com/apis/pictory.ai/pictory

# Pictory API

The Pictory API turns text, blog posts, slide decks, and existing audio or video into AI-generated videos. A storyboard request takes a videoName and an array of scenes, each built from a story, a blogUrl, a pptUrl, or media with a transcript, plus optional voiceOver, backgroundMusic, subtitles, a brand, and an aspect ratio of 1:1, 16:9, 9:16, or 4:5. You can preview the storyboard before paying for a full render, render it directly, or render a saved Pictory project, then poll the render job for the video, audio, thumbnail, and subtitle file URLs.

## For AI agents

Generate AI videos with Pictory from text, a blog URL, or slides: preview a storyboard, render the video, render a saved project, poll the job for output URLs, and apply a video brand.

## Scope

Does not host or stream finished videos to viewers, edit timelines frame by frame, or publish to social networks. Use for generating and rendering AI videos from text, links, and slides only.

## Capabilities

- Preview a storyboard with its scene breakdown and visual selections before committing to a full render
- Render a finished video directly from scenes built from a story, blogUrl, or pptUrl
- Add AI voiceOver, backgroundMusic, subtitles, and an aspectRatio such as 9:16 for vertical video
- Render an existing Pictory project by its project id
- Poll a render job for progress and the output video, audio, thumbnail, and subtitle URLs
- List the account's video brands to apply a brandId to a render

## Use cases

### Content-repurposing agent through Jentic

An AI agent publishing a weekly article can also produce a matching social video. Through Jentic the agent searches for 'create a video from a blog post', loads the Pictory storyboard render operation with its input schema, and submits a videoName with one scene whose blogUrl points at the article, an aspectRatio of 9:16, and voiceOver enabled. It then polls the job until the video URL is ready, with the Pictory key injected at call time by your own Jentic One instance.

Example prompt: Call POST `/pictoryapis/v2/video/storyboard/render` with videoName 'Weekly recap', aspectRatio '9:16', and a scene whose blogUrl is the article URL, then poll GET `/pictoryapis/v1/jobs/{jobid}` until the output URLs are returned

### Preview before you pay for a render

The spec positions the preview as the way to validate content before incurring full rendering cost. The storyboard preview operation accepts the same body as a render and returns a jobId for reviewing scene breakdown and visual selections. Setting saveProject to true keeps the result as a Pictory project that can be rendered later by its project id.

Example prompt: Call POST `/pictoryapis/v2/video/storyboard` with videoName, saveProject true, and scenes from a script, review the preview, then call POST `/pictoryapis/v2/projects/{projectid}/render` for the saved project

### On-brand training and explainer videos

Teams producing many explainer videos want consistent branding. The video brands operation lists each brand's UUID id and name, and a storyboard can apply a brandId or brandName along with a subtitle style, a logo, and background music. Scenes can be built from a slide deck through pptUrl, using speaker notes for narration.

Example prompt: Call GET `/pictoryapis/v1/brands/video`, then POST `/pictoryapis/v2/video/storyboard/render` with the chosen brandId, videoName 'Onboarding module 1', and a scene with pptUrl and useSpeakerNotes true

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/pictoryapis/v2/video/storyboard` | Create a storyboard preview |
| POST | `/pictoryapis/v2/video/storyboard/render` | Render a video from a storyboard |
| POST | `/pictoryapis/v2/projects/{projectid}/render` | Render a saved project |
| GET | `/pictoryapis/v1/jobs/{jobid}` | Get a render job's status and outputs |
| GET | `/pictoryapis/v1/brands/video` | List video brands |

## Key resources

- **Storyboards** — Video definitions with scenes, voice-over, music, subtitles, brand, template, and aspect ratio
- **Render jobs** — Asynchronous preview and render jobs keyed by jobId, returning progress and output file URLs
- **Projects** — Saved Pictory projects that can be rendered by project id
- **Video brands** — Brand configurations with a UUID id and name to apply to renders

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 69 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 70 / 100
  - AI-Readiness & Agent Experience: 51 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 95 / 100
- **View full report:** https://jentic.com/apis/pictory.ai/pictory/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring Pictory by hand means getting a pictai_ key, sending it as the raw Authorization header without a Bearer prefix, building its scene-based storyboard body, and polling render jobs until they finish. Through Jentic you install once, import Pictory from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Pictory puts the project id and job id in the URL path (`/pictoryapis/v2/projects/{projectid}/render`), so a rule can pin your agent to one saved project. You choose the operations it may call, so cost-incurring renders are not included unless you add them.
- **Credential handling:** Your Pictory API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a video from a blog post' or 'check a render job', and Jentic returns the matching Pictory operation with its input schema, including the scene fields, so the agent builds a valid storyboard without browsing the reference docs.

## Related APIs

- **Synthesia API** — AI avatar videos generated from a script
- **HeyGen API** — Avatar and talking-head video generation
- **Shotstack** — Programmatic video editing and rendering from a JSON timeline

## FAQ

### What authentication does the Pictory API use?

The Pictory API authenticates with an API key (ApiKeyAuth) per its OpenAPI spec, passed as the raw value of the Authorization header with no Bearer prefix. Keys start with pictai_ and are issued from the API access page in the Pictory app. Through Jentic the key is stored by your own instance and attached at call time.

### Can I preview a Pictory video before rendering it?

Yes. POST `/pictoryapis/v2/video/storyboard` creates a storyboard preview so you can review scene breakdown and visual selections before committing to the full render. It accepts the same body as the direct render and returns a jobId to poll.

### What are the rate limits for the Pictory API?

The OpenAPI spec does not specify rate limits. It recommends polling a render job every 10-30 seconds, or setting the webhook field on the render request to receive a push when the job finishes. Check https://docs.pictory.ai for current account limits.

### Is there a Pictory MCP server?

You don't need an MCP server to give your agent Pictory. Jentic connects it directly from the API Directory: import it, store your key once, and your agent calls the storyboard, render, and job operations on demand without loading another server's tool definitions into its context.

### How do I render a video through Jentic?

Search Jentic for 'create a video from text', load the POST `/pictoryapis/v2/video/storyboard/render` operation, and execute it with a videoName and scenes, each with a story or blogUrl. Poll GET `/pictoryapis/v1/jobs/{jobid}` with the returned jobId for the video URL. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the Pictory API?

Yes. Write a rule that allows only the storyboard preview and job status operations, and the agent can draft and check previews while the full render and project render operations stay with you. Every call it makes is logged for review.
