This page is clone of docs.periscopr.uk

(Unofficial) Periscope API Documentation
Authored By: Chris Hogben <chris@periscopr.uk> (@cjhbtn)


Introduction

Periscope is a mobile broadcasting application developed by Twitter. It allows users to broadcast video and audio from their mobile device to users anywhere in the world. Viewers can access the broadcast using the app as well, or by clicking a shared link which takes them to a basic web interface of the broadcast.

There is no public API available for interacting with Periscope, therefore the following documentation has been gathered after careful research of the interactions the application had with the Periscope servers.

As this information is unofficial, there is no guarantee that it is correct. We also can't guarantee that Periscope or Twitter won't ban your accounts due to use or misuse of their system. Access to the Periscope system is governed by their Terms of Service.

Note: For readability purposes, all the JSON payloads in the example requests and responses have been "prettyfied". The actual JSON payloads are sent as single-line strings.

THIS SITE IS IN NO WAY AFFILIATED WITH PERISCOPE OR TWITTER INC. PERISCOPE AND TWITTER ARE REGISTERED TRADEMARKS OF TWITTER INC.


Changelog


  • Version 3.0 - actualization (2016)
    • All changes are here

  • Version 2.0 - 18th June 2015
    • Migrated to custom documentation platform
    • Added 5 new endpoints after additional research
    • In-depth documentation on parameters and response values
    • Examples of actual requests performed against the API

  • Version 1.0 - 1st June 2015
    • Initial Publication on Github Wiki
    • 38 Endpoints with basic documentation

Flowcharts

Login Flow

The flowchart below shows the API calls made by the iOS app upon logging in to the Periscope application.

The entry point in to the API is through the /loginTwitter endpoint, which converts the Twitter OAuth Token and Token Secret into a cookie value for use on all authenticated requests.

After this, the application proceeds to grab a list of the Featured Broadcasts, and Broadcasts from users that are being followed by the current user. These are the calls to /featuredBroadcastFeed and /followingBroadcastFeed.
Finally, the application appears to register the device token against the user, most likely allowing for notifications of broadcasts to be sent to the device. This is on the /registerToken endpoint.

Viewing a Broadcast Flow

When viewing a Broadcast, the Periscope application uses 4 endpoints from the API.

The /accessChannel endpoint is used to initiate the viewing. It enables retrieval of the access details, such as stream locations and PubNub channel and subscriber keys. It is likely that calling this endpoint marks you as a 'viewer' of the Broadcast, and would therefore appear in the Viewer list.

The application then uses the stream URL to playback the associated video with the Broadcast.

At this time, a connection to PubNub is established, which acts as the host of prescence, chat and heart realtime notifications. More details about this will be covered in additional documentation.

Every 30 seconds, the /pingWatching endpoint is called, which relays back to the API details such as the number of hearts given and the number of comments sent since the last call.

When ending the viewing, the /playbackMeta endpoint is called to provide Periscope with some feedback on the quality and experience that was encountered during the playback session.

Finally, /stopWatching ends the viewing session and sends the final tally of hearts and comments sent.

Creating a Broadcast Flow

Creating a Broadcast and streaming video is a little more in-depth than other actions on the Periscope API.

