Deep-dive on the Next Gen Platform. Join the Webinar!

Skip Navigation
Show nav
Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Visit the Heroku Blog

    Find news and updates from Heroku in the blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku Architecture
    • Compute (Dynos)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Developer Tools
    • Command Line
    • Heroku VS Code Extension
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery & Integration (Heroku Flow)
    • Continuous Integration
  • Language Support
    • Node.js
      • Working with Node.js
      • Troubleshooting Node.js Apps
      • Node.js Behavior in Heroku
    • Ruby
      • Rails Support
      • Working with Bundler
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Background Jobs in Python
      • Python Behavior in Heroku
      • Working with Django
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Working with Maven
      • Working with Spring Boot
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
      • Migrating to Heroku Postgres
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • Other Data Stores
  • AI
    • Working with AI
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
      • Single Sign-on (SSO)
    • Private Spaces
      • Infrastructure Networking
    • Compliance
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Add-ons
  • All Add-ons
  • FileTurn
FileTurn

This add-on is operated by FileTurn

Convert Files with an API

FileTurn

Last updated August 02, 2021

The FileTurn add-on is currently in beta.

Table of Contents

  • Provisioning the add-on
  • Conversion Formats
  • Dashboard
  • Using the FileTurn REST API
  • Using the FileTurn Ruby Gem
  • Webhooks
  • Removing the add-on
  • Support

FileTurn is an add-on that provides file conversions via an easy-to-use API. Conversions are available between PDF and each of Word, Excel, and PowerPoint, along with additional PDF-specific operations.

Provisioning the add-on

FileTurn can be attached to a Heroku application via the CLI:

$ heroku addons:create fileturn:free
Creating fileturn:free on ⬢ appone... free
Resource has been created and is available!

After you provision FileTurn, a FILETURN_TOKEN config var is added to your app’s configuration. It contains the secret token for accessing the default FileTurn application created for you. This can be confirmed using the heroku config:get command:

$ heroku config:get FILETURN_TOKEN

After installing FileTurn, the application should be configured to fully integrate with the addon.

Conversion Formats

See the FileTurn documentation for a list of conversion formats.

Dashboard

The FileTurn dashboard allows you to view your remaining monthly conversions, manage your webhook URL, and optionally link an Amazon S3 bucket for storage.

You can access the dashboard via the CLI:

$ heroku addons:open fileturn
Opening fileturn for sharp-mountain-4005

or by visiting the Heroku Dashboard and selecting the application in question. Select FileTurn from the Add-ons menu.

Using the FileTurn REST API

After you provision FileTurn and have your FILETURN_TOKEN, you are ready to make the first API request:

$ curl -X "POST" https://fileturn.net/api/conversions.json \
  -d api_token=[FILETURN_TOKEN] \
  -d type=WordToPdf \
  -d url=iiswc.org/iiswc2013/sample.doc

For details on API calls, see the FileTurn REST API Documentation.

Using the FileTurn Ruby Gem

Add the FileTurn gem to your Gemfile:

gem 'fileturn'

After adding the gem, bundle install and commit your changes to Gemfile and Gemfile.lock. The gem will be initialized with your FILETURN_TOKEN.

After the Ruby gem is initialized, you can start using FileTurn commands. See the FileTurn Ruby Gem documentation for details.

Webhooks

Because document processing is asynchronous, you need to be notified when the document is processed. FileTurn sends an HTTP POST request to your server with the result when processing is finished.

Example Successful Webhook Response

{
  "id": "da6a33f0-ccb5-4891-8918-e8cd40508083",
  "type": "WordToPdf",
  "status": "completed",
  "source_files": [
    "http://www.academichomes.com/downloads/ExampleLeaseAgreement1.doc"
  ],
  "temporary_download_urls": [
    "http://fileturn-dev.s3.amazonaws.com/da116fd8-4d16-4539-8cf1-3775d56affff/ExampleLeaseAgreement1.pdf?AWSAccessKeyId=AKIAJWJK4KZF2KQBC3GA&Expires=1530647088&Signature=sUR%2BTBaXsriN4qx2DTs0bfMPPeM%3D"
  ],
  "processing_time_in_seconds": 14,
  "error_type": null,
  "error_details": null
}

See the Webhook Documentation for details.

Removing the add-on

FileTurn can be removed via the CLI:

$ heroku addons:destroy fileturn
-----> Removing fileturn from appone.. done, v20 (free)

Support

All FileTurn support and runtime issues should be submitted via the Heroku Support channels.

Keep reading

  • All Add-ons

Feedback

Log in to submit feedback.

Zara 4 Fixie

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices