The basics

Creating your first android APP

The first thing you need before starting to consume this API is to obtain an API token from http://api.feed.nu/. Authenticate yourself with your google account, enter your name and then copy the token and use it as authentication when consuming this API.

When you have your token you are ready to consume the API. Start with creating a new application by calling generateAndroidApp together with a package name. The name should be a qualified java package name like com.domain.your_app_name.

The next thing you probably want to do for testing the application is to provide it with some content from an RSS url. To do that you should call the updateAndroidMeta API. The meta name for rss feeds is "rss_feeds" it can have more than one feed at the time and it should be separated with new lines. Here is a sample json to update rss_feeds property:

{
  "metas": [
    {
      "name": "rss_feeds",
      "value": "http://domain.com/feed/"
    }
  ]
}

If you want you can now compile your application to see what it looks like. Do that by calling generateAndroidApp and enter the packageName that you used when creating you application. You will receive an email after a while with a link to download the compiled APK on your android phone.

You probebly want to enter som more meta data to customize your APP. the see a list of all availible settings you can call getAvailibleMetaSettings. Update your meta data again and then call generateAndroidApp to compile it.

Each time you compile your app you beta version of your application will be overwritten. When you feel like you are finished you can publish the application by calling publishBeta. Each time the app is published the app will try to update itself. Don't use the publishBeta if you are planing to host the application in google play!

Last 7 days, UTC

Average Latency
25ms

Average Uptime
100.0%

Current Status
Online

  • No information
  • Outage
  • Disruption
  • Normal
Average latency determined from Mashape to API Response time

Simple & Straightforward Pricing

Pay as you go. No long-term contracts.

Freemium

$0

additional fees may apply

Unlimited Usage

no additional cost

Push

Subscribe
Header Authentication

Authentication
Description
Parameter
String

Get your api token from http://api.feed.nu/. You need to authenticate with your gmail account, then copy your API and enter it here

token

Required

Endpoints

HTTP 200 : publishBetaResponse POST/android/{packageName}/publish/
						{
  "payload": null,
  "status": 200,
  "message": "App has been released"
}						
publishBeta

Test console
Description
Parameter
string

Example: com.warting.blogg.stefan

packageName

Required

Android/App

HTTP 200 : AndroidAppResponse PUT/android/{packageName}/
						{
  "payload": {
    "id": 123,
    "packageName": "com.warting.blogg.stefan",
    "buildNumber": 12,
    "betaVersion": null,
    "releaseVersion": {
      "versionName": "beta-1",
      "buildNumber": 1,
      "blobKey": "AMIfv94UcBlg0lcTa3uWqjvhqaxlyVE_XSHb7LIFxRVzyvy9JLEIcBa8WzGDyyV08EaWYOZiwnThlV5Q18rwBT1MraiN9sE9VpzJeZ31V8g_wwXIZcgFPvsWCpMDZV8IiStoGvwu5HQmC9iV6vaH9ygLpRN7zTgIYg"
    },
    "androidMeta": [
      {
        "id": 18003,
        "name": "rssfeeds",
        "value": "http://feeds.feedburner.com/warting/?rand=%1$s"
      },
      {
        "id": 21002,
        "name": "xhdpi_icon_launcher",
        "value": "AMIfv95jNTkWCkvTpJ1a_9KKfQTXlnbeSTWv2DZdu8xrFu851PBdk9KQAKIDgQ-VjhMnsr3FcDIRt3HhEQklRabh6Q1J08T2fSfGjRtlaTIHicpqLMkzm4m5dEEUX8xwvkkrx2URuemyStXzBinwP8Gr_25CzM904A"
      },
      {
        "id": 25001,
        "name": "xhdpi_top_image",
        "value": "AMIfv94X3sfDWzisfOWTRTcaezkGU5EdSqPh-jZW13GEjTZnMExJhTT-tg-xi6SR_3tYbrMYnq-b0t0UO0_hHsWFYqHTgB7uENuV8iLUnJdt4fQt7EyIScyulYjctsiErPoV9qUetUJEa-JYOHgQNAOkn1hV1D692Q"
      },
      {
        "id": 26001,
        "name": "xhdpi_item_icon",
        "value": "AMIfv955q8FLWTjBMkYMQ567Cx3sbMs6BoE06cOSIjiLXE-yr0M8vHycO0zyFE3e2-FC4G_GB9gXRzTeOH-RtiDCbPlMwOOE0zn8Cxp-89LIY39ZU66aFBjfEFISWpTxncZP4BTAKSze5eDBIIyWq7j9MHvrjCCkAg"
      },
      {
        "id": 27001,
        "name": "xhdpi_is_read_icon",
        "value": "AMIfv96TqdpBEdM4baCqMdxsThmh2CX-NBFgDbB961o6FM1bDSdzCMbmuKk2lCtCkDFCS5nyrmkGxoZVGBb1XRoJ0CVcyiQkZ3iYTSuQ1akqgppa65XgNMs4gpv5uPisfPmQf6nKulxNRWteHska7CcKZSSCFMbsWA"
      },
      {
        "id": 28001,
        "name": "xhdpi_icon_small",
        "value": "AMIfv95exF3Vv-Tg4L1InxWkLoS2p89kIEpYwRiU6WTrs3XtdOD_TMUdUUQhftB4WoNZWaFsSRSVqCd0iT-7nYZgSz4PsdK4Wq71niK5QpC-Pb-qGWAJQSx4Av_49TaP7eNsIHLmpj_ZUCYSBeDWjJ4GuktMdOVslg"
      },
      {
        "id": 29001,
        "name": "app_name",
        "value": "Stefans APP"
      }
    ]
  },
  "status": 200,
  "message": "ok"
}						
createAndroidApp

