OUYA store API documentation

This is an attempt to document the API used by OUYA gaming consoles to speak with devs.ouya.tv.

Contents

Standard HTTP headers

The following HTTP headers are sent with nearly every HTTP request from the OUYA console to the servers.

Accept-Encoding

gzip

The OUYA understands gzip compression

Accept-Language

en-US,en

User-Agent

OUYA 0 1.00 1.2.1427_r1

X-OUYA-AuthToken

96bfeaae-212d-447b-b4bf-caa5e86c0502

Authentication token one got from logging in.

Only sent when logged in.

X-OUYA-Console-Id

015d4b33bc64141b

Serial number you see when running $ adb devices

X-OUYA-Console-Wifi-MAC-Address

B8:5A:F7:82:3C:C8

X-OUYA-Device

ouya_1_1

Probably hardware revision

X-OUYA-Firmware-Version

1.2.1427_r1

X-OUYA-VersionCode

16

X-Token

96bfeaae-212d-447b-b4bf-caa5e86c0502

Only sent when logged in.

Same as X-OUYA-AuthToken.

FIXME: Why two token headers?

FIXME: Why auth_token GET parameter when there are headers?

Headers to ignore

Cookie

__cfduid=da019d762142461c19f162c0ee443f9c71434577887

Comes from the cloudflare error page. Can be ignored.

Cookie2

$Version=1

??? FIXME

Not on the cloudflare error page.

POST https://ott9.wpstn.com/live/

Store credit card data.

Usage

Called after fetching a one time token from POST https://devs.ouya.tv/api/v1/credit_card.

HTTP request

Protocol

https

Method

POST

Host

ott9.wpstn.com

Path

/live/

Headers
Content-Type

application/x-www-form-urlencoded

User-Agent

OUYA 0 1.00 1.2.1427_r1

POST parameters
Action:

Add

OTT:

Random one-time token from credit card POST request.

AcctName:

Credit card account holder name

AcctNumber:

4111111111111111

Credit card number

ExpDate:

012017

Month & year

CVN:

777

Secret code

Email:

E-mail address

ZipCode:

Postal code

HTTP response

Status code

303 See Other

Redirects to wpsuccess URL on devs.ouya.tv with the OTT parameter:

https://devs.ouya.tv/wpsuccess?OTT=C187D8AE8970...

The redirect location header seems to be ignored; it does not get called. Instead, PUT https://devs.ouya.tv/api/v1/credit_card is fetched.

GET http://status.ouya.tv/api/v1/status

Check if the internet connection is working by fetching an empty file.

HTTP request

Protocol

http

Method

GET

Host

status.ouya.tv

Path

/api/v1/status

Headers

None of the standard headers.

User-Agent

Ouya-Connection-Test

HTTP response

Status code

204 No Content

Empty body.

GET https://devs.ouya.tv/api/firmware_builds

List the latest available firmware version.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/firmware_builds

Headers

Standard headers

Token parameters not required.

GET parameters
auth_token

May be empty.

Does not seem to have any influence on the response.

oobe

true

Can be omitted.

Does not seem to have any influence on the response.

FIXME: what is that for? "Out Of (the) Box Experience"? Does it change anything?

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Example

{
  "result": [
    {
      "incremental": false,
      "filename": "OUYA-1.2.1427-r1.zip",
      "timestamp": "1418407476",
      "md5sum": "3a95be82b4c33bd68353dc314346f39f",
      "channel": "stable",
      "url": "http://cds.t2z5c2q6.hwcdn.net/ota/RC-OUYA-1.2.1427-r1_ota.zip",
      "requiredUpto": "1.2.995",
      "changes": "https://devs.ouya.tv/api/changelog/3a95be82b4c33bd68353dc314346f39f.txt",
      "changesLocalized": {
        "de": " <!doctype html>\r\n<html>\r\n...",
        "it": "<!doctype html>\r\n<html>\r\n..",
        "fr": "<!doctype html>\r\n<html>\r\n..",
        "es": "<!doctype html>\r\n<html>\r\n..",
        "en": "<!doctype html>\r\n<html>\r\n.."
      }
    }
  ]
}

GET https://devs.ouya.tv/api/v1/apps/xxx

Fetch the details for an app/game.

Usage

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/apps/xxx

xxx

package name of an app

Example: /api/v1/apps/com.toa.tetrisFusionOuya

Headers

Standard headers

console_id

