This guide shows you how to connect your private AWS S3 storage to Pictory, so you can use your own videos and images stored in Amazon S3 buckets to create Pictory videos.What you’ll accomplish:
Connect Pictory to your private AWS S3 storage
Use your private videos and images in Pictory without making them public
Keep your assets secure with AWS IAM role-based access
Prerequisites: You’ll need an AWS account with access to create IAM roles. If you don’t have AWS experience, consider asking your IT team for help with the AWS setup steps below.
Important: Replace {YOUR_S3_BUCKET} with your actual bucket name (for example, if your bucket is named “my-company-videos”, replace both instances with “my-company-videos”)
Click Next
Name the policy: s3_access_policy
Click Create policy
What this does:
s3:ListBucket - Lets Pictory see what files are in your bucket
s3:GetObject - Lets Pictory read/download the files
Pictory can only READ files, it cannot modify or delete them
5
Step 5: Configure Trust Relationship (Advanced)
This step sets up the detailed trust relationship between your AWS account and Pictory.
In the role details, click the Trust relationships tab
For non-technical users: The sections below show what information you need to include in your API request. If you’re using a tool like Postman or writing code, these are the fields you’ll fill in.
Here’s what the complete request looks like. Replace the example values with your actual AWS details:
Report incorrect code
Copy
Ask AI
{ "name": "PictoryPrivateVideosConnection", "description": "Pictory Private Videos Connection", "awsAccountId": "123456789012", ← Replace with your 12-digit AWS Account ID "awsRegion": "us-east-2", ← Replace with your S3 bucket's region "enabled": true}
Quick tip: You can leave out the description field if you don’t need it - it’s optional!
When the connection is successful, Pictory will send back a response confirming the details.
Save your connectionId! You’ll use this ID when making video API calls to tell Pictory which S3 connection to use. When using it in video creation requests, the field name becomes awsConnectionId (not just connectionId).
Here are complete working examples in different programming languages. Pick the one that matches what you’re using!
New to APIs? If these code examples look confusing, consider using a tool like Postman or Insomnia - they provide a visual interface where you can just fill in fields instead of writing code.
Report incorrect code
Copy
Ask AI
# This is for terminal/command line use# Replace YOUR_API_KEY with your actual API key# Replace 123456789012 with your AWS Account ID# Replace us-east-2 with your S3 bucket's regioncurl --request POST \ --url https://api.pictory.ai/pictoryapis/v1/awsconnections \ --header 'Authorization: YOUR_API_KEY' \ --header 'accept: application/json' \ --header 'content-type: application/json' \ --data '{ "name": "PictoryPrivateVideosConnection", "description": "Pictory Private Videos Connection", "awsAccountId": "123456789012", "awsRegion": "us-east-2", "enabled": true }' | python -m json.tool
Now that you’ve created the connection, you can use your private S3 files in Pictory videos by including the awsConnectionId and referencing files with the s3:// format.
Remember to use awsConnectionId in your video requests, not connectionId. The API response gives you connectionId, but you need to rename it to awsConnectionId when making video requests.
Make sure your Account ID is exactly 12 digits (example: 123456789012) with no spaces or dashes.Where to find it: In AWS Console, click your account name in the top-right corner
Unauthorized Error
Your API key may be invalid or expired. Get your API key from the API Access page in your Pictory dashboard.
Duplicate Connection Error
You already have a connection with this name or AWS account/region. Try a different connection name.
Videos Can't Access S3 Files
Check these in order:
Role name must be exactly: PictoryCloudIntegrationRole
Bucket name in your S3 URIs must match your IAM policy
Region must match where your S3 bucket is located
Trust policy includes all three Pictory roles (from Step 5)