Test console
Description
Parameter
string

The package name of your app
Example: com.warting.blogg.stefan

packageName

Required

Request Body

HTTP 200 : AndroidAppDeletedResponse DELETE/android/{packageName}/
						{
  "payload": "App deleted",
  "status": 200,
  "message": "ok"
}						
deleteAndroidApp

Test console
Description
Parameter
string

packageName

Required

HTTP 200 : string GET/android/{packageName}/generate/
generateAndroidApp

Test console
Description
Parameter
string

Example: com.warting.blogg.stefan

packageName

Required

HTTP 200 : AndroidAppResponse GET/android/{packageName}/
						{
  "payload": {
    "id": 123,
    "packageName": "com.warting.blogg.stefan",
    "buildNumber": 12,
    "betaVersion": null,
    "releaseVersion": {
      "versionName": "beta-1",
      "buildNumber": 1,
      "blobKey": "AMIfv94UcBlg0lcTa3uWqjvhqaxlyVE_XSHb7LIFxRVzyvy9JLEIcBa8WzGDyyV08EaWYOZiwnThlV5Q18rwBT1MraiN9sE9VpzJeZ31V8g_wwXIZcgFPvsWCpMDZV8IiStoGvwu5HQmC9iV6vaH9ygLpRN7zTgIYg"
    },
    "androidMeta": [
      {
        "id": 18003,
        "name": "rssfeeds",
        "value": "http://feeds.feedburner.com/warting/?rand=%1$s"
      },
      {
        "id": 21002,
        "name": "xhdpi_icon_launcher",
        "value": "AMIfv95jNTkWCkvTpJ1a_9KKfQTXlnbeSTWv2DZdu8xrFu851PBdk9KQAKIDgQ-VjhMnsr3FcDIRt3HhEQklRabh6Q1J08T2fSfGjRtlaTIHicpqLMkzm4m5dEEUX8xwvkkrx2URuemyStXzBinwP8Gr_25CzM904A"
      },
      {
        "id": 25001,
        "name": "xhdpi_top_image",
        "value": "AMIfv94X3sfDWzisfOWTRTcaezkGU5EdSqPh-jZW13GEjTZnMExJhTT-tg-xi6SR_3tYbrMYnq-b0t0UO0_hHsWFYqHTgB7uENuV8iLUnJdt4fQt7EyIScyulYjctsiErPoV9qUetUJEa-JYOHgQNAOkn1hV1D692Q"
      },
      {
        "id": 26001,
        "name": "xhdpi_item_icon",
        "value": "AMIfv955q8FLWTjBMkYMQ567Cx3sbMs6BoE06cOSIjiLXE-yr0M8vHycO0zyFE3e2-FC4G_GB9gXRzTeOH-RtiDCbPlMwOOE0zn8Cxp-89LIY39ZU66aFBjfEFISWpTxncZP4BTAKSze5eDBIIyWq7j9MHvrjCCkAg"
      },
      {
        "id": 27001,
        "name": "xhdpi_is_read_icon",
        "value": "AMIfv96TqdpBEdM4baCqMdxsThmh2CX-NBFgDbB961o6FM1bDSdzCMbmuKk2lCtCkDFCS5nyrmkGxoZVGBb1XRoJ0CVcyiQkZ3iYTSuQ1akqgppa65XgNMs4gpv5uPisfPmQf6nKulxNRWteHska7CcKZSSCFMbsWA"
      },
      {
        "id": 28001,
        "name": "xhdpi_icon_small",
        "value": "AMIfv95exF3Vv-Tg4L1InxWkLoS2p89kIEpYwRiU6WTrs3XtdOD_TMUdUUQhftB4WoNZWaFsSRSVqCd0iT-7nYZgSz4PsdK4Wq71niK5QpC-Pb-qGWAJQSx4Av_49TaP7eNsIHLmpj_ZUCYSBeDWjJ4GuktMdOVslg"
      },
      {
        "id": 29001,
        "name": "app_name",
        "value": "Stefans APP"
      }
    ]
  },
  "status": 200,
  "message": "ok"
}						
getAndroidApp