Same as X-OUYA-Console-Id

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "app": {
    "videoUrl": null,
    "publishedAt": "2014-12-05T20:30:48Z",
    "firstPublishedAt": "2014-08-25T03:35:11Z",
    "latestVersion": "0fba3bba-83e0-4e3e-9f29-409258429757",
    "promotedProduct": {
      "originalPrice": 4.49,
      "localPrice": 4.49,
      "percentOff": 0,
      "description": "Play head-to-head against another opponent. If you don't have a second controller connected, you can play against a CPU-controlled opponent.",
      "currency": "EUR",
      "name": "2P VS Battle Mode",
      "identifier": "TBOE_Mode2P_1-50"
    },
    "genres": [
      "Puzzle/Trivia",
      "Arcade/Pinball",
      "Retro"
    ],
    "premium": false,
    "description": "Tetris® Battle: Fusion is now available on OUYA!  Based on Tetris Battle, the hugely popular multiplayer game on Facebook that has been downloaded over 60 million times, Tetris Battle: Fusion introduces an all-new interactive adventure where you can battle your way through a series of challenging opponents and goals to become a Tetris Master!  Collect special Amulets that can be used to give you an added boost as you progress your way to victory.  Over 50 Amulets are ready to collect, and more will be added periodically. With the help of Amulets, don't change the way you play ... change the way you WIN!  The game also features a 1v1 local co-op mode that enables friends in the same room to go head-to-head using previously earned Amulets.\r\n\r\nPLEASE NOTE: This app contains in-app purchasing, which allows you to buy items within the app using actual money.",
    "developer": "Tetris Online, Inc.",
    "gamerNumbers": [
      1
    ],
    "ratingCount": 861,
    "ratingAverage": 3.73,
    "apkFileSize": 41125055,
    "founder": false,
    "mainImageFullUrl": "https://devs-ouya-tv-prod.s3.amazonaws.com/apps/a137f31c-ad28-47e6-ae43-0a346ebe249a/com.toa.tetrisFusionOuya/0fba3bba-83e0-4e3e-9f29-409258429757/ouya_icon.png",
    "website": "www.tetrisonline.com",
    "supportPhone": null,
    "supportEmailAddress": "support@tetrisonline.com",
    "title": "Tetris Battle Fusion",
    "uuid": "0fba3bba-83e0-4e3e-9f29-409258429757",
    "versionNumber": "2.0.1r",
    "likeCount": 0,
    "overview": "Released in December 2014 by Tetris Online, Inc..",
    "filepickerScreenshots": [
      "https://www.filepicker.io/api/file/fio2PmJQQla1fZdVEZxl",
      "https://www.filepicker.io/api/file/VESfV97VTSn4uRp5lY9A",
      "https://www.filepicker.io/api/file/To75Tn2Tw6J7nvPG4nBk",
      "https://www.filepicker.io/api/file/bjzlwTjvQe6HA4awlHTw",
      "https://www.filepicker.io/api/file/qcQEibHxT9Wa1PCoMpX2",
      "https://www.filepicker.io/api/file/kQKVJ2xyRnCnmysUjZkD",
      "https://www.filepicker.io/api/file/8zJEBwIBTmoFNiJyLKoY",
      "https://www.filepicker.io/api/file/zTnyJklUSYOlpJ1E04fH"
    ],
    "contentRating": "Everyone",
    "md5sum": "ad1f58f365859e5bc0db8c237b4c4514",
    "publicSize": 258150,
    "nativeSize": 5607144
  }
}

GET https://devs.ouya.tv/api/v1/apps/xxx/download

Fetch the download link for a specific version of an app.

Usage

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/apps/xxx/download

xxx

latestVersion string from the apps details page

Example: /api/v1/apps/0fba3bba-83e0-4e3e-9f29-409258429757/download

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "app": {
    "downloadLink": "http://cds.t2z5c2q6.hwcdn.net/apps/a137f31c-ad28-47e6-ae43-0a346ebe249a/com.toa.tetrisFusionOuya/0fba3bba-83e0-4e3e-9f29-409258429757/Gx9cZz0KTRCNstv78Mq5_ToaFusionOuya-2.0.1r.apk",
    "contentRating": "Everyone",
    "version": "0fba3bba-83e0-4e3e-9f29-409258429757",
    "fileSize": 41125055
  }
}

GET https://devs.ouya.tv/api/v1/console_configuration

FIXME: What is this used for?

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/console_configuration

Headers

Standard headers

GET parameters
auth_token

May be empty.

Does not seem to have any influence on the response.

HTTP response

Status code

200 OK

Example

{"BTC_LAUNCHER_PACKAGES":"tv.ouya.xbmc,tunein.player,tv.twitch.android.viewer,com.plexapp.android,tv.ouya.bbciplayer,tv.ouya.hulu,tv.ouya.minecrafttv,tv.ouya.ouyabrowser,tv.ouya.pandora,tv.ouya.visiomgo,tv.ouya.youtube,tv.ouya.tubitv"}

POST https://devs.ouya.tv/api/v1/credit_card

Prepare the credit card registration process and fetch a one-time token for the wpstn.com (world pay) credit card processor.

HTTP request

Protocol

https

Method

POST

Host

devs.ouya.tv

Path

/api/v1/credit_card

Headers

Standard headers

Content-Type

application/x-www-form-urlencoded

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

zipcode

Postal code entered on the credit card form.

POST parameters
auth_token:

Same data as in standard header X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Example:

{
  "one_time_token": "C187D8AE8970435C9638C58C8351E2DEF975680B737A4B55A3D314BF0C477F2A",
  "redirect_url": "https://ott9.wpstn.com/live/"
}

The one_time_token is used in the following POST request to the URL determined in redirect_url.

See POST https://ott9.wpstn.com/live/.

PUT https://devs.ouya.tv/api/v1/credit_card

Store the result of the credit card storage request.

Usage

Called after POST https://ott9.wpstn.com/live/.

HTTP request

Protocol

https

Method

PUT

Host

devs.ouya.tv

Path

/api/v1/credit_card

Headers

Standard headers

Content-Type

application/x-www-form-urlencoded

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

body:

Complete response including headers

zipcode:

Postal code

POST parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

Example body parameter:

HTTP/1.1 303 See Otherlocation: https://devs.ouya.tv/wpsuccess?OTT=C187D8AE8970435C9638C58C8351E2DEF975680B737A4B55A3D314BF0C477F2A
Content-Length: 9
Via: 1.1 localhost (Apache-HttpClient/UNAVAILABLE (cache))
Date: Wed, 17 Jun 2015 21:51:23 GMT
See Other

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Example:

{
    "country": null,
    "success": true
}

GET https://devs.ouya.tv/api/v1/details

Detail page for an app bundle.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/details

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

page

UUID of the page to show

