With PDF Echo, you can generate PDFs from raw HTML or a public URL and upload them directly to your own Amazon S3 bucket — without temporarily storing the file on our servers. This guide walks you through:
  1. Setting up permissions for PDF Echo to upload to your bucket.
  2. Generating a PDF and uploading it directly to your S3 bucket.

1. Setting up permissions for PDF Echo to upload to your bucket

PDF Echo uses an IAM user to upload files directly to your S3 bucket. To allow this, you must grant our IAM user write permissions on the bucket/path where files will be stored.
  • Open your AWS ConsoleS3.
  • Select your bucket.
  • Go to PermissionsBucket policy.
Add this policy (replace YOUR_BUCKET_NAME with your actual bucket name):
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::006061438792:user/pdfecho"
			},
			"Action": "s3:PutObject",
			"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/*",
			"Condition": {
				"StringEquals": {
					"s3:x-amz-acl": "bucket-owner-full-control"
				}
			}
		}
	]
}
💡 Tip: For better security, you can grant access to a specific path inside your bucket instead of the whole bucket.

2. Generating a PDF and uploading it directly to your S3 bucket

To upload the PDF in your S3 bucket, send a request to the endpoint /v1/pdf with the following field:
{
  "storage": {
    "provider": "aws_s3",
    "s3_destination": "s3://YOUR_BUCKET_NAME/YOUR_PATH/filename.pdf"
  }
}

Example request

curl -X POST "https://api.pdfecho.com/v1/pdf" \
  -u YOUR_API_KEY: \
  -H "Content-Type: application/json" \
  -d '{
    "source": "<html><body><h1>Hello PDF Echo</h1></body></html>",
    "storage": {
      "provider": "aws_s3",
      "s3_destination": "s3://YOUR_BUCKET_NAME/YOUR_PATH/filename.pdf"
    }
  }'

Example response

{
  "url": "https://YOUR_BUCKET_NAME.s3.amazonaws.com/YOUR_PATH/filename.pdf",
  "file": {
    "name": "filename.pdf",
    "size": 5532
  },
  "compliance": {
    "hipaa": false,
    "gdpr": false
  }
}
Summary
  • No temporary storage — the PDF goes directly from PDF Echo to your bucket.
  • Secure — you control exactly where we can write in your bucket.
  • Flexible — works with raw HTML or a public URL.