Test console
Description
Parameter
string

Example: com.warting.blogg.stefan

packageName

Required

HTTP 200 : string GET/android/{packageName}/push/
pushAndroid

Test console
Description
Parameter
string

Example: com.warting.blog.stefan

packageName

Required

HTTP 200 : AndroidAppResponse POST/android/{packageName}/{buildNumber}/
						{
  "payload": {
    "id": 123,
    "packageName": "com.warting.blogg.stefan",
    "buildNumber": 12,
    "betaVersion": null,
    "releaseVersion": {
      "versionName": "beta-1",
      "buildNumber": 1,
      "blobKey": "AMIfv94UcBlg0lcTa3uWqjvhqaxlyVE_XSHb7LIFxRVzyvy9JLEIcBa8WzGDyyV08EaWYOZiwnThlV5Q18rwBT1MraiN9sE9VpzJeZ31V8g_wwXIZcgFPvsWCpMDZV8IiStoGvwu5HQmC9iV6vaH9ygLpRN7zTgIYg"
    },
    "androidMeta": [
      {
        "id": 18003,
        "name": "rssfeeds",
        "value": "http://feeds.feedburner.com/warting/?rand=%1$s"
      },
      {
        "id": 21002,
        "name": "xhdpi_icon_launcher",
        "value": "AMIfv95jNTkWCkvTpJ1a_9KKfQTXlnbeSTWv2DZdu8xrFu851PBdk9KQAKIDgQ-VjhMnsr3FcDIRt3HhEQklRabh6Q1J08T2fSfGjRtlaTIHicpqLMkzm4m5dEEUX8xwvkkrx2URuemyStXzBinwP8Gr_25CzM904A"
      },
      {
        "id": 25001,
        "name": "xhdpi_top_image",
        "value": "AMIfv94X3sfDWzisfOWTRTcaezkGU5EdSqPh-jZW13GEjTZnMExJhTT-tg-xi6SR_3tYbrMYnq-b0t0UO0_hHsWFYqHTgB7uENuV8iLUnJdt4fQt7EyIScyulYjctsiErPoV9qUetUJEa-JYOHgQNAOkn1hV1D692Q"
      },
      {
        "id": 26001,
        "name": "xhdpi_item_icon",
        "value": "AMIfv955q8FLWTjBMkYMQ567Cx3sbMs6BoE06cOSIjiLXE-yr0M8vHycO0zyFE3e2-FC4G_GB9gXRzTeOH-RtiDCbPlMwOOE0zn8Cxp-89LIY39ZU66aFBjfEFISWpTxncZP4BTAKSze5eDBIIyWq7j9MHvrjCCkAg"
      },
      {
        "id": 27001,
        "name": "xhdpi_is_read_icon",
        "value": "AMIfv96TqdpBEdM4baCqMdxsThmh2CX-NBFgDbB961o6FM1bDSdzCMbmuKk2lCtCkDFCS5nyrmkGxoZVGBb1XRoJ0CVcyiQkZ3iYTSuQ1akqgppa65XgNMs4gpv5uPisfPmQf6nKulxNRWteHska7CcKZSSCFMbsWA"
      },
      {
        "id": 28001,
        "name": "xhdpi_icon_small",
        "value": "AMIfv95exF3Vv-Tg4L1InxWkLoS2p89kIEpYwRiU6WTrs3XtdOD_TMUdUUQhftB4WoNZWaFsSRSVqCd0iT-7nYZgSz4PsdK4Wq71niK5QpC-Pb-qGWAJQSx4Av_49TaP7eNsIHLmpj_ZUCYSBeDWjJ4GuktMdOVslg"
      },
      {
        "id": 29001,
        "name": "app_name",
        "value": "Stefans APP"
      }
    ]
  },
  "status": 200,
  "message": "ok"
}						
setBuildNumber