Example: be239ca4-10fd-42dd-89cd-1806e80b1362

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "bundle": {
    "apps": [
      {
        "gamerNumbers": [
          1
        ],
        "genres": [
          "Adventure",
          "Kids List",
          "Puzzle/Trivia"
        ],
        "url": "ouya://launcher/details?app=com.GoldenTricycle.Clark",
        "latestVersion": {
          "apk": {
            "md5sum": "a674b6c205502d9b4a907ade90307ba0"
          },
          "versionNumber": "1.24",
          "uuid": "7230ac05-d24c-4347-a990-7ac283c17063"
        },
        "inAppPurchases": true,
        "promotedProduct": {
          "type": "entitlement",
          "developerName": "GoldenTricycle / Hahn Film AG",
          "identifier": "clark_full_license_test",
          "name": "Clarc Full Version",
          "localPrice": 3.99,
          "originalPrice": 3.99,
          "percentOff": 0,
          "currency": "USD",
          "description": "This item unlocks the full game with 25 levels, more than 100 puzzles and more than 10 hours of gameplay."
        },
        "premium": false,
        "type": "app",
        "package": "com.GoldenTricycle.Clark",
        "updated_at": 1384854785,
        "updatedAt": "2013-11-19T09:53:05Z",
        "title": "CLARC",
        "image": "https://www.filepicker.io/api/file/VzCsgc3BTx2RiGpTr4Uw",
        "contentRating": "Everyone",
        "rating": {
          "count": 716,
          "average": 4.25
        }
      },
      {
        "gamerNumbers": [
          1
        ],
        [...]
      }
    ],
    "currency": "EUR",
    "price": 6.99,
    "contentRating": "9+",
    "purchased": false,
    "games": [
      "com.GoldenTricycle.Clark",
      "com.Tripleslash.MagneticByNature",
      "com.Thinice.TwinRobots",
      "com.scaryrobot.badbadbots"
    ],
    "purchaseUrl": "ouya://launcher/purchase?developer=ec1a9ccd-373f-4047-bd07-36466ab7e25d&product=ROBOBUNDLE"
  },
  "buttons": [],
  "apps": [],
  "muted": true,
  "metaData": [
    "Golden Tricycle",
    "Team Tripleslash",
    "Scary Robot",
    "Thinice"
  ],
  "mediaTiles": [
    {
      "url": "https://vimeo.com/84689664",
      "type": "video"
    },
    {
      "urls": {
        "thumbnail": "https://s3.amazonaws.com/ouya-screenshots/be239ca4-10fd-42dd-89cd-1806e80b1362/thumbnails/thumbnail20150202-3-6hikjv.jpeg",
        "full": "https://s3.amazonaws.com/ouya-screenshots/be239ca4-10fd-42dd-89cd-1806e80b1362/oivu9a_RackMultipart20150202-15-1sg3fmt"
      },
      "type": "image"
    }
  ],
  "description": "CLARC, Magnetic By Nature\r\n\r\nAbout CLARC\r\n",
  "title": "ROBO GAME BUNDLE!"
}

GET https://devs.ouya.tv/api/v1/developers/xxx/products/

FIXME: Fetch details about a game purchase option

Usage

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/developers/xxx/products/

xxx

Developer UUID

Example: /api/v1/developers/c4e46efe-05fd-4be9-9d7e-1f7607eabd49/products/

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

only

Product key (same as Identifier in promotedProduct of app details)

Example: &only=unlock_pro

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "developerName": "AppBarbecue Inc.",
  "currency": "USD",
  "products": [
    {
      "type": "entitlement",
      "description": "Instantly unlock full game with all Pro Levels. The challenging puzzles will take days to solve. Explore Assyria, Hanging Gardens & more. ",
      "percentOff": 0,
      "originalPrice": 4.99,
      "localPrice": 4.99,
      "priceInCents": 499,
      "name": "Unlock All Pro Levels",
      "identifier": "unlock_pro"
    }
  ]
}

GET https://devs.ouya.tv/api/v1/discover

Fetch the categories and games in the OUYA store.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/discover

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Response body definition

JSON object with two properties: rows and tiles. rows contains the layout of the "discover" store main view, while tiles contains the list of games/apps available in the store with details.

rows

Array with objects that have with several properties:

showPrice

true or false

ranked

true or false

If the games are sorted by the internal ranking factor, or in order of appearance in tiles.

tiles

array

List of integer game IDs ([0, 1, 2])

title

string

Title of the category

tiles

Array of objects that each describe a single application.

The position in the tiles array is the ID used by rows/tiles.

bundle

Only there when it's not a single game but a bundle of games that can be bought.

Object with the following properties:

apps

array

Array of package strings

currency

EUR

price

float

contentRating

See contentRating description below.

purchaseUrl

string

URL where to initiate buying the bundle

ouya://launcher/purchase?developer=ec1a9ccd-373f-4047-bd07-36466ab7e25d&product=ROBOBUNDLE

contentRating

For which audiences the game is meant

Seen values:

  • Everyone

  • 9+

  • 12+

  • 17+

gamerNumbers

array

List of integers describing how many players can play the game

genres

array

Array of strings with genre titles.

["Fight!", "Multiplayer", "Platformer"]

Known genres:

  • Adventure

  • App

  • Arcade/Pinball

  • Card/Casino

  • Dual Stick

  • Entertainment

  • Fight!

  • FPS/Shooter

  • Kids List

  • Meditative

  • Multiplayer

  • Music

  • Platformer

  • Puzzle/Trivia

  • Racing

  • Retro

  • Role-Playing

  • Short on Time?

  • Sim/Strategy

  • Sports

  • Utility

  • Video

image

URL to an image displayed in store view.

Size should be 732x412.

.jpg and .png files work.

inAppPurchases

true or false

If you can/have to pay within the game

latestVersion

object

apk
md5sum

MD5 hash of the apk file. Used for verification after download.

versionNumber

string with current version, e.g. 1.11

uuid

???

package

string

java package name prefix, e.g. evil.corptron.DuckGame

premium

true or false

FIXME: What is that for?

promotedProduct

object

Bundles do not have this property set.

??? FIXME: What is that for?

currency

string

EUR

description

string

developerName

string

Name of the developer or company who made the game

identifier

string

???

