Content Types

Files and channels each have a type field which is a string that looks like a reversed domain name to identify the intended purpose of the object. Content types are not application specific and can be used among multiple apps so they can all collaborate with the same user data.

Although content types can be used by any app, the first app to create an object with a new content type in some sense “owns” the content type. This allows the developer of that app to give a description for the content type. To edit your content types, visit the developer dashboard.

There is no validation performed on objects that claim a content type. Just because you create a channel with the type com.example.awesome does not imply you are the only one that is using that namespace or that the channel ACLs will match the format you expect. One exception to this rule is the namespace. Types beginning with are reserved and validated against the specifications published in the object metadata repository.


This prompt is used when apps request extended scopes for that content type.

OAuth with Extended Scopes


The last attribute of a Content Type is whether it must be used with an exclusive scope. Some kinds of data may be more privileged and thus you can make a user explicitly opt in to granting them instead of the basic scopes ( e.g. messages) granting access.

The option can only be turned on in the first 3 days of a content type’s existence. Once it is turned on it can’t be turned off.