Test console
Description
Parameter
string

Example: com.warting.blogg.stefan

packageName

Required

string

Example: 12

buildNumber

Required

Android/Apps

HTTP 200 : AndroidAppsResponse GET/android/
						{
  "payload": [
    {
      "id": 123,
      "packageName": "com.warting.blogg.stefan",
      "buildNumber": 11,
      "betaVersion": null,
      "releaseVersion": null,
      "androidMeta": null
    }
  ],
  "status": 200,
  "message": "ok"
}						
getAndroidApps

Get a list of all your android apps


Android/File

HTTP 200 : FileInfoResponse POST/android/file/{packageName}/uploadimage/
						{
  "payload": {
    "keyString": "AMIfv6n356356jfa33r4u8A_THhpImjM2kRbXP4YFOjAW1Y-75O2heodHkAhv8n5BtCTXPB6i3htV6Ba5AIcNFGdf434356q9qAkH3q7VXNMtK7jfe7CBQMyD30LXENGqmPMnFuHRYsAlGmY5VVopLQ",
    "contentType": "application/vnd.android.package-archive",
    "creationDate": 1357750752657,
    "fileName": "test.png",
    "md5Hash": "4032b7e58843gf03d3413761f810bb85c",
    "size": 2039024
  },
  "status": 200,
  "message": "ok"
}						
uploadImage

Test console
Description
Parameter
string

Example: com.warting.blogg.xxx

packageName

Required

string

Example: xhdpi_top_image

name

Required

binary

Example: /path/file.png

file

Required

Android/Meta

HTTP 200 : AvailableMetaSettingsList GET/android/meta/availableSettings/
						{
  "payload": [
    {
      "name": "",
      "description": "Array settings",
      "type": "SECTION"
    },
    {
      "name": "rss_feeds",
      "description": "Enter your rss feed url:s, one url on each line. The feed will be fetched thru google feed api. So when sending out push notification about updates google may still use your cached version. You can add a random string placeholder to force google use the new version as this example: http://feeds.feedburner.com/warting/?rand=%1$s, the %1$s string will be replaced with a random string.",
      "type": "TEXTARRAY"
    },
    {
      "name": "rss_feed_objects",
      "description": "If you want to provide your data by yourself you can enter your json formated news here. it should be the same format as this: http://goo.gl/JhWLN",
      "type": "TEXTARRAY"
    },
    {
      "name": "",
      "description": "Color settings",
      "type": "SECTION"
    },
    {
      "name": "border",
      "description": "The color of all borders",
      "type": "COLOR"
    },
    {
      "name": "background",
      "description": "The color of the background",
      "type": "COLOR"
    },
    {
      "name": "list_background",
      "description": "The color of the background in lists",
      "type": "COLOR"
    },
    {
      "name": "text",
      "description": "The color of texts",
      "type": "COLOR"
    },
    {
      "name": "button_text",
      "description": "The color of the text on buttons",
      "type": "COLOR"
    },
    {
      "name": "actionbar_background",
      "description": "The color of the actionbar",
      "type": "COLOR"
    },
    {
      "name": "actionbar_border",
      "description": "The bottom border color in the actionbar",
      "type": "COLOR"
    },
    {
      "name": "",
      "description": "Images settings",
      "type": "SECTION"
    },
    {
      "name": "xhdpi_icon_launcher",
      "description": "The icon that you first click on when starting the application",
      "type": "IMAGE"
    },
    {
      "name": "xhdpi_icon_small",
      "description": "The icon that shows on the notifications",
      "type": "IMAGE"
    },
    {
      "name": "xhdpi_item_icon",
      "description": "The unread icon on items in newslist",
      "type": "IMAGE"
    },
    {
      "name": "xhdpi_is_read_icon",
      "description": "The  icon on items in newslist when it is marked as read",
      "type": "IMAGE"
    },
    {
      "name": "xhdpi_mybtn_focus",
      "description": "The nine grid scalable image that is used when a button is focused",
      "type": "IMAGE"
    },
    {
      "name": "xhdpi_mybtn_normal",
      "description": "The nine grid scalable image that is used when a button is normal",
      "type": "IMAGE"
    },
    {
      "name": "xhdpi_mybtn_pressed",
      "description": "The nine grid scalable image that is used when a button is pressed",
      "type": "IMAGE"
    },
    {
      "name": "xhdpi_top_image",
      "description": "The top image that is displayed at the welcome screen",
      "type": "IMAGE"
    },
    {
      "name": "",
      "description": "Live settings",
      "type": "SECTION"
    },
    {
      "name": "client_admob_code",
      "description": "you admob publisher code, get it at admob.com",
      "type": "TEXT"
    },
    {
      "name": "creds_ratio",
      "description": "how much do you think this app is worth?",
      "type": "PERCENTAGE"
    },
    {
      "name": "ads_disabled",
      "description": "disable ads completly",
      "type": "BOOLEAN"
    },
    {
      "name": "",
      "description": "String settings",
      "type": "SECTION"
    },
    {
      "name": "app_name",
      "description": "Application name",
      "type": "TEXT"
    },
    {
      "name": "settings",
      "description": "Settings",
      "type": "TEXT"
    },
    {
      "name": "sync_now",
      "description": "Syncronize now",
      "type": "TEXT"
    },
    {
      "name": "reset_database",
      "description": "Reset database",
      "type": "TEXT"
    },
    {
      "name": "mark_all_as_read",
      "description": "Mark all as read",
      "type": "TEXT"
    },
    {
      "name": "read_more",
      "description": "Read more",
      "type": "TEXT"
    },
    {
      "name": "share_title",
      "description": "Share title",
      "type": "TEXT"
    },
    {
      "name": "share_message",
      "description": "Share",
      "type": "TEXT"
    },
    {
      "name": "menu_about",
      "description": "About",
      "type": "TEXT"
    },
    {
      "name": "about_app_title",
      "description": "About app title",
      "type": "TEXT"
    },
    {
      "name": "about_text",
      "description": "About text",
      "type": "TEXT"
    },
    {
      "name": "update_dialog",
      "description": "Update dialog",
      "type": "TEXT"
    },
    {
      "name": "update_ticker",
      "description": "Update ticker",
      "type": "TEXT"
    },
    {
      "name": "update_context_text",
      "description": "Update context text",
      "type": "TEXT"
    },
    {
      "name": "app_date_format",
      "description": "App date format (yyyy-MM-dd kk:mm)",
      "type": "TEXT"
    },
    {
      "name": "feed_description",
      "description": "Welcome text",
      "type": "TEXT"
    },
    {
      "name": "start_reading",
      "description": "Start reading",
      "type": "TEXT"
    },
    {
      "name": "new_items",
      "description": "New items",
      "type": "TEXT"
    },
    {
      "name": "no_unread_items",
      "description": "No unread items",
      "type": "TEXT"
    },
    {
      "name": "text_direction",
      "description": "Text direction (rtl or ltr",
      "type": "TEXT"
    },
    {
      "name": "article_css",
      "description": "Article css",
      "type": "TEXT"
    },
    {
      "name": "article_extra_header",
      "description": "Article extra header",
      "type": "TEXT"
    },
    {
      "name": "splash_loading",
      "description": "Splash loading text",
      "type": "TEXT"
    },
    {
      "name": "view_after_loading",
      "description": "View after loading (welcome or postslist",
      "type": "TEXT"
    },
    {
      "name": "post_icon",
      "description": "Post icon description",
      "type": "TEXT"
    },
    {
      "name": "version_name",
      "description": "Version name",
      "type": "TEXT"
    }
  ],
  "status": 200,
  "message": "ok"
}						
getAvailableMetaSettings

HTTP 200 : updateAndroidMetaResponse POST/android/meta/{packageName}/
						{
  "payload": {
    "strings": [
      "app_name is updated",
      "wrong_field not recognized"
    ]
  },
  "status": 200,
  "message": "ok"
}						
updateAndroidMeta

Test console
Description
Parameter
string

The packageName of your android app
Example: com.warting.blogg.stefan

packageName

Required

Request Body

File

HTTP 200 : binary GET/file/{id}/content/
getFileContent

Test console
Description
Parameter
string

Example: AMIfv963MiN-HzrleHEbqSeUTLs74g7cfqmgGz2qB9rDcAXjbou2YV7FCDFLYNWdVEHzNmI0bwAldbUZpBAxFAMDg7IwYyiv8RO99UXn1C5rZP_4p4mH6YGhOVj1oO90OPVGRK04tYErPqgl3Dt-R6PRgX7r3fAwyA

id

Required

HTTP 200 : FileInfoResponse GET/file/{id}/
						{
  "payload": {
    "keyString": "AMIfv6n356356jfa33r4u8A_THhpImjM2kRbXP4YFOjAW1Y-75O2heodHkAhv8n5BtCTXPB6i3htV6Ba5AIcNFGdf434356q9qAkH3q7VXNMtK7jfe7CBQMyD30LXENGqmPMnFuHRYsAlGmY5VVopLQ",
    "contentType": "application/vnd.android.package-archive",
    "creationDate": 1357750752657,
    "fileName": "test.png",
    "md5Hash": "4032b7e58843gf03d3413761f810bb85c",
    "size": 2039024
  },
  "status": 200,
  "message": "ok"
}						
getFileInfo

Test console
Description
Parameter
string

Example: AMIfv948lmzbPiOovZn3XipuJCeDNu8A_THhpImjM2kRbXP4YFOjAW1Y-75O2heodHkAhv8n5BtCTXPB6i3htV6Ba5AIcNFGDGTX3O3n1Aq9qAkH3q7VXNMtK7jfe7CBQMyD30LXENGqmPMnFuHRYsAlGmY5VVopLQ

id

Required

User

HTTP 200 : UserResponse GET/user/
						[{
  "payload": {
    "userId": "11537345734734127064",
    "email": "user@domain.com",
    "nickname": "firstname.lastname",
    "forename": "firstname",
    "surname": "lastname",
    "authorities": 4,
    "enabled": true,
    "token": "jk398c63hjldf88903k3gd837b23898"
  },
  "status": 200,
  "message": "ok"
}]						
getUser

You must have an API key to test this API!


Mashape allows developers to find, consume, and distribute cloud APIs just like Feed.nu.

Login to your account or signup: Create Account

or
   Signup with GitHub

By signing up you agree to our terms of service.