localPrice

float

Current price

name

string

Title of the game

originalPrice

float

Price it did once cost

percentOff

integer

Percent difference between originalPrice and localPrice

type

string

entitlement is the only type seen within promotedProduct.

rating

Object with two properties: count and average.

count

integer

Number of votes for this game

average

float

Average rating (1-5)

title

Name of the app/game

type

app or discover or details_page

Bundles always have details_page.

updated_at

integer

Unix timestamp of last update date

updatedAt

string

ISO 8601-date, e.g. 2014-12-04T22:16:30Z

url

string

URL for the game details page

Game details

ouya://launcher/details?app=evil.corptron.DuckGame

Bundle details

ouya://launcher/details?page=be239ca4-10fd-42dd-89cd-1806e80b1362

See GET https://devs.ouya.tv/api/v1/details.

title

string

Always DISCOVER.

Example

{
  "rows": [
    {
      "showPrice": true,
      "ranked": true,
      "tiles": [ 0, 1, 2, 3 ],
      "title": "TRENDING NOW"
    },
    {
      "showPrice": true,
      "ranked": false,
      "tiles": [ 94, 95, 96 ],
      "title": "NEW RELEASES"
    },
    {
      "showPrice": true,
      "ranked": false,
      "tiles": [ 94, 62 ],
      "title": "OUR FOUNDERS"
    }
  ],
  "tiles": [
    {
      "gamerNumbers": [
        1
      ],
      "genres": [
        "Fight!",
        "Multiplayer",
        "Platformer",
        "Retro",
        "Sports"
      ],
      "url": "ouya://launcher/details?app=evil.corptron.DuckGame",
      "latestVersion": {
        "apk": {
          "md5sum": "ac4e1ddefe383f8314fe5914edcf8705"
        },
        "versionNumber": "1.11",
        "uuid": "7cbd8b8b-e9df-4c30-9e0f-5a777c5e4eb4"
      },
      "inAppPurchases": true,
      "promotedProduct": {
        "type": "entitlement",
        "developerName": "Landon Podbielski",
        "identifier": "DUCKGAME",
        "name": "Duck Game",
        "localPrice": 8.99,
        "originalPrice": 8.99,
        "percentOff": 0,
        "currency": "EUR",
        "description": "You are buying Duck Game you lucky person. "
      },
      "premium": false,
      "type": "app",
      "package": "evil.corptron.DuckGame",
      "updated_at": 1417731390,
      "updatedAt": "2014-12-04T22:16:30Z",
      "title": "DUCK GAME",
      "image": "https://www.filepicker.io/api/file/iESEZs3fSUafrXuNpagi",
      "contentRating": "Everyone",
      "rating": {
        "count": 1155,
        "average": 4.31
      }
    },
    {
      "gamerNumbers": [
        1,
        2
      ],
      "genres": [
        "Adventure",
        "Arcade/Pinball",
        "Dual Stick",
        "FPS/Shooter",
        "Fight!",
        "Kids List",
        "Multiplayer",
        "Racing",
        "Short on Time?"
      ],
      "url": "ouya://launcher/details?app=com.media.playcast.OUYA.BAA",
      "latestVersion": {
        "apk": {
          "md5sum": "39931a3179e6c984771f0f1f49b59e87"
        },
        "versionNumber": "1.6.35707.8",
        "uuid": "abe8eeb3-4fd9-45bb-ba6b-50eb9d60478b"
      },
      "inAppPurchases": true,
      "promotedProduct": null,
      "premium": false,
      "type": "app",
      "package": "com.media.playcast.OUYA.BAA",
      "updated_at": 1433234808,
      "updatedAt": "2015-06-02T08:46:48Z",
      "title": "GameFly Packful Of Fun",
      "image": "https://www.filepicker.io/api/file/05y2T8cKTY6cUfX7RYFR",
      "contentRating": "17+",
      "rating": {
        "count": 394,
        "average": 4.09
      }
    },
    {
      "url": "ouya://launcher/details?page=08db29bd-c2f0-41d7-9e5d-d842f1bf34d2",
      "image": "https://s3.amazonaws.com/ouya-screenshots/08db29bd-c2f0-41d7-9e5d-d842f1bf34d2/thumbnails/thumbnail20150512-3-1gigg1x.jpeg",
      "uuid": "08db29bd-c2f0-41d7-9e5d-d842f1bf34d2",
      "title": "OUYA PRESENTS: JOE DANGER",
      "type": "details_page"
    },
    {
      "url": "ouya://launcher/details?page=3bdbe05a-201f-40c0-bb58-5aa4d6ea79dc",
      "image": "https://s3.amazonaws.com/ouya-screenshots/3bdbe05a-201f-40c0-bb58-5aa4d6ea79dc/thumbnails/thumbnail20150220-3-1p5bhh7.jpeg",
      "uuid": "3bdbe05a-201f-40c0-bb58-5aa4d6ea79dc",
      "title": "OUYA PRESENTS: THE JACKBOX PARTY PACK",
      "type": "details_page"
    },
  ],
  "title": "DISCOVER"
}

GET https://devs.ouya.tv/api/v1/discover/home

Probably the list of games to be featured on the main menu.

More than the 4 displayed because it could be that a player already bought some of them - they would not be shown then.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/discover/home

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Response body definition

Same as GET https://devs.ouya.tv/api/v1/discover with some limitations:

  • Only one entry in the rows array

    Title of this row is FEATURED, price is shown, not ranked.

  • title attribute value is home.

POST https://devs.ouya.tv/api/v1/events

Send information about the last events on the OUYA console to the logging/tracking server.

Usage

  1. Every now and then when enough events have been collected

    FIXME: determine exact behavior

HTTP request

Protocol

https

Method

POST

Host

devs.ouya.tv

Path

/api/v1/events

Headers

Standard headers

Content-Type

application/x-www-form-urlencoded

POST parameters
current_time

1434577856574

Some time stamp.

FIXME: which format?

console_id

Same data as in standard header X-OUYA-Console-Id

events

JSON-encoded array of event objects

auth_token

Same data as in standard header X-OUYA-AuthToken

Example event JSON data:

[
    {
        "data": "num_connected_controllers=1 controller_names=\"OUYA Game Controller\" controller_versions=\"104\"",
        "timestamp": 1434577827864,
        "name": "connected_controllers",
        "uuid": "47ebb367-ce5f-4249-88f1-312bfac9efa2"
    },
    {
        "data": "num_apps_sideloaded=0 sideloaded_packages=none",
        "timestamp": 1434577827849,
        "name": "sideloaded_apps",
        "uuid": "7ab19279-0308-4a65-93d2-bc83f3bc518b"
    },
    {
        "data": "hardware_version=0 ouya_version=1.2.1427_r1 system_language=eng age_gate=null pin_code=false num_apps_ouya=0 num_apps_sideloaded=0 num_buried_packages=0 hd_space_used=0 hd_space_free=0 mem_free=436621312 mem_total=1018093568 tv_resolution=1920x1080 network_device=ethernet adb_enabled=true",
        "timestamp": 1434577827834,
        "name": "console_snapshot",
        "uuid": "308b7829-a357-4d0d-a79b-2456c40dc678"
    },
    {
        "data": "app_session_uuid=a963561b-a6e8-49f5-bcfa-218bc5a1d6c8 app_session_ouya_uuid=e0eef5de-624c-42f8-9b1b-a0968a27eb03 app_session_package=tv.ouya.oobe app_session_current_activity=tv.ouya.console.launcher.agreements.AgreementsActivity app_session_start_tick=37 app_session_current_tick=605 app_session_active_ticks=568 app_session_last_analog_tick=597 app_session_last_digital_tick=32",
        "timestamp": 1434577800458,
        "name": "app_session_update",
        "uuid": "161d3457-4469-42e3-bbc5-4c8e4a45743f"
    },
    {
        "data": "app_session_uuid=a963561b-a6e8-49f5-bcfa-218bc5a1d6c8 app_session_ouya_uuid=e0eef5de-624c-42f8-9b1b-a0968a27eb03 app_session_package=tv.ouya.oobe app_session_current_activity=tv.ouya.console.launcher.agreements.AgreementsActivity app_session_start_tick=37 app_session_current_tick=605 app_session_active_ticks=568 app_session_last_analog_tick=597 app_session_last_digital_tick=32",
        "timestamp": 1434577800331,
        "name": "app_session_update",
        "uuid": "ce209f8e-c564-4264-afdd-9e139b4d99fd"

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Body

{}

POST https://devs.ouya.tv/api/v1/gamers

Register a new user and/or verify new user registration data.

This method is both used as verification during input, as well as the final registration.

Usage

  1. During registration to check if data are valid

  2. During registration to finish new user sign up and create the account

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/gamers

Headers

Standard headers except token parameters.

Content-Type

application/x-www-form-urlencoded

POST parameters
gamer[username]

User name used to log in

gamer[password]

User password

gamer[password_confirmation]

User password, a second time

gamer[email]

User e-mail address for marketing e-mails

gamer[gender]

unknown | male | female

gamer[email_opt_out]

false | true

Opt out from marketing e-mails

dryrun

true

If set, the user data are not registered - only verified. The response then tells which fields are deemed invalid.

Not set when the user clicks "register".

HTTP response

Success

When everything is ok and the user has been registered (or the data were valid when dryrun was set)

Status code

200 OK

Content type

application/json; charset=utf-8

Response body

{}

Validation error

When some of the data are deemed to be invalid.

Status code

400 Bad Request

Content type

application/json; charset=utf-8

Example:

{
  "error": {
    "data": {
      "username": [
        "can't be blank",
        "is too short (minimum is 3 characters)",
        "is invalid"
      ],
      "password": [
        "can't be blank",
        "cannot contain username"
      ]
    },
    "message": "Validation errors occurred",
    "code": 2006
  }
}

PUT https://devs.ouya.tv/api/v1/gamers/key

Store an encryption key on the server

FIXME: When is that key needed?

HTTP request

Protocol

https

Method

PUT

Host

devs.ouya.tv

Path

/api/v1/gamers/key

Headers

Standard headers

Content-Type

application/x-www-form-urlencoded

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

POST parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

gamer[key]

string

FIXME encryption key

gamer[password]

string

User account password

gamer[username]

string

User account name

Example key:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvf3MvvZui5shNGbt2O0zveXrtfHZNivowNKiO
UagJARKCJmjOJVtZ1srCe95Eul/xBDPDEaH8vJetn5Pl99QwhdYL1ps9mUhmocx90LavQsipr2Dw
B7XshwN/EpW0uR/R84a3yXozpk7dgXi4+y//A+XT+MqgxsY6cdSGrBMsCQIDAQAB
-----END PUBLIC KEY-----

HTTP response

Status code

201 Created

Content type

application/json; charset=utf-8

Body

{}

GET https://devs.ouya.tv/api/v1/gamers/me

Fetch username, e-mail and other data about the user currently logged in.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/gamers/me

Headers

Standard headers

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Example:

{
  "gamer": {
    "uuid": "0a6f5fc0-bf9b-42b2-a4d0-69f2c8e4d5da",
    "settings": {},
    "founder": false,
    "email": "cwdev3@example.org",
    "username": "cwdev3"
  }
}

GET https://devs.ouya.tv/api/v1/gamers/me/agreements

Check which legal agreements have been confirmed by the user, and if there are updates that have to be confirmed.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/gamers/me/agreements

Headers

Standard headers

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Example:

{
  "marketplace_required_version": 2,
  "marketplace": 0,
  "privacy_required_version": 0,
  "privacy": 0
}

Each agreement has an associated HTML file with the same name at https://devs.ouya.tv/agreements/, e.g. https://devs.ouya.tv/agreements/marketplace.html for the marketplace agreement.

PUT https://devs.ouya.tv/api/v1/gamers/me/agreements

Store that a legal agreement has been confirmed by the user.

HTTP request

Protocol

https

Method

PUT

Host

devs.ouya.tv

Path

/api/v1/gamers/me/agreements

Headers

Standard headers

Content-Type

application/x-www-form-urlencoded

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

POST parameters
marketplace:

2

Version of the marketplace agreement

auth_token:

Same data as in standard header X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Body

{}

POST https://devs.ouya.tv/api/v1/gamers/me/consoles

Associate a console ID with the account.

HTTP request

Protocol

https

Method

POST

Host

devs.ouya.tv

Path

/api/v1/gamers/me/consoles

Headers

Standard headers

Content-Type

application/x-www-form-urlencoded

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

POST parameters
console_id:

015d4b33bc64141b

Same data as in standard header X-OUYA-Console-Id

auth_token:

Same data as in standard header X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Body

{}

GET https://devs.ouya.tv/api/v1/gamers/me/user_messages

FIXME

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/gamers/me/user_messages

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example (empty):

{
    "messages": [
        null
    ]
}

FIXME: get a full example

GET https://devs.ouya.tv/api/v1/games/xxx/purchases

FIXME: Check which features have been bought in an app, or if the app has been bought.

Usage

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/games/xxx/purchases

xxx

app package name

Example: /api/v1/games/com.ChrisChung.CatlateralDamage/purchases

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

app_id

com.ChrisChung.CatlateralDamage

Same as the one in the path.

user_agent

launcher

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "blob": "0F/7D3gtCgLNJ6pZsy8M5LOLMlNsKPouBlY2VvYeTSF+k5LZQR0Otbp8vZXV\nS8Ad/hlQAuqrVgnLYEO1gxadfWQnQE1ZEoOnGcxBiNL2svOftt1uonvyTqBt\nKz5qLrd2oNI8V65dX+0ydZ7IwT5TOglC4B/YHKjA32GYNaw7GaNMmu3zJVfF\nJblVT4bZDOeyxTLanp3Fan7fZ6AkMlWy81T5RMf9vB/PBkUWlpIUZeUToXBT\n6HSRV1Ke4kfkyvmY2WisxJ0dApkcgS+bdbWhH7JsdMTT+zwUISxav5iJLkVt\n1fA1g5WN8NwVzb2OKPZcAQm1d/TnsqUnMQBfDAFaji7ADZ0Ukd0xxsirYQTW\nWpNJbFVtAJpkLNjEqVSVWqr0\n",
  "iv": "t3jir1LHpICunvhlM76edQ==\n",
  "key": "CqREllniR2CZsTdqGlSHq+b1n/ludDCPV8AAaR3aF4va8lckIRONsvQmndJS\niccb/UeYHXQOf2o06/oR8rGJvrAf598K7a7QQSSY1u6Btd8op/nOzCn+F7Q5\n4tqu7qvlVRrIMDIQtms/SfQTE2XEyKvEQVm2N/PhbdjXmXmgJHU=\n"
}

POST https://devs.ouya.tv/api/v1/games/xxx/purchases

Buy a game.

After buying the game shows up in GET https://devs.ouya.tv/api/v1/premium_purchases.

Usage

HTTP request

Protocol

https

Method

POST

Host

devs.ouya.tv

Path

/api/v1/games/xxx/purchases

xxx

app package name

Example: /api/v1/games/com.ChrisChung.CatlateralDamage/purchases

Headers

Standard headers

Content-Type

application/x-www-form-urlencoded

GET parameters
auth_token

Same as X-OUYA-AuthToken

user_agent

launcher (at least when bought through the OUYA UI)

POST parameters
blob

Encrypted data

iv

FIXME: Initialization vector for the cryptographic function

key

FIXME: Key used to encrypt the data. FIXME: symmetric or assymetric?

auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "blob": "YKNolqKuaDcQnqQH8yncS+0hVl/YnajMgnojfMaO2IzUpfVg4lBVrz5NF30N\nXUkgpBTnXdcPUalv7YvWsqT9b8Tdm5PYgoduqi2zLyXF+bSWY+bBigDX+MDG\nyvgxjfpYcWeyYaNLn2vhsj0rVNVorT5CggAXrry2eeUIFOX+9IUzbHmxfiqP\nlglVtrudwzQO1PS5n3KNJnHfp+r7vgBG5DzErUK4YHUYBe4/9li313tEIwnK\nX4kDZXSzKiZ2SPfyYTaVgIr82x9GDaIa1ZXIBuFlQSUo55A5Gy7Wy9rTDzMb\n80LdsNlbHeOiSIBN7Rj7CuOu7Uz5btuWLCpmCHZ2xgyhN6I9y2/KTNYa2JIA\n/9fsBGcrdkiu4f3aKdiZlI8bh07npp10KpQEMszz59xr5V6h0Xjjcgw95SaE\nDmxxz3LSRVtNpjGsTlqsb4Jnc/fKcMrJcmzoDLAodfgnSev8hrNUmgs6f/df\neXKQ0J6JuiWAgKXUZ9g5GEkUn0uIo3RzIyVqRIJL9zM6oeaZ487zG1X2e5Xy\noCc1x6GKQpGr9Qp+hRp6HSp8NUyR2ZziD+DSHbZeDaZdu3bbWrzIDEVJLpwU\noVROZR2nqyR9i3eQlpvSJGUPBM9pi8KdYTvOuBKB9hrz1XYe8852bFsbn0G/\np8nmKKPM0xDc0gHuScLfUZQ=\n",
  "iv": "wV8mnhuGz7YaxNSP1QWfVQ==\n",
  "key": "hxvgGjQWJJ8vSidCF5eP4JC1VqUjZxL+ZLq9p6BrbuhSMqvtFU/YZxinKTeD\nMkCnK3Ie0lP8OoKGFl21F+/5rOuybD+FKfVJdXwIsA1ryjkFi8KBMq2G+YWo\nxMM9T0zdkOKiidK1GYHqJyLlVLrEC+qaLSqSPEoL9R0ovZhy64c=\n"
}

