Developers

Importing to RebelMouse: Technical Guidelines

Importing to RebelMouse

In order to import your content into RebelMouse, you must be able to fully parse your site's content. RebelMouse accepts several input formats for content ingestion.


Requirements for Your Feed

First, you must provide an export file/feed of all the content entries and authors on your website through the following fields:

Required Authors Fields to Import

  • To import authors, you should provide us with a "main" list of authors, separate from the list of content entries.
  • Each author should contain:
    • Name: full name of the author
    • Email: full email address
    • ID: unique identifier for each author

Required Entry Fields to Import

  • Pubdate: publication date for the article following the date and time specifications of RFC 822
  • Content: full content of your article with HTML semantic
  • Headline: string as a title of the article
  • Images: list of URLs of featured images and descriptions that represent your article
  • URL: full public URL of your article
  • Authors: list of author IDs for the given entry, as specified in the "main" authors list outlined above
  • Status: "published" or "draft"

Optional Entry Fields to Import

  • basename: string with the desired basename to follow in the new RebelMouse URL (no "/" — just alphanumeric characters and "-")
  • social_image: image to be used on social networks
  • social_headline: headline to be used on social networks
  • social_description: description text to be used on social networks
  • listicle: if your article contains more than text — such as slides or pagination — using the listicle option might make more sense; a listicle is a list of items, where each item contains the following fields:
    • headline: headline for each particular item/slide
    • body: content of each item/slide as HTML
    • media_html: any representative image or embed code as an HTML embed code
    • credit: credits for each particular item/slide
    • caption: small description of each item/slide's media
    • numeration (optional): stringified version of each slide number

      Each article can contain just one listicle. Optionally, you can set the following attributes that control the way the listicle will be rendered:
    • use_pagination: Boolean 0 or 1; default is 0; turns each listicle's items into a page on the given post
    • use_numeration: Boolean 0 or 1; default is 0; turns the listicle into a numerated list
    • numeration_sort: ASC or DESC; default is ASC
    • body_text_above: Boolean 0 or 1; default is 0; tells whether each listicle item's body text should be placed above or below the listicle item's media_html
  • tags: list of strings where each string is a tag to be applied to your article
  • media_url: URL of a video/embed which you want to highlight as representative media for your entry; the requirement for this URL is to be usable as an "src" attribute of an <iframe> tag
  • subheadline: a string for a second-level headline for your article
  • sections: a list of strings, where each string is the name of the RebelMouse section you want the current entry to be a part of; if no sections are set, the entry will go directly to your site's front page; if you want the entry to go to the front page and other sections, then you should name "front page" explicitly and include the names of the other sections; section names must be lowercase: just a–z letters, and spaces should be replaced by underscores (_) (E.g., "front_page," "business," "healthy_living")

To ingest your content into RebelMouse, you must use one of the following formats: JSON, XML, or RSS 2.0.

JSON Format

To provide RebelMouse with a JSON output of your content, provide us with a list of authors and entries as specified in the instructions above, where the items of each list are simple dictionaries defining the given author or entry.

Here's an example of two authors and two entries with just the required fields:

{
  "authors": [
   {"name": "John Smith", "email": 'smith@domain.com", "id": "123-456"},
   {"name": "John Doe", "email": "doe@domain.com", "id": 789-abc"}
  ],
  "entries": [
   {
     "headline": "This Is a Headline",
     "content": "<p>This is an <i>entry</i> with content full of <em>HTML</em> semantics.</p>",
     "pub_date": "Thu, 30 Jul 2015 15:00:45 +0000",
     "url": "<a href="http://www.yourdomain.com/path/to/your/article" target="_blank">http://www.yourdomain.com/path/to/your/article</a>",
     "images": [{"url": "<img src="<img src=" http:="" yourcdn.com="" path="" to="" your="" image.jpg"="">">", "description": 'some text"}, ...],
     "authors": ["123-456"],
     "status": "published"
   },
   {
     "headline": "This Is Another Headline",
     "content": "<p>I can contain: </p><ul> <li>any</li> <li>semantic</li> </ul>",
     "pub_date": "Thu, 30 Jul 2015 16:35:00 +0000",
     "url": "<a href="http://www.yourdomain.com/path/to/another/article" target="_blank">http://www.yourdomain.com/path/to/another/article</a>",
     "images": [{"url": "<img src="<img src=" http:="" yourcdn.com="" path="" to="" another="" image.jpg"="">">", "description": 'some text"}, ...],
     "authors": ["123-456", "789-abc"],
     "status": "published"
   }
  ]
}

Here's an example of a single entry with both required and optional fields, among them a listicle:

{
     "headline": "This Is a Headline",
     "content": "<p>This is a <i>listicle</i> full of content with <em>HTML</em> semantics.</p>",
     "pub_date": "Thu, 30 Jul 2015 15:00:45 +0000",
     "url": "<a href="http://www.yourdomain.com/path/to/your-article" target="_blank">http://www.yourdomain.com/path/to/your-article</a>",
     "images": [{"urll": "<img src="<img src=" http:="" yourcdn.com="" path="" to="" your="" image.jpg"="">">", "description": 'some text"}, ...],
     "author": "Homer Simpson",
     "basename": "your-article",
     'social_headline": "You won't believe this is a headline.",
     'social_description": "OMG!",
     "authors": ["123-456"],
     "media_url": "<a href="https://www.youtube.com/watch?v=-WXAAAdGJ7o" target="_blank">https://www.youtube.com/watch?v=-WXAAAdGJ7o</a>" 
     "tags": ['simpsons", "tv show", "homer"],
     'sections": ["frontpage", "the_simpsons"]
     "listicle": [
         {"headline": "item 1 headline", "body": "<p>item 1 content</p>", "media_html": "<img src="<img src=" http:="" path.to="" image.jpg"="">" />"},
         {"headline": "item 2 headline", "body": "<p>item 2 content</p>", "media_html": "<iframe src="http://path.to/video"></iframe>"}
     ],
     "listicle_settings": {
         "use_numeration": 1,
         "numeration_order": "DESC"
     },
     "status": "draft"
}

XML Format

To provide RebelMouse with an XML output of your content, provide us with a list of entry and author entities, like the examples below.

Here's an example of two authors and two entries with just the required fields:

<?xml version="1.0"?>
  <authors>
     <author>
        <name><![CDATA[John Smith]]></name>
        <email>smith@domain.com</email>
        <id>123-456</id>
     </author>
     <author>
        <name><![CDATA[John Doe]]></name>
        <email>doe@domain.com</email>
        <id>789-abc</id>
     </author>
  </authors>
  <entries>
    <entry>
      <headline><![CDATA[This Is a Headline]]></headline>
      <content>
          <![CDATA[<p>This is an <i>entry</i> full of content with <em>HTML</em> semantics.</p>]]>
      </content>
      <pub_date>Thu, 30 Jul 2015 15:00:45 +0000</pub_date>
      <url>http://www.yourdomain.com/path/to/your/article</url>
      <authors>
         <author>123-456</author>
      </author>
      <images>
        <image>
            <url>http://yourcdn.com/path/to/another/image.jpg</url>
            <description>Some text</description>
        </image>
      </images>
      <status>published</status>
    </entry>
    <entry>
      <headline><![CDATA[This Is Another Headline]]></headline>
      <content>
          <![CDATA[<p>I can contain <ul> <li>any</li> <li>semantic</li> </ul></p>]]>
      </content>
      <pub_date>Thu, 30 Jul 2015 16:35:00 +0000</pub_date>
      <url>http://www.yourdomain.com/path/to/another/article</url>
      <authors>
         <author>123-456</author>
         <author>789-abc</author>
      </author>
      <images>
        <image>
            <url>http://yourcdn.com/path/to/another/image.jpg</url>
            <description>Some text</description>
        </image>
      </images>
      <status>published</status>
    </entry>
  </entries>

Here's an example of a single entry with both required and optional fields:

<entry>
      <headline><![CDATA[This Is a Headline]]></headline>
      <content>
          <![CDATA[<p>This is an <i>entry</i> full of content with <em>HTML</em> semantics.</p>]]>
      </content>
      <pub_date>Thu, 30 Jul 2015 15:00:45 +0000</pub_date>
      <url>http://www.yourdomain.com/path/to/your-article</url>
      <basename>your-article</basename>
      <authors>
         <author>123-456</author>
      </authors>
      <images>
        <image>
           <url>http://yourcdn.com/path/to/another/image.jpg</url>
            <description>Some text</description>
        </image>
      </images>
      <media_url>https://www.youtube.com/watch?v=-WXAAAdGJ7o</media_url> 
      <social_network><![CDATA[You won't believe this is a headline.]]></social_network>
      <social_description><![CDATA[OMG!]]></social_description>
      <tags>
        <tag>simpsons</tag>
        <tag>tv show</tag>
        <tag>home</tag>
      </tags>
      <sections>
        <section>frontpage</section>
        <section>the_simpsons</section>
      </sections>
      <listicle use_numeration="1" numeration_order="DESC">
         <item>
            <headline>item 1 headline</headline>
            <body><![CDATA[<p>item 1 content</p>]]></body>
            <media_html><![CDATA[<img src="http://path.to/image.jpg" />]]></media_html>
         </item>
         <item>
            <headline>item 2 headline</headline>
            <body><![CDATA[<p>item 2 content</p>]]></body>
            <media_html><![CDATA[<iframe src="http://path.to/video"></iframe>]]></media_html>
         </item>
      </listicle>
      <status>draft</status>
   </entry>He

RSS 2.0 Format

To provide RebelMouse with an RSS Feed of your content, provide us with a list of entry and author entities, like the examples below:

<rss xmlns:rm="http://www.rebelmouse.com/NS/" version="2.0">
   <channel>
      <link>http://homesite.com</link>
      <rm:authors>
         <rm:author>
            <rm:name>author1</rm:name>
            <rm:email>athour1@homesite.com</rm:email>
            <rm:id>1<rm:id>
         </rm:author>
         <rm:author>
            <rm:name>author2</rm:name>
            <rm:email>author2@homesite.com</rm:email>
            <rm:id>2<rm:id>
         </rm:author>
      </rm:authors>
      <item>
         <title><![CDATA[This Is a Headline]]></title>
         <description> 
            <![CDATA[<p>This is an <i>entry</i> full of content with <em>HTML</em> semantics.</p>]]>
         </description>
         <pubDate>Thu, 30 Jul 2015 15:00:45 +0000</pubDate>
         <link>http://www.yourdomain.com/path/to/your-article</link>
         <guid>post_id1</guid>
         <rm:images>
            <rm:image>
               <rm:url></rm:image_url>
               <rm:description_url></rm:description>
            </rm:image>
         </rm:images>
         <rm:authors>
            <rm:author>1</rm:author>
            <rm:author>2</rm:author>
         </rm:authors>
         <rm:status>published</rm:status>
      </item>
      <item>
          ….
          ...
      </item>
</rss>

Here's an example of a single entry with both required and optional fields:

<item>
      <title><![CDATA[This Is a Headline]]></title>:
      <description>
          <![CDATA[<p>This is an <i>entry</i> full of content with <em>HTML</em> semantics.</p>]]>
      </description>
      <pub_date>Thu, 30 Jul 2015 15:00:45 +0000</pub_date>
      <link>http://www.yourdomain.com/path/to/your-article</link>
      <rm:basename>your-article</rm:basename>
      <rm:authors>
         <rm:author>123-456</rm:author>
      </rm:authors>
      <rm:images>
        <rm:image>
           <rm:url>http://yourcdn.com/path/to/another/image.jpg</rm:url>
           <rm:description>Some text</rm:description>
        </rm:image>
      </rm:images>
      <rm:social_network><![CDATA[You won't believe this is a headline.]]></rm:social_network>
      <rm:social_description><![CDATA[OMG!]]></rm:social_description>
      <rm:tags>
        <rm:tag>simpsons</rm:tag>
        <rm:tag>tv show</rm:tag>
        <rm:tag>home</rm:tag>
      </rm:tags>
      <rm:sections>
        <rm:section>frontpage</rm:section>
        <rm:section>the_simpsons</rm:section>
      </rm:sections>
      <rm:media_url>https://www.youtube.com/watch?v=-WXAAAdGJ7o</rm:media_url> 
      <rm:listicle use_numeration="1" numeration_order="DESC">
         <rm:item>
            <rm:headline>item 1 headline</rm:headline>
            <rm:body><![CDATA[<p>item 1 content</p>]]></rm:body>
            <rm:media_html><![CDATA[<img src="http://path.to/image.jpg" />]]></rm:media_html>
            <rm:credit><![CDATA[John Nash]]></rm:credit>
            <rm:caption><![CDATA[a description for that image]]><rm:caption>
         </rm:item>
         <rm:item>
            <rm:headline>item 2 headline</rm:headline>
            <rm:body><![CDATA[<p>item 2 content</p>]]></rm:body>
            <rm:media_html><![CDATA[<iframe src="http://path.to/video"></iframe>]]></rm:media_html>
            <rm:credit><![CDATA[John Brown]]></rm:credit>
            <rm:caption><![CDATA[a description for that video]]><rm:caption>
         </rm:item>
      </rm:listicle>
      <rm:status>draft</rm:status>
   </entry>

URL Patterns and Pagination

In order for RebelMouse to be able to ingest your content, you must expose it through a standardized pattern of URLs and pagination.

Depending on your format, you should expose your API endpoint with one of the corresponding file extensions:

  • https://example.com/path/to/your/api.json
  • https://example.com/path/to/your/api.rss
  • https://example.com/path/to/your/api.xml

You should order your items from newest to oldest and paginate through the page GET parameter, starting from 0. Using the JSON format as an example:

  • https://example.com/path/to/your/api.json?page=0
  • https://example.com/path/to/your/api.json?page=1
  • https://example.com/path/to/your/api.json?page=2

Each page should have exactly 10 items.

We recommend that you protect your API with HTTP authentication and HTTPS so that RebelMouse can use your API this way:

  • https://user:password@example.com/path/to/your/api.json?page=N

What Is RebelMouse?
Request a Proposal

Where 
Websites Are Built

The Fastest Sites in the World Run on RebelMouse

Let’s Chat

new!

RebelMouse Performance Monitoring

Real-Time Core Web Vitals

Get Started
DISCOVER MORE

Our Core Features

Our platform is a complete digital publishing toolbox that's built for modern-day content creators, and includes game-changing features such as our:

animate
Layout and Design toolLayout and Design tool on mobile
animate

Why RebelMouse?

Unprecedented Scale

RebelMouse sites reach more than 120M people a month, with an always-modern solution that combines cutting-edge technology with decades of media savvy. And due to our massive scale, 1 in 3 Americans have visited a website powered by RebelMouse.

120M+ Users
550M+ Pageviews
17+ Avg. Minutes per User
6+ Avg. Pages per User

Today's Top Websites Use RebelMouse

Thanks to the tremendous scale of our network, we are able to analyze a wealth of traffic data that informs our strategies and allows us to be a true strategic partner instead of just a vendor.

upworthyindy100Vault12No Film SchoolRawStoryResponsible StatecraftPrideRolling Stone QuebecPremierGuitarPenskeINN Educate Brand ConnectThe FulcrumGZEROOkayafricaBrit+CoPaper MagazinePowerToFlyNarcityCommonDreamsAllBusiness

What Clients Say

We’re here to help you weigh and understand every tech and strategic decision that affects your digital presence. Spend less time managing everything yourself, and more time focused on creating the quality content your users deserve.

Case Studies

A Team (and an Agency) Built Like No Other

RebelMouse employs a unique, diverse, and decentralized team that consists of 70+ digital traffic experts across more than 25 different countries. We have no central office, and we cover every time zone to ensure that we’re able to deliver amazing results and enterprise-grade support around the clock.

Our team is well-versed in all things product, content, traffic, and revenue, and we strategically deploy ourselves to help with each element across all of our clients. We thrive on solving the complex.

Let's Chat