Photo platform for web and mobile app developers

Mobile Components

picture.io's mobile components help you capture and display media with minimal effort. Dropped one into your new or existing project and customize away.

  • android ios

    Photo Picker+

    A connected photo picker with access to local and social photos

  • android ios

    Multi-Image Picker

    Allow users to select as many photos as they want

  • android ios

    Image Grid

    Displays a grid of image thumbnails from any gallery

  • android ios

    Gallery Listing

    Display a listing of all your galleries in your app

  • android ios

    Cloud Gallery

    Add a swipeable, connected photo gallery to your app

  • android ios

    Social Gallery

    Adds a gallery view which supports hearting, commenting & more

  • android ios

    Photo Comments

    Enable any photo in your app to accept user comments`

  • android ios

    Image Sharer

    Allows anyone to share any photo from your gallery


Tutorials

We've prepared a number of quick tutorials to help you jumpstart your projects while learning how to use both the SDK and components


REST API

picture.io offers an extensive REST API to help you build any photo app you can imagine. Here's a quick overview on our API.

If you would like to start using the API, please contact us or try out our iOS, Android or Ruby SDK!

Welcome

The picture.io platform helps you build dynamic photo apps with ease. We've put together a wide array of APIs, components and tutorials to help you get started as quickly as possible.

Key Concepts

picture.io make uses the metaphor of a chute to help you organize, process, and display your photos. Here is a summary of the various concepts inside the app.

Asset
An asset is any piece of media managed by picture.io. Currently, this is limited to photos.
Chute
A chute is a container for assets that has members, permissions, rights, and more associated with it. Chutes help you manage and process your assets.
Parcel
A parcel is a new collection of assets to be added to picture.io. Parcels can be delivered to as many chutes as you like.

Start Here

To get started, all you need to do is create your account and start generating apps!

Start an app now!

Authentication

Chute uses the OAuth 2.0 protocol for authenentication.

With the exception of public resources, Chute requires that all API requests be authenticated. You will need to obtain a valid access token to complete any authenticated request.

Users & Accounts

Chute uses two primary concepts for user management and authentication:

Authenticated Users
Authenticated Users represent any individual with a validated identity by Chute or your application.
Anonymous Users
Chute allows "anonymous" users for circumstances where the Authenticated flow is not required
Accounts
Accounts represent validated connections to 3rd-party services. For example, a User who has authenticated with Facebook will have a Facebook account associated. Users can have an unlmited number of accounts.

Creating Accounts

Chute provides a single-sign on for your application. We support the following services via these endpoints:

Facebook
http://getchute.com/oauth/facebook
Twitter
http://getchute.com/oauth/twitter
Flickr
http://getchute.com/oauth/flickr
Picasa
http://getchute.com/oauth/picasa
Instagram
http://getchute.com/oauth/instagram
Foursquare
http://getchute.com/oauth/foursquare
Evernote
http://getchute.com/oauth/evernote

Chute wraps each of these services in a standard OAuth 2.0 workflow, regardless of the underlying authentication scheme.

Access Tokens

You can obtain an access token in one of two ways:

App Tokens

Chute generates an access token automatically for you whenever a new application is created. This app token has full permissions and allows you to perform any action required on behalf of the application.

User Tokens
Chute can issue user access tokens which are scoped to a specific user. In order to obtain a user token, you will need to complete the User Authentication Flow.

Photos

Chute specializes in storing, processing and managing photos. Any photo can be represented using a number of different photo formats, from thumbnails to full-sized originals.

Pre-Caching

For most applications, there will be a pre-defined set of sizes that you will always want to generate. For example, if you are building an iphone app you might want to always generate a thumbnail for your list view and a full-screen image. In these circumstances, you can setup your application to automatically generate those sizes.

Photo Formats

Chute makes it super simple to get the right-sized image when you need it. Here are a variety of photo formats you can request.

Assuming we have a base path for a photo as:
http://media.getchute.com/m/rKnavs

Fill Crops the photo to fill the dimensions (default)
http://media.getchute.com/media/:id/:widthx:height

http://media.getchute.com/media/rKnavs/640x480

Fit Resizes the image to fit within the given dimensions
http://media.getchute.com/media/:id/fit/:widthx:height

http://media.getchute.com/media/rKnavs/fit/500x200

Fixed Width Forces the photo to a specific width, height naturally adjusted
http://media.getchute.com/m/:id/w/:width

http://media.getchute.com/media/rKnavs/w/600

Fixed Height Forces the photo to a specific height, width naturally adjusted
http://media.getchute.com/m/:id/h/:height

http://media.getchute.com/media/rKnavs/h/300

`
Get Asset This method allows you to retrieve a specific asset
GET /assets/:identifier
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Remove Assset This method allows you to remove a specific asset
DELETE /assets/:identifier
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Remove Asssets This method allows you to remove a group of assets
POST /assets/remove
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Create Bundle This method allows you to create a bundle of assets