GET https://devs.ouya.tv/api/v1/premium_purchases

Get a list of all games that have been bought.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/premium_purchases

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Full details of the apps.

Example

{
  "games": [
    {
      "gamerNumbers": [
        1,
        2,
        3,
        4
      ],
      "genres": [
        "Fight!",
        "Multiplayer",
        "Sports"
      ],
      "url": "ouya://launcher/details?app=net.froemling.bombsquad",
      "latestVersion": {
        "apk": {
          "md5sum": "e1a734acba287777da24fe5eaf8101c0"
        },
        "versionNumber": "1.4.17",
        "uuid": "b1396eb2-6b3f-4ccd-82f8-fadc05094931"
      },
      "inAppPurchases": true,
      "promotedProduct": {
        "type": "entitlement",
        "developerName": "Eric Froemling",
        "identifier": "FullGameBombSquad",
        "name": "BombSquad Pro",
        "localPrice": 4.99,
        "originalPrice": 4.99,
        "percentOff": 0,
        "currency": "USD",
        "description": "Doubles tickets earned in-game, gives a power-ranking bonus, and more.."
      },
      "premium": false,
      "type": "app",
      "package": "net.froemling.bombsquad",
      "updated_at": 1431712678,
      "updatedAt": "2015-05-15T17:57:58Z",
      "title": "BombSquad",
      "image": "https://www.filepicker.io/api/file/AObi2TITPGH2bKTbSvLt",
      "contentRating": "9+",
      "rating": {
        "count": 3057,
        "average": 4.42
      }
    },
    {
      "gamerNumbers": [
        1
      ],
      "genres": [
        "Kids List",
        "Multiplayer",
        "Sports"
      ],
      "url": "ouya://launcher/details?app=net.mountainsheep.icerage",
      "latestVersion": {
        "apk": {
          "md5sum": null
        },
        "versionNumber": "1.8",
        "uuid": "9ba50e67-1bb7-4ac3-8d01-36fbc8ae2566"
      },
      "inAppPurchases": true,
      "promotedProduct": {
        "type": "entitlement",
        "developerName": "Mountain Sheep, Inc.",
        "identifier": "ICE_RAGE_UNLOCK_FULL_GAME",
        "name": "Unlock Full Game",
        "localPrice": 2.99,
        "originalPrice": 2.99,
        "percentOff": 0,
        "currency": "USD",
        "description": ""
      },
      "premium": false,
      "type": "app",
      "package": "net.mountainsheep.icerage",
      "updated_at": 1381227272,
      "updatedAt": "2013-10-08T10:14:32Z",
      "title": "Ice Rage",
      "image": "https://www.filepicker.io/api/file/JLXK36xeSLCg1Faqw67Q",
      "contentRating": "Everyone",
      "rating": {
        "count": 1595,
        "average": 4.15
      }
    }
  ]
}

