Get Started

Medium Uploader is a tool to allow you to upload your blog posts to directly from your Contentful entry editor.

Currently, this app only supports Long Text markdown as post content. I plan to implement Contentful's Rich Text model in future versions. Also, Medium Uploader currently only supports en-US localization language.

In order to use Medium Uploader, you must map your post fields to the expected fields that Medium requires. If you have an existing Content Type, you may need to add or modify some fields to meet these requirements.

Contentful - Medium Field Map

Medium FieldContentful Field TypeNote
titleShort TextField Option: This field represents the Entry title
slugShort TextAppearance set to "Slug" based on title field
contentLong Text (markdownMedium excepts most CommonMark tags
tagsReferences, many (Short Text)Medium only recognizes the first 3 tags

Configure Medium Uploader

In order to use Medium Uploader, you'll need to log into your Medium account and generate an Integration Token. To get one, click on your Medium profile pic and choose Settings. Then click Integraton Tokens in the left sidebar. Enter a description for the token and then click Generate Integration Token.

To install Medium Uploader to your Contentful space, Click Here.

Once the app is installed, click Show Configuration and paste your token into the Medium Integration Token field and click Fetch. This should pull your Medium public profile and User ID, which is needed to post to Medium. If you see your profile image and the user ID field is filled in, you're good to go!

Now you need to select your Post content type, and then match the corresponding Medium fields with your Content Type fields. Finally, enter the Base URL for your blog post website. This is needed for Medium's Canonical URL field. Medium Uploader will format your canonical URL as [base URL]/[slug]. So if your base URL is, and your post slug is this-is-some-kind-of-blog-post, your canonical URL will be formatted as

Once everything is configured, click Install or Save in the upper right corner to start using Medium Uploader.

Using Medium Uploader

Once Medium Uploader is configured with your proper Content Type, click Medium Uploader from the Apps tab at the top of your space toolbar. In the Search Post to Upload field, you can search for a post to upload by the Title field. Click on the post you want to upload. It will then be displayed below. If you accidentally selected the wrong post, just search again and select a different post.

There are two options to consider before clicking the Upload button. The first is Publish Post. This option has nothing to do with Contentful's publish status. If you turn this option on, your post will be uploaded to Medium as Published. It is recommended that you do not choose this option unless you're confident that your post will be converted properly by Medium. If you do not choose this option, your post will be uploaded as Draft status. You can then log into Medium and make any changes necessary before publishing.

The second option is Notify Followers. When you publish a post on Medium, you have the option to notify your followers by email of your new post. Be very careful with this option as the content of your post is emailed to your followers. If there are any mistakes from the conversion process, those mistakes will be emailed to your followers! Also, this option only takes effect if you select the Publish Post option. If you're not sure your post will be converted properly, it's best to leave these two options off and double check your post on Medium.

Adding Medium Uploader to Your Sidebar

You can quickly upload your blog post directly from your entry editor screen. Simply edit your Post content type. Then click the Sidebar tab and click the + sign next to Medium Uploader. Don't forget to click Save.

Add Medium to Sidebar

Now in your Post entry editor, your should see this:

Medium in Post Sidebar


Medium Uploader is provided with absolutely no warranty or guarantee of any kind. For more details, please read our Privacy Policy and Terms and Conditions.