POST /bundles
Parameter Type Notes
asset_ids JSON Array of Asset IDs
Create Chute This method allows you to create a chute
POST /chutes
Parameter Type Notes
POST BODY JSON Chute Form JSON
Show Sample JSON
Get Chute This method allows you to retrieve a specific chute
GET /chutes/:identifier
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Show Sample JSON
Get Chute AssetsThis method retrieves the assets associated with a specific chute
GET /chutes/:identifier/assets
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Show Sample JSON
Get Chute ContributorsThis method retrieves a list of members who have contributed assets to the chute
GET /chutes/:identifier/contributors
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Get Chute MembersThis method retrieves a list of members for a specific chute
GET /chutes/:identifier/members
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Show Sample JSON
Get Chute ParcelsThis method retrieves a timeline of parcels added to a specific chute
GET /chutes/:identifier/parcels
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Show Sample JSON
Update ChuteThis method allows you to udpate the properties of a chute
PUT /chutes/:identifier
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
POST BODY JSON Chute Form JSON
Show Sample JSON
Remove Chute This method allows you to remove a specific chute
DELETE /chutes/:identifier
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Add Assets to a Chute This method allows you to add assets to a specific chute
POST /chutes/:identifier/assets/add
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
asset_ids JSON Array of Asset IDs
Remove Assets to a Chute This method allows you to remove assets from a specific chute
POST /chutes/:identifier/assets/remove
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
asset_ids JSON Array of Asset IDs
Invite to a Chute This method allows you to add a member to a specific chute
POST /chutes/:identifier/invite
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
providers JSON Chute Membership JSON
Create Parcel This method allows you to create a new parcel
POST /parcels
Parameter Type Notes
files JSON File JSON
assets JSON Array of existing Asset IDs
chutes JSON Array of Chutes IDs to deliver the parcel to
Get Parcel This method allows you to retrieve a specific parcel
GET /parcels/:identifier
Parameter Type Notes
identifier Integer ID of the Parcel
Mark Parcel CompleteThis method instructs Chute that all files for the Parcel have been uploaded
POST /parcels/:identifier/complete
Parameter Type Notes
identifier Integer ID of the Parcel
Search
picture.io provides you with a custom key-value store for your app, assets, bundles, chutes, parcels and users. You can search for items based on this data.
Key Search This method allows you to search for all objects with a matching key
GET /meta/:type/:key
Parameter Type Notes
type String Type of object to search for [all,assets,chutes,parcels,users]
key String Any key name
Value Search This method allows you to search for all objects with a matching key and value
GET /meta/:type/:key/:value
Parameter Type Notes
type String Type of object to search for [all,assets,chutes,parcels,users]
key String Any key name
value String Any value
Social
picture.io enables social tools automatically for you including hearting and commenting for assets.
Heart Asset This method allows you to heart a specific asset for the user
GET /assets/:identifier/heart
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Unheart Asset This method allows you to unheart a specific asset for the user
GET /assets/:identifier/heart
Parameter Type Notes
identifier String ID (integer) or Shortcut (string)
Create Comment This method allows you to add a comment to an asset in a specific chute
POST /chutes/:chute_id/assets/:asset_id/comments
Parameter Type Notes
chute_id String ID (integer) or Shortcut (string) for the Chute
asset_id String ID (integer) or Shortcut (string) for the Asset
Get Comments This method allows you to retrieve a specific asset
GET/chutes/:chute_id/assets/:identifier/comments
Parameter Type Notes
chute_id String ID (integer) or Shortcut (string) for the Chute
asset_id String ID (integer) or Shortcut (string) for the Asset
Remove Comment This method allows you to remove a specific comment
DELETE /comments/:id
Parameter Type Notes
id Integer ID of the Comment
Prepare Upload This method sets up a new upload and verifies which files need to be submitted
POST /assets/verify
Parameter Type Notes
files JSON File JSON
Generate Token This method generates an upload token for a specific asset. Must be called to retrieve the upload URL.
POST /assets/:id/token
Parameter Type Notes
id Integer ID of the Asset
Complete Upload This method is used to indicate that an asset has successfully uploaded and begins processing.
POST /assets/:id/token
Parameter Type Notes
id Integer ID of the Asset