DELETE https://devs.ouya.tv/api/v1/queued_downloads/xxx

Remove an app from the list of queued downloads.

Usage

After the app has been installed automatically on the OUYA.

HTTP request

Protocol

https

Method

DELETE

Host

devs.ouya.tv

Path

/api/v1/queued_downloads/xxx

xxx

The uuid value from the queued downloads list.

Example: /api/v1/queued_downloads/net.froemling.bombsquad

Headers

Standard headers

uuid

The uuid value from the queued downloads list.

Same as the xxx in the path.

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

204 No Content

GET https://devs.ouya.tv/api/v1/queued_downloads

Fetch a list of apps/games that shall get installed automatically on the OUYA.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/queued_downloads

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

Automatically pushed onto a fresh account:

{
  "queue": [
    {
      "versionUuid": "",
      "title": "Tetris Battle Fusion",
      "source": "new-user",
      "uuid": "com.toa.tetrisFusionOuya"
    },
    {
      "versionUuid": "",
      "title": "BombSquad",
      "source": "new-user",
      "uuid": "net.froemling.bombsquad"
    }
  ]
}

Manually pushed via the web site:

{
  "queue": [
    {
      "versionUuid": "",
      "title": "Sonic The Hedgehog 4 Episode I",
      "source": "gamer",
      "uuid": "com.sega.sonic4epi"
    }
  ]
}

GET https://devs.ouya.tv/api/v1/ratings

Get a list of games and the ratings the user made for them.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/ratings

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "ratings": [
    {
      "score": 4,
      "game": "com.grahamweldon.games.puzzle2048"
    },
    {
      "score": 2,
      "game": "com.baKno.Motorbike"
    },
    {
      "score": 4,
      "game": "org.jfedor.frozenbubble"
    }
  ]
}

POST https://devs.ouya.tv/api/v1/ratings

Store the rating of a single game

Usage

Directly after a user rated a game on the exit screen.

HTTP request

Protocol

https

Method

POST

Host

devs.ouya.tv

Path

/api/v1/ratings

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

POST parameters
auth_token

Same as X-OUYA-AuthToken

game

Package name of the game

E.g. com.littleguy77.filepwn

score

integer

1 to 5:

1

Hate it

2

Don't like it

3

Like it

4

Really like it

5

Love it

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example:

{
    "success": true
}

GET https://devs.ouya.tv/api/v1/recommendations

Get a list of games for the "you may also like" section.