To begin with, the application uploads some padding data to a "signer" resource (located at https://signer.periscope.tv/upload) for two purposes: firstly, to gauge the connection speed for uploading purposes, and secondly to retrieve the AWS region closest to the current location.

A request to /createBroadcast is then made, using the region received from the Signer. This returns details that allow the video to be published to an RTMP server, along with PubNub details for subscribing to presence data, the chat and heart feeds.

Once the details of the broadcast are established, the video starts to be streamed to the RTMP server and a request to /publishBroadcast is made, providing details such as the Broadcast title, if the Broadcast is locked to certain users and whether the chat is locked down.

As with viewing a Broadcast, a ping is sent around every 30 seconds, in this case to /pingBroadcast. This provides an update to the API that the broadcast is still running, along with a debug log of connection details.

When the Broadcast is ending, a call to /broadcastMeta is made with debug information about the connection quality and speed.

Finally, /endBroadcast stops the Broadcast and returns some analytical data on the Broadcast, such as number of viewers and retention data.


Authentication

/loginTwitter - Login to the Periscope API

This endpoint converts a Twitter OAuth Token and OAuth Secret into a Periscope cookie for use in future requests to other endpoints on the API. It is also used to feed OAuth Token and OAuth Secrets from Twitter Digits login requests (hence the 'phone_number' parameter).

The Twitter OAuth Token and OAuth Secret are obtained from the Twitter API using the Periscope OAuth Consumer and Consumer Secret. OAuth Tokens from other application contexts will not work.

When using this endpoint with Twitter Digits for the first time, some account creation must take place (namely on the /verifyUsername endpoint). Without this, the user will not have a Periscope username associated with the account.


Parameter Type Optional Description Default Value
session_secret string No Twitter OAuth Token Secret
session_key string No Twitter OAuth Token
user_id string No Twitter User ID (numeric)
user_name string Yes Twitter Username
phone_number string Yes Telephone Number
vendor_id string Yes Vendor ID
bundle_id string Yes Bundle ID com.bountylabs.periscope

Key Type Always Available Description
cookie string Yes Periscope Authentication Cookie
user User Yes A User object representing the logged-in user
suggested_username string Yes Suggested Username
settings UserSettings Yes A UserSettings object for the current user's settings

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/registerToken - Registers the device token

This endpoint is only used by mobile devices only, and appears to register the current device token with the Periscope API, for notification purposes.

When a user logs out (see the /logout endpoint), the device token is sent too, indicating that notifications should no longer be sent to this device.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
token string Yes The Device Token ID
device_type string Yes The type of device being used (e.g. iPhone, iPad)
model string Yes The Apple Device Type (e.g "iPhone3,2", "iPad3,1")
os string Yes The iOS version number being used (e.g. "7.1.1", "8.1.3")
locale string Yes The language locale currently in use (e.g. "en")
build string Yes The full version string of the Periscope application v1.1
bundle_id string No Bundle ID com.bountylabs.periscope
vendor_id string No Vendor ID
install_id string Yes Install ID

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/login - ?? - Unused endpoint

This endpoint does not appear to be used currently in either iOS or Android versions of Periscope.

The parameters of the endpoint seem to suggest that it is used as a login mechanism using Facebook accounts, although no such functionality exists in the Periscope application.

More details will be added if and when the endpoint is utilised.


Parameter Type Optional Description Default Value
facebook_token string No
vendor_id string No Vendor ID

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
/validateUsername - Check username validity during registration

This endpoint is used to check the validity of a given username during the registration process, usually when logging in through a Phone Number.

A request is made each type a character is entered, and a status is returned indicating whether the entered value is acceptable.


Parameter Type Optional Description Default Value
session_key string Yes Twitter OAuth Token
session_secret string Yes Twitter OAuth Token Secret
username string No Periscope Username
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
errors array of ErrorObject Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter

/verifyUsername - Confirm the chosen username

This endpoint is used during the registration process, such as after logging in with a Phone Number.

After a user has chosen the username they wish to use with their Periscope account, this endpoint is called with the values to confirm the selection.

Upon success, a Periscope User object is returned listing the new user's details.


Parameter Type Optional Description Default Value
session_key string Yes Twitter OAuth Token
session_secret string Yes Twitter OAuth Token Secret
username string No Periscope Username
display_name string No A display name for the user
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
user User No A User object representing the a Periscope user
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter

/logout - Logout from Periscope

This endpoint logs you out from Periscope, and likely terminates the notifications that you would otherwise receive.

On iOS devices, vendor_id is sent along with the request, where as on Android, the install_id parameter is sent.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
vendor_id string Yes
install_id string Yes

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
500 Internal Server Error An Internal Server Error occurred (apparent bug with Android logout)


Broadcast Feeds

/featuredBroadcastFeed - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
[none] array of Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/followingBroadcastFeed - [TODO - To be documented]

Broadcasts from users that are being followed by the current user.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
[none] array of Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/liveBroadcastFeed - [TODO - To be documented]

[TODO - To be documented]

*NOTE* This endpoint returns a maximum of 51 results. There is no pagination available.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
[none] array of Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/mapBroadcastFeed

Returns list of newest broadcasts (created after defined time)

*NOTE*

Maximal count of returned objects is 250, but for values higher than 230 it returns two less objects.

This endpoint can be used as a stream, as it supports the "since" parameter.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
count integer Yes Count of returned objects 50
since integer Yes POSIX timestamp

Key Type Always Available Description
[none] array of Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/globalBroadcastFeed - DEPRECATED

Deprecated. Always returns empty array.

/rankedBroadcastFeed - [TODO - To be documented]

Returns broadcasts from third tab in the official app, "Top broadcasts"


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
languages array of string Yes Array of lang codes, for example ["en","ru"]

Key Type Always Available Description
[none] array of Broadcast Yes Top broadcasts

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/broadcastSearch - Search broadcasts by title

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
query string Yes ?
search string No Search string
include_replay boolean Yes Whether to include replays to results false

Key Type Always Available Description
[none] array of Broadcast Yes Search results

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

Viewing Broadcasts

/accessChannel - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
from_push boolean Yes false
uses_sessions boolean Yes true
entry_ticket string Yes

Key Type Always Available Description
subscriber string Yes
publisher string Yes
auth_token string Yes
signer_key string Yes
signer_token string Yes
participant_index integer Yes
channel string Yes
read_only boolean Yes
should_log boolean Yes
should_verify_signature boolean Yes
rtmp_url string Yes
hls_url string Yes
https_hls_url string Yes
type string Yes
broadcast Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found The Broadcast associated with the provided broadcast_id could not be found

/getBroadcastViewers - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID

Key Type Always Available Description
live array of User Yes
replay array of User No
n_web_watched integer Yes
n_replay_watched integer Yes
n_watched integer Yes
n_hearts integer Yes
n_replay_hearts integer No
time_watched integer No

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/getBroadcasts - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_ids array of string No A list of Periscope Broadcast IDs

Key Type Always Available Description
[none] array of Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/pingWatching - [TODO - To be documented]

[TODO - To be documented]

*NOTE*

This endpoint requires requests of type "multipart/form-data", and not the tranditional JSON payload request.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string Yes Periscope Broadcast ID
session string No "session" field of startWatching response
n_comments integer No Number of comments
n_hearts integer No Number of hearts

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/startWatching - [TODO - To be documented]

Called when user is starting broadcast playback


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
auto_play boolean No
life_cycle_token string No "life_cycle_token" field of accessVideo response

Key Type Always Available Description
session string Yes Session identifier used in pingWatching requests

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/playbackMeta - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
stats StatsViewing No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/stopWatching - [TODO - To be documented]

[TODO - To be documented]

*NOTE*

This endpoint requires requests of type "multipart/form-data", and not the tranditional JSON payload request.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
session string No
n_comments integer No
n_hearts integer No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/userBroadcasts - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
user_id string No Periscope User ID
all boolean Yes

Key Type Always Available Description
[none] array of Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/markAbuse - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/getAccessPublic - [TODO - To be documented]

Returns information for playing broadcast in browser
*NOTE*

This can be a GET request, with the broadcast_id parameter appearing as a query string parameter, and can be POST request with JSON payload.


Parameter Type Optional Description Default Value
broadcast_id string No

Key Type Always Available Description
subscriber string Yes Key for "subscribe" requests to PubNub
publisher string Yes key for "publish" requests to PubNub
auth_token string Yes
signer_key string Yes
signer_token string Yes Signer token for requests to signer.periscope.tv/sign
participant_index integer Yes Participant index for requests to signer.periscope.tv/sign
channel string Yes
read_only boolean Yes
should_log boolean Yes
should_verify_signature boolean Yes
access_token string Yes
key array of integer No
endpoint string Yes Url of chatman
session string Yes
replay_url string No Link to playlist.m3u8 with replay
cookies array of ReplayCookie No
type string Yes
hls_url string No
https_hls_url string No

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter

/accessVideoPublic - [TODO - To be documented]

Returns information for playing broadcast in browser
*NOTE*

This can be a GET request, with the broadcast_id parameter appearing as a query string parameter, and can be POST request with JSON payload.


Parameter Type Optional Description Default Value
broadcast_id string No

Key Type Always Available Description
broadcast Broadcast Yes Info about broadcast
chat_token string Yes
cookies array of ReplayCookie No
life_cycle_token string Yes
replay_url string No Link to playlist.m3u8 with replay
session string Yes
type string Yes
hls_url string No
https_hls_url string No
type string Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter

/publicReplayThumbnailPlaylist - [TODO - To be documented]

Returns urls of screenshots


Parameter Type Optional Description Default Value
broadcast_id string No
session_id string No

Key Type Always Available Description
chunks array of chunks Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter

/getBroadcastPublic - [TODO - To be documented]

[TODO - To be documented]

*NOTE*

This is a GET request, with the token parameter appearing as a query string parameter, and not as a JSON payload.


Parameter Type Optional Description Default Value
token string No

Key Type Always Available Description
user User Yes
broadcast Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
404 Not Found

Creating Broadcasts

/broadcastMeta - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
stats StatsBroadcasting No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/createBroadcast - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
height integer No
width integer No
region string No eu-central-1

Key Type Always Available Description
subscriber string Yes
publisher string Yes
auth_token string Yes
signer_key string Yes
signer_token string Yes
participant_index integer Yes
channel string Yes
read_only boolean Yes
should_log boolean Yes
should_verify_signature boolean Yes
broadcast Broadcast Yes
protocol string Yes
host string Yes
application string Yes
stream_name string Yes
credential string Yes
private_protocol string Yes
private_port integer Yes
upload_url string Yes
thumbnail_upload_url string Yes
can_share_twitter boolean Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
500 Internal Server Error An Internal Server Error occurred

/endBroadcast - [TODO - To be documented]

[TODO - To be documented]

*NOTE*

This endpoint requires requests of type "multipart/form-data", and not the tranditional JSON payload request.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
log string No

Key Type Always Available Description
broadcast Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/pingBroadcast - [TODO - To be documented]

[TODO - To be documented]

*NOTE*

This endpoint requires requests of type "multipart/form-data", and not the tranditional JSON payload request.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
log string No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/publishBroadcast - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
session_key string No
session_secret string No
friend_chat boolean No
lock array of string No
status string No
has_location boolean No
lat float No
lng float No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/deleteBroadcast - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/broadcastSummary - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID

Key Type Always Available Description
meta StatsMeta Yes
broadcast Broadcast Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found


Sharing Broadcasts

/getBroadcastIdForShareToken - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
token string No

Key Type Always Available Description
broadcast_id string Yes Periscope Broadcast ID

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/getBroadcastShareURL - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID

Key Type Always Available Description
url string Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/shareBroadcast - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
users array of string No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found


Replays

/replayUploaded - LEGACY - Notify the API when the Replay is uploaded

This endpoint is a legacy endpoint which got notified when the application had uploaded the replay.

Recently, all replays are stored automatically on the servers and therefore no notification is required.

/replayViewed - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
session string No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/deleteReplay - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/endReplayViewed - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Periscope Broadcast ID
session string No
duration float No
completion integer No
n_hearts integer No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/replayThumbnailPlaylist - Get list of periodical screenshots

[TODO - To be documented]


Parameter Type Optional Description Default Value
broadcast_id string No Periscope Broadcast ID
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
chunks Array of Chunks Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

User Profile

/getSettings - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
[none] UserSettings Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/setSettings - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
settings UserSettings No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/updateDescription - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
description string No

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/uploadProfileImage - [TODO - To be documented]

[TODO - To be documented]

*NOTE*

This endpoint requires requests of type "multipart/form-data", and not the tranditional JSON payload request.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
image binary / raw (file) No

Key Type Always Available Description
[none] array of ProfileImageUrls Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/updateDisplayName - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No
display_name string No

Key Type Always Available Description
success boolean Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

User Discovery

/suggestedPeople - [TODO - To be documented]

List of users, which Periscope suggests you to follow.


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
twitter_consumer string Yes Twitter OAuth Token
twitter_secret string Yes Twitter OAuth Token Secret
languages array of string Yes Array of lang codes, for example ["en","ru"] If defined, "popular" field returns, else "hearted" field returns.

Key Type Always Available Description
featured array of User Yes Users, featured by Periscope
popular array of User No Available only if "languages" parameter was passed
hearted array of User No Available only if "languages" parameter was omitted

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/user - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
user_id string Yes Search by user id instead of name
username string Yes Search by exact user name instead of id

Key Type Always Available Description
user User Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/userSearch - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
search string No

Key Type Always Available Description
[none] array of User Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid

/getUserPublic - [TODO - To be documented]

[TODO - To be documented]

*NOTE*

This is a GET request, with the token parameter appearing as a query string parameter, and not as a JSON payload.


Parameter Type Optional Description Default Value
user_id string No

Key Type Always Available Description
user User Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
404 Not Found

User Follow

/follow - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
user_id string No Periscope User ID

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/followers - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
user_id string No Periscope User ID

Key Type Always Available Description
[none] array of User Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/following - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
user_id string No Periscope User ID

Key Type Always Available Description
[none] array of User Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/unfollow - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
user_id string No Periscope User ID

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found


User Blocking

/block/add - [TODO - To be documented]

Block user


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
to string No Periscope User ID (alphanumeric)

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/block/remove - [TODO - To be documented]

Unblock user


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
to string No Periscope User ID (alphanumeric)

Key Type Always Available Description
success boolean Yes Flag indicating whether the request was successful or not

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

/block/users - [TODO - To be documented]

Get the list of blocked users


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description
[none] array of User Yes

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid


Ranking

/adjustBroadcastRank - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/broadcastRank - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/getBroadcastsRankParameters - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/setBroadcastsRankParameters - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

Other

/mutualFollows - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/supportedLanguages - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/unban - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/mute - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/unmute - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/accessChat - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie

Key Type Always Available Description

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found
/accessVideo - [TODO - To be documented]

[TODO - To be documented]


Parameter Type Optional Description Default Value
cookie string No Periscope Authentication Cookie
broadcast_id string No Broadcast identifier

Key Type Always Available Description
session string Yes Empty string
replay_url string No URL of replay, HLS format
type string Yes Empty string
chat_token string Yes
life_cycle_token string Yes Token used in startWatching request
broadcast Broadcast Yes
share_url string Yes Link to broadcast on the periscope.tv site

Status Code Error Text Description
400 Bad Request Request did not meet requirements - potentially missing parameter
401 Unauthorized This endpoint requires authentication and no cookie value was provided, or is invalid
404 Not Found

Data Objects

User

A User object returns profile information about a Periscope user.

Values in this object can vary depending on where it was accessed from, so be aware of the 'Always Available' flags below.


Key Type Always Available Description Default Value
class_name string Yes The type name of this object User
created_at datestring Yes
description string Yes
display_name string Yes First and last name
id string Yes Unique identifier of the user
initials string Yes
is_beta_user boolean Yes false
is_employee boolean Yes false
is_following boolean No Returns only from private methods false
is_muted boolean No Returns only from private methods false
is_twitter_friend boolean Yes false
is_twitter_verified boolean Yes false
n_followers integer Yes
n_following integer Yes
n_hearts_given integer No Count of hearts given in current chat 0
n_replay_hearts integer No Returns only from private methods 0
participant_index integer No Index of user in chat 0
profile_image_urls array of ProfileImageUrls Yes
start datestring No User join time in current chat (ATOM format)
start time in ATOM format No User join time in current chat
twitter_screen_name string Yes
updated_at datestring No
username string Yes Periscope Username
UserSettings

A UserSettings object defines behaviour settings for a user.


Key Type Always Available Description Default Value
push_new_follower boolean Yes false
auto_save_to_camera boolean Yes false
disable_stabilization boolean Yes false
disable_broadcast_persistence boolean Yes false
disable_viewer_moderation boolean Yes false
disable_broadcast_moderation boolean Yes false
disable_find_by_digits_id boolean Yes false
show_me_chat_messages_in_other_languages boolean Yes false
disable_receive_share_notifications boolean Yes false
disable_followed_live_notifications boolean Yes false
disable_suggested_first_notifications boolean Yes false
hide_follow_recommendations boolean Yes false
disable_recommendation_notifications boolean Yes false
disable_ping_notifications boolean Yes false
ProfileImageUrls

ProfileImageUrls provide information about a specific size of profile picture for a user.

Values in this object can vary depending on where it was accessed from, so be aware of the 'Always Available' flags below.


Key Type Always Available Description Default Value
url string Yes
ssl_url string Yes
width integer Yes
height integer Yes
Broadcast

A Broadcast object provides information about a specific Periscope broadcast given by a user.

Values in this object can vary depending on where it was accessed from, so be aware of the 'Always Available' flags below.


Key Type Always Available Description Default Value
available_for_replay boolean Yes false
city string Yes
class_name string Yes The type name of this object Broadcast
country string Yes
country_state string Yes
created_at datestring Yes Creation time in ATOM date format
expiration integer No Number of hours replay will available 24
featured boolean Yes
friend_chat boolean Yes false
has_location boolean Yes false
heart_theme array of string No Possible pictures of "hearts" (fridge, snowflake, etc...)
height integer Yes 568
highlight_available boolean No Only for public broadcasts true
id string Yes Broadcast identifier
image_url string Yes 320x568 image url
image_url_small string Yes 72x128 image url
ip_lat float No Latitude
ip_lng float No Longitude
is_locked boolean Yes Is broadcast private or public false
is_trusted boolean Yes false
iso_code string Yes 2-letter country code (lower case)
language string Yes 2-letter language code (lower case)
n_watching integer Yes Watching count 0
n_web_watching integer Yes Count of watching using browser 0
n_total_watching integer Yes Total watching count
n_total_watched integer No (For replays) Total watched count
ping datestring Yes Ping time in ATOM date format
profile_image_url string Yes
share_display_names ? No
share_user_ids ? No
sort_score integer Yes Defines how high in "Top" section will broadcast be. 0
start datestring Yes Start time in ATOM date format
state string Yes RUNNING, ENDED or TIMED_OUT
status string Yes Broadcast description
timedout string No If state is TIMED_OUT, there is time in ATOM date format
twitter_username string No
updated_at datestring Yes Update time in ATOM date format
user_display_name string Yes
user_id string Yes Periscope User ID (alphanumeric)
username string Yes Periscope username
width integer Yes 320
ErrorObject

An ErrorObject provides feedback on error conditions that happened during validation.


Key Type Always Available Description Default Value
code integer Yes The error code
message string Yes The error message
StatsViewing

This object provides details of Playback information from a user after watching a Broadcast


Key Type Always Available Description Default Value
FrameRate_min float Yes
FrameRate_max float Yes
FrameRate_mean float Yes
FrameRate_stddev float Yes
pn_connect_t float Yes
pn_pres_res integer Yes
pn_msg_drop integer Yes
pn_disconnect_t float Yes
pn_msg_sent integer Yes
pn_msg_rec integer Yes
BatteryDrainPerMinute float Yes
LostConnection_count integer Yes
StatsBroadcasting

This object provides details of Broadcast information from a user after creating and streaming a Broadcast


Key Type Always Available Description Default Value
StatsMeta

[TODO - To be documented]


Key Type Always Available Description Default Value
n_watching integer Yes
n_watching_web integer Yes
n_web_watched integer Yes
n_replay_watched integer Yes
n_watched integer Yes
lost_before_end integer Yes
watched_time float Yes
n_hearts integer Yes
n_replay_hearts integer Yes
n_comments integer Yes
watched_time_calculated float Yes
watched_time_implied float Yes
join_time_average float Yes
join_time_count integer Yes
ReplayCookie

[TODO - To be documented]


Key Type Always Available Description Default Value
Name string Yes
Value string Yes
Path string Yes
Domain string Yes
Expires string Yes
RawExpires string Yes
MaxAge integer Yes
Secure boolean Yes
HttpOnly boolean Yes
Raw string Yes
Unparsed string Yes [null]
Chunk

One part of video


Key Type Always Available Description Default Value
chunk integer No Number of chunk. Only even numbers. -1
time float No Time offset, usually every 8 seconds 0
tn string Yes URL of .jpg image