Games already installed on the OUYA will be shown, too - with a checkmark.

Usage

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/recommendations

Headers

Standard headers

GET parameters
auth_token

Same as X-OUYA-AuthToken

uuid

Package name of the game that is being exited

Example: net.sourceforge.clonekeenplus

HTTP response

Status code

200 OK

Content-type

application/json; charset=utf-8

Example

{
  "games": [
    {
      "rating": {
        "count": 716,
        "average": 4.25
      },
      "image": "https://www.filepicker.io/api/file/VzCsgc3BTx2RiGpTr4Uw",
      "content_rating": "Everyone",
      "version": "7230ac05-d24c-4347-a990-7ac283c17063",
      "uuid": "com.GoldenTricycle.Clark",
      "title": "CLARC"
    },
    {
      "rating": {
        "count": 1108,
        "average": 3.49
      },
      "image": "https://www.filepicker.io/api/file/ej3IxeX8SwKZW5uFOw9g",
      "content_rating": "Everyone",
      "version": "544236ed-6dde-4b9e-8c4f-ac6e8b91bcd3",
      "uuid": "com.sega.sonic4epi",
      "title": "Sonic The Hedgehog 4 Episode I"
    },
    {
      "rating": {
        "count": 522,
        "average": 4.38
      },
      "image": "https://www.filepicker.io/api/file/s8HCRKaSB8wF2hSKbBzQ",
      "content_rating": "Everyone",
      "version": "29457560-1669-45ce-bb19-88c1651c7552",
      "uuid": "com.x10studio.SoManyMe",
      "title": "So Many Me"
    }
  ]
}

POST https://devs.ouya.tv/api/v1/sessions

Log in and obtain a session token.

This token is stored in the console and used in the X-OUYA-AuthToken and X-Token headers as well as the auth_token GET parameter.

Usage

  1. After logging with an existing account

  2. After new user registration

HTTP request

Protocol

https

Method

POST

Host

devs.ouya.tv

Path

/api/v1/sessions

Headers

Accept-Encoding User-Agent X-OUYA-Console-Id X-OUYA-Device

Content-Type

application/x-www-form-urlencoded

POST parameters
username

User name used to log in

password

User password

HTTP response

Success

When the user logged in successfully.

Note

If the user is already logged in, the old auth_token is returned. No new token is issued in this case.

Status code

200 OK

Content type

application/json; charset=utf-8

Response body example:

{
  "token": "96bfeaae-212d-447b-b4bf-caa5e86c0502"
}

Invalid login data

When the login data are invalid.

Also seen when the data were not available yet (e.g. user freshly registered) but the processes on the server were not finished yet. The OUYA simply tried the request a second time.

Status code

400 Bad Request

Content type

application/json; charset=utf-8

Response body example:

{
  "error": {
    "message": "Invalid authentication data",
    "code": 2001
  }
}

GET https://devs.ouya.tv/api/v1/themes

Load the main menu background image/video.

Usage

  1. FIXME VERIFY: During startup before loading the main menu

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/themes

Headers

Standard headers.

GET parameters
auth_token

May be empty.

Does not seem to have any influence on the response.

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Example:

{
  "background_style": "static",
  "background": "",
  "video": ""
}

FIXME: get response with video/image set.

GET https://devs.ouya.tv/api/v1/wallet

Get the account balance and currency.

Usage

After user registration, before the credit card input form is shown.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/api/v1/wallet

Headers

Standard headers

GET parameters
auth_token

Same data as in standard header X-OUYA-AuthToken

HTTP response

Status code

200 OK

Content type

application/json; charset=utf-8

Example without credit card data

{
  "requiresPaymentMethod": true,
  "balance": 0,
  "credit_card": null,
  "currency": "EUR"
}

FIXME: Find out if we get that response when giving a dummy number during registration (4111 1111 1111 1111).

Example with credit card data

{
    "balance": 0.0,
    "credit_card": {
        "expires_at": "09/30/2016",
        "last_four": "1234",
        "provider": "MasterCard"
    },
    "currency": "USD",
    "requiresPaymentMethod": true
}

FIXME: Find out if we can disable credit card input by setting requiresPaymentMethod to false.

GET https://devs.ouya.tv/agreements/marketplace.html

Terms of services you have to accept during registration.

Fetched by the browser / web view.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/agreements/marketplace.rst

Headers

None of the standard headers required.

GET parameters

None

HTTP response

HTML file

See also

GET https://devs.ouya.tv/update_strings.txt

Labels to show when updating the firmware.

HTTP request

Protocol

https

Method

GET

Host

devs.ouya.tv

Path

/update_strings.txt

Headers

None of the standard headers required.

GET parameters

None

HTTP response

Plain text file with one string per line

Example

Preparing to televise the Revolution…
Downloading awesome sauce…
Maximizing fun level…
Shifting bits…
Tasting rainbows…

GET https://www.ouya.tv/system_message

Unknown

Usage

HTTP request

Protocol

https

Method

GET

Host

www.ouya.tv

Path

//system_message

Headers
User-Agent

OUYA 0 1.00 1.2.1427_r1

GET parameters
build:

1.2.1427_r1

OUYA firmware version

HTTP response

Status code

403 Forbidden

This was probably once used, but now does only return an error.

About

This documentation has been written by Christian Weiske, cweiske+ouya@cweiske.de.

Last update: 2015-07-13T21:11:01+0200

License

It is licensed under the GNU Free Documentation License.

Source code

The documentation sources are available at http://git.cweiske.de/ouya-store-api.git/ and mirrored at https://github.com/cweiske/ouya-store-api

Home page

A rendered version of this documentation is available at http://cweiske.de/ouya-store-api-docs.htm

Building

You need to install rst2html5 before:

$ pip install rst2html5-tools

Rendering the docs is done via a build script:

$ ./build.sh