Content

Content Service

Web service endpoints for functionality that is common to all content objects.

Supported content types are:

  • discussion (Discussion) - a discussion, which is the beginning of a conversation.
  • document (Document) - a document in Jive that can be discussed and shared with other people.
  • file (File) - a file in Jive that can be discussed and shared with other people.
  • poll (Poll) - a poll where people can vote to make a decision or express an opinion.
  • post (Post) - an entry in a blog.
  • favorite (Favorite) - a link to content around the web that can be shared and discussed.
  • task (Task) - a task for a person to get things done.
  • update (Update) - a user status update.

Plugins can add more content types to the above list.

Examples:
Create Discussion

POST to /contents to create a Discussion. Here is an example using curl.

curl -u mary:password -H "Content-Type: application/json" --data '{ "type": "discussion", "content": { "type": "text/html", "text":"Starting a discussion"}, "subject": "A new discussion"}' http://example.jiveon.com/api/core/v3/contents

Create Update

Updates can be created using the contents endpoint. The update will be for the user whose credentials are used. Example with curl of creating a status update.

curl -u bob:password -H "Content-Type: application/json" --data '{ "type": "update", "content": { "type": "text/html", "text":"Vacation coming up soon!"}, "subject": "Vacation"}' http://example.jiveon.com/api/core/v3/contents

Create Repost

Having created an update, you can create a "repost", or an update that quotes your original update. Here, in the "repost" field you must provide the URI of the original update returned in the response of the previous example.

curl -u bob:password -H "Content-Type: application/json" --data '{ "type": "update", "repost": "http://example.jiveon.com/api/core/v3/contents/1234", "content": { "type": "text/html", "text":"Still can't wait for the vacation!"}, "subject": "Vacation"}' http://example.jiveon.com/api/core/v3/contents

Create Abuse Reports

POST /contents/{contentID}/abuseReports

Register that the requesting person considers the specified content as abusive. See AbuseReport for an example.

Path Parameters:
NameTypeRequiredDescription
contentIDStringtrueID of the content to be marked as abusive
Takes:
  • AbuseReport containing the abuse report information
  • Retrieves:
  • AbuseReport containing the newly created abuse report
  • Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is missing or malformed
    403 (Forbidden)You are not allowed to access or mark this content as abusive
    404 (Not Found)The specified content does not exist

    Create Comment

    POST /contents/{contentID}/comments

    Create a new comment as a reply to the specified content object. The parent field (if any) in the incoming entity will be ignored. Instead, it will be set to the URI of the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object this comment replies to
    Query Parameters:
    NameTypeRequiredDescription
    authorBooleanfalseFlag indicating if new comment is an author comment or a regular comment (only valid for documents). By default a regular comment will be created.
    publishedStringfalseDate and time when this content object was originally created. Set 'updated' param as well. Only set this field when importing content. Since 3.6.
    updatedStringfalseDate and time when this content object was most recently updated. Set 'published' param as well. Only set this field when importing content. Since 3.6.
    fieldsStringfalseFields to include in the returned Comment
    Takes:
  • Comment describing the comment to be created
  • Retrieves:
  • Comment representing the newly created comment
  • Return Status:
    HTTP Status CodeDescription
    400 (Bad Request)An input field is missing or malformed
    409 (Conflict)You attempt to add a comment to a content object that does not support them, or for which comments have been closed
    403 (Forbidden)You are not allowed to perform this operation
    404 (Not Found)The specified parent content object (or comment) cannot be found

    Create Content

    POST /contents

    Create a new content object with specified characteristics, and return an entity representing the newly created content object.

    For those types of content that support attachments, it is possible to specify URL of files that the server will download and store them as attachments of the new content. A BAD_REQUEST error will be returned if URL of files are passed and the content type does not support attachments. Here we can see an example where attachments are specified as URLs.

     {
     "content":{
     "type":"text/html",
     "text":"<body><p>Some interesting text</p></body>"
     },
     "subject":"New Document",
     "type":"document",
     "attachments":[
     {
     "doUpload":true,
     "url":"http://www.mysite.com/images/cat.jpg"
     }
     ]
     }

    Attachments can only be images when creating Update. Those images will be accessible through the images resource of an Update.

    The following rules define which fields in the incoming JSON entity are processed:

    • For all content object types, the following fields are processed: author, content, parent, status, subject, tags, type.
    • For all content object types, the content and subject fields are required. Furthermore, subject must be unique within the parent place.
    Query Parameters:
    NameTypeRequiredDescription
    publishedStringfalseDate and time when this content object was originally created. Set 'updated' param as well. Only set this field when importing content. Since 3.6.
    updatedStringfalseDate and time when this content object was most recently updated. Set 'published' param as well. Only set this field when importing content. Since 3.6.
    fieldsStringfalseThe fields to include in the returned entity
    Takes:
  • A Content describing the content object to be created
  • Retrieves:
  • Content representing the newly created content
  • Return Status:
    HTTP Status CodeDescription
    201 (Created)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)The new entity would conflict with system restrictions (such as two contents of the same type with the same name)
    403 (Forbidden)You are not allowed to access the specified content

    Upload New Content

    POST /contents

    Create a new content object with specified characteristics, and return an entity representing the newly created content object. Uploaded files will be added to the new content object as attachments. Uploading attachments is only allowed for those content types that support attachments. A BAD_REQUEST error will be returned if attachments are passed and the content type does not support them.

    The following rules define which fields in the incoming JSON entity are processed:

    • For all content object types, the following fields are processed: author, content, parent, status, subject, tags, type.
    • For all content object types, the author, content, parent, and subject fields are required, and must be unique within the parent place.
    Query Parameters:
    NameTypeRequiredDescription
    publishedStringfalseDate and time when this content object was originally created. Set 'updated' param as well. Only set this field when importing content. Since 3.6.
    updatedStringfalseDate and time when this content object was most recently updated. Set 'published' param as well. Only set this field when importing content. Since 3.6.
    fieldsStringfalseThe fields to include in the returned entity
    Takes:
  • A multipart of subtype form-data that will include a section with a Content describing the content to be created and another section for each file being uploaded.
  • Retrieves:
  • Content representing the newly created content
  • Return Status:
    HTTP Status CodeDescription
    201 (Created)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)The new entity would conflict with system restrictions (such as two contents of the same type with the same name)
    403 (Forbidden)You are not allowed to access the specified content

    Create Content Helpful

    POST /contents/{contentID}/helpful

    Register that the requesting person considers the specified content helpful.

    Note: If this is the first time the specified content has been marked helpful a helpful outcome will be created

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content to be marked as helpful
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is missing or malformed
    403 (Forbidden)You are not allowed to access or mark this content as helpful
    404 (Not Found)The specified content does not exist

    Create Content Like

    POST /contents/{contentID}/likes

    Register that the requesting person likes the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be liked
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access or like this content object
    404 (Not Found)The specified content object does not exist

    Create Content Unhelpful

    POST /contents/{contentID}/unhelpful

    Register that the requesting person considers the specified content unhelpful.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content to be marked as unhelpful
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is missing or malformed
    403 (Forbidden)You are not allowed to access or mark this content as unhelpful
    404 (Not Found)The specified content does not exist

    Create Ext Props

    POST /contents/{contentID}/extprops

    Save a new set of extended properties for content with specified characteristics, and return an entity representing the newly created extended properties.

    This service only accepts oAuth authentication. Assuming that the oAuth token used to access this service was acquired through 2-legged oAuth, the properties being stored on the target content will be also associated with the consumer of the oAuth token.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content for which to create a extended properties
    Takes:
  • ExtProps describing the extended properties to be saved
  • Retrieves:
  • ExtProps representing the newly created extended props
  • Return Status:
    HTTP Status CodeDescription
    201 (Created)Request was successful
    400 (Bad Request)An input field is malformed or max number of extended properties has been reached
    403 (Forbidden)You are not allowed to manage ext properties for content

    Create Ext Props For Addon

    POST /contents/{contentID}/extprops/addOn/{addonUUID}

    Save a new set of extended properties for content with specified characteristics, and return an entity representing the newly created extended properties.

    This service only accepts oAuth authentication. Assuming that the oAuth token used to access this service was acquired through 2-legged oAuth, this service will validate that the consumer of the oAuth token can access the specified add-on.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content for which to create a extended properties
    addonUUIDStringtrueUUID of the addon for which the properties are created.
    Takes:
  • ExtProps describing the extended properties to be saved
  • Retrieves:
  • ExtProps representing the newly created extended props
  • Return Status:
    HTTP Status CodeDescription
    201 (Created)Request was successful
    400 (Bad Request)An input field is malformed or max number of extended properties has been reached
    403 (Forbidden)You are not allowed to manage ext properties for content
    Since: 3.9

    Create Outcome

    POST /contents/{contentID}/outcomes
    Create the outcome on the specified content
    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content for which to create the outcome
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseFields to be returned on the new outcome (default is @all)
    Takes:
  • the outcome to create
  • Retrieves:
  • Outcome describing the new create outcome on that comment
  • Return Status:
    HTTP Status CodeDescription
    400 (Bad Request)An input field is missing or malformed
    409 (Conflict)Ad outcome of this type already exists on the comment
    403 (Forbidden)You are not allowed to access this comment
    404 (Not Found)The specified comment does not exist

    Destroy Content

    DELETE /contents/{contentID}

    Delete the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be deleted
    Query Parameters:
    NameTypeRequiredDescription
    hardDeleteBooleanfalseBoolean indicating whether a soft or hard delete should be performed. Only used for content that supports hard/soft deletes (default is false). Ignored otherwise. Since 3.10.
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object
    404 (Not Found)The specified content does not exist

    Destroy Content Helpful

    DELETE /contents/{contentID}/helpful

    Delete the registration of the specified content as helpful by the requesting user.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content for which an helpful registration is being removed
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)You do not currently have an helpful mark removed for this content
    403 (Forbidden)You are not allowed to access this content or remove the registration of this content as helpful
    404 (Not Found)The specified content does not exist

    Destroy Content Like

    DELETE /contents/{contentID}/likes

    Delete the like of the specified content object by the requesting user.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueThe ID of the content object for which a like is being removed
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)You do not currently have a like registered for this content object
    403 (Forbidden)You are not allowed to access or unlike this content object
    404 (Not Found)The specified content object does not exist

    Destroy Content Unhelpful

    DELETE /contents/{contentID}/unhelpful

    Delete the registration of the specified content as unhelpful by the requesting user.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content for which an unhelpful registration is being removed
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)You do not currently have an unhelpful mark registered for this content
    403 (Forbidden)You are not allowed to access this content or remove the registration of this content as unhelpful
    404 (Not Found)The specified content does not exist

    Destroy Ext Props

    DELETE /contents/{contentID}/extprops

    Delete the existing extended properties for the specified content.

    This service only accepts oAuth authentication. Assuming that the oAuth token used to access this service was acquired through 2-legged oAuth, the properties being deleted from the target comment will be also associated with the consumer of the oAuth token.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content for which the extended properties are to be deleted
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to delete properties
    404 (Not Found)The specified content does not exist

    Destroy Ext Props For Addon

    DELETE /contents/{contentID}/extprops/addOn/{addonUUID}

    Delete the existing extended properties for the specified content.

    This service only accepts oAuth authentication. Assuming that the oAuth token used to access this service was acquired through 2-legged oAuth, this service will validate that the consumer of the oAuth token can access the specified add-on.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content for which the extended properties are to be deleted
    addonUUIDStringtrueUUID of the addon for which the properties are deleted.
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to delete properties
    404 (Not Found)The specified content does not exist
    Since: 3.9

    Get Abuse Reports

    GET /contents/{contentID}/abuseReports

    Retrieve the abuse reports for the specified content

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content marked as abusive
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseFields to be returned in the abuse report response
    Retrieves:
  • AbuseReport[] containing the abuse reports for the specified content
  • Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field is missing or malformed
    403 (Forbidden)You are not allowed to access or mark this content as abusive
    404 (Not Found)The specified content does not exist

    Get Child Outcome Types

    GET /contents/{contentID}/childOutcomeTypes

    Return a paginated list of the possible OutcomeTypes for the children of the specified object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object's children to get the outcome types for
    Query Parameters:
    NameTypeRequiredDescription
    isCreateBooleanfalseIs list of types for create or view
    startIndexIntegerfalseZero-relative index of the first outcome type to be returned
    countIntegerfalseMaximum number of outcome types to be returned
    fieldsStringfalseFields to be returned on outcome types
    Retrieves:
  • OutcomeType[] listing the outcome types who like the specified comment
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is missing or malformed
    403 (Forbidden)You are not allowed to access this comment
    404 (Not Found)The specified comment does not exist

    Get Comments

    GET /contents/{contentID}/comments

    Return a paginated list of comments to the specified content object, optionally limiting the returned results to direct replies only. The specified content object type must support comments, or be a comment itself (in which case replies to this comment only are returned).

    This service supports the following filters. Parameters, when used, should be wrapped in parentheses, and multiple values separated by commas. See the examples for clarification.

    Filter Params Example
    type one or more outcome types of desired contained comments separated by commas ?filter=outcomeType(decision)
    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object for which to return comments
    Query Parameters:
    NameTypeRequiredDescription
    filterObject[]falseThe filter criteria used to select comments
    excludeRepliesBooleanfalseFlag indicating whether to exclude replies (and therefore return direct comments only)
    hierarchicalBooleanfalseFlag indicating that comments should be returned in hierarchical order instead of chronological order
    authorBooleanfalseFlag indicating if author comments should be returned or regular comments (only valid for documents). By default regular comments are returned.
    inlineBooleanfalseFlag indicating if inline comments should be returned or regular comments (only valid for binary documents). By default regular comments are returned.
    sortStringfalseParameter indicating the sort order of the returned comments (only valid for inline comments). By default the sort order is dateasc.
    startIndexIntegerfalseZero-relative index of the first comment to be returned
    countIntegerfalseMaximum number of comments to be returned
    anchorStringfalseoptional URI for a comment to anchor at. Specifying a anchor will try to return the page containing the anchor. If the anchor could not be found then the first page of comments will be returned.
    fieldsStringfalseFields to be returned in the selected comments
    Retrieves:
  • Comment[]
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object or comments
    404 (Not Found)The specified content object does not exist
    501 (Not Implemented)The specified content object is of a type that does not support comments

    Get Content

    GET /contents/{contentID}

    Return the specified content object with the specified fields.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be returned
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseFields to be returned
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    Retrieves:
  • Content containing the specified content
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object
    404 (Not Found)The specified content does not exist

    Get Content Data

    GET /contents/{contentID}/data

    Return the binary content of the specified file (returns ConflictException on any other content object type).

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object for which binary content should be returned
    Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    403 (Forbidden)The requesting user is not allowed to retrieve this binary data
    404 (Not Found)Specified content object does not exist
    409 (Conflict)Attempted to return binary data for a non-file content object
    Since: 3.5

    Get Content Followers

    GET /contents/{contentID}/followers

    Return a paginated list of Persons about people who are following the specified content.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to check for followers
    Query Parameters:
    NameTypeRequiredDescription
    startIndexIntegerfalseZero-relative index of the first instance to be returned
    countIntegerfalseMaximum number of instances to be returned (i.e. the page size)
    fieldsStringfalseFields to be returned (or null for summary fields)
    Retrieves:
  • Person listing people following the specified content
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)The request criteria are malformed
    403 (Forbidden)The requesting user is not authorize to retrieve this user information
    404 (Not Found)The specified user cannot be found
    Since: 3.5

    Get Content Following In

    GET /contents/{contentID}/followingIn

    Return the list of custom streams in which the requesting user is following this content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to check for following
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseFields to be included in the returned representation
    Retrieves:
  • Stream[] listing the streams in which the requesting user is following this object
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access this content object
    404 (Not Found)The specified content object does not exist

    Get Content Likes

    GET /contents/{contentID}/likes

    Return a paginated list of the people who like the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object for which to return liking people
    Query Parameters:
    NameTypeRequiredDescription
    startIndexIntegerfalseZero-relative index of the first person to be returned
    countIntegerfalseMaximum number of people to be returned
    fieldsStringfalseFields to be returned on liking people
    Retrieves:
  • Person[] listing people who like the specified content object
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access this content object
    404 (Not Found)The specified content object does not exist

    Get Contents

    GET /contents

    Return a paginated list of content objects that match the specified filter criteria.

    This service supports the following filters. Parameters, when used, should be wrapped in parentheses, and multiple values separated by commas. See the examples for clarification.

    Filter Params Example
    author one or more person URIs, separated by commas ?filter=author(http://domain/api/core/v3/people/12,http://domain/api/core/v3/people/853)
    creationDate This filter takes two parameters:
    • before date - Creation date of content must be less than or equal to this date. Use null to specify no restriction.
    • after date - Creation date of content must be greater than or equal to this date. Use null to specify no restriction.
    Use this filter to improve performance and decrease memory footprint when paginating through a large amount of content that can be sorted by creation date. Available since 3.10.
    ?filter=creationDate(2015-04-28T15:16:55Z,2015-04-28T12:16:55Z)
    entityDescriptor one or more objectType,objectID pairs (this filter is likely only useful to those developing the Jive UI itself). This filter cannot be combined with other filters. ?filter=entityDescriptor(102,1234,37,2345)
    modificationDate This filter takes two parameters:
    • before date - Modification date of content must be less than or equal to this date. Use null to specify no restriction.
    • after date - Modification date of content must be greater than or equal to this date. Use null to specify no restriction.
    Use this filter to improve performance and decrease memory footprint when paginating through a large amount of content that can be sorted by modification date. Available since 3.10.
    ?filter=modificationDate(2015-04-28T15:16:55Z,2015-04-28T12:16:55Z)
    place One or more place URIs, separated by commas. If filtering on type(post), specify query param includeBlogs=true to automatically include the blog containers that reside under the places specified here.

    Note: Only versions 3.11 and later support multiple places in this filter. Earlier versions can only specify one place.
    ?filter=place(http://domain/api/core/v3/places/1006)
    relationship Choose one of the following options:
    • participated - Returns content where the authenticated user participated in
    • following - Returns content that the authenticated user is following
    • recentlyviewed - Returns content that the authenticated user recently viewed
    This filter cannot be combined with the status filter. Available since 3.3.
    ?filter=relationship(participated)
    search One or more search terms, separated by commas. You must escape any of the following special characters embedded in the search terms: comma (","), backslash ("\"), left parenthesis ("("), and right parenthesis (")") by preceding them with a backslash. ?filter=search(test,report) or ?filter=search(10\,000)
    status Returns content with a specific content status. A common use for this is the 'draft' status to find content that is in draft mode and the authenticated user can see, most likely because the user created the draft. Valid statuses are draft, published, scheduled, awaiting moderation, rejected, abuse hidden, abuse visible, archived, expired, pending approval, deleted, processing, error, and hidden. When there is no status filter explicitly defined, content is restricted to statues published and abuse visible. This filter cannot be combined with the relationship filter. Filtering by draft available since 3.3, filtering by any status available since 3.14. ?filter=status(draft)
    ?filter=status(published,abuse visible)
    ?filter=status(abuse hidden)
    tag one or more tags, separated by commas (matching any tag will select a content). Replace the , with AND if you want to retrieve content that has all the specified tags. ?filter=tag(sales,performance) or ?filter=tag(sales%20AND%20performance)
    type One or more object types of desired contained content objects separated by commas. If filtering on type(post) and also filtering on places, specify query param includeBlogs=true to automatically include the blog containers that reside under the filtered places. ?filter=type(document,discussion)

    This service supports the following sort types.

    Sort Description
    dateCreatedAsc Sort by the date this content object was created, in ascending order
    dateCreatedDesc Sort by the date this content object was created, in descending order. Default if none was specified.
    latestActivityAsc Sort by the date this content object had the most recent activity, in ascending order
    latestActivityDesc Sort by the date this content object had the most recent activity, in descending order
    titleAsc Sort by content object subject, in ascending order

    The returned list may contain a mixture of content entities of various types. On any given content object entity, use the type field to determine the type of that particular content.

    Query Parameters:
    NameTypeRequiredDescription
    filterObject[]falseThe filter criteria used to select content objects
    sortStringfalseThe requested sort order
    startIndexIntegerfalseThe zero-relative index of the first matching content to be returned
    countIntegerfalseThe maximum number of contents to be returned
    fieldsStringfalseThe fields to be returned on each content
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    includeBlogsBooleanfalseFlag indicating that filters should include blog containers
    Retrieves:
  • Content[] of the matched content objects
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed

    Get Editable Content

    GET /contents/{contentID}/editable

    Return the specified editable content object with the specified fields. This API is useful for clients that use an RTE like editor to render the content body. The returned content body in the JSON will include Jive macros that the RTE will need to understand.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be returned
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseFields to be returned
    Retrieves:
  • Content containing the specified editable content
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)if content is already being edited by another user
    403 (Forbidden)You are not allowed to access the specified content object
    404 (Not Found)The specified content does not exist

    Get Ext Props

    GET /contents/{contentID}/extprops

    Return the specified extended properties of a content.

    This service only accepts oAuth authentication. Assuming that the oAuth token used to access this service was acquired through 2-legged oAuth, the properties being fetched from the target content will be also associated with the consumer of the oAuth token.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content that is associated to the extended properties
    Retrieves:
  • ExtProps containing the specified extended properties
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    404 (Not Found)If the specified content does not exist

    Get Ext Props For Addon

    GET /contents/{contentID}/extprops/addOn/{addonUUID}

    Return the specified extended properties of a content.

    This service only accepts oAuth authentication. Assuming that the oAuth token used to access this service was acquired through 2-legged oAuth, this service will validate that the consumer of the oAuth token can access the specified add-on.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content that is associated to the extended properties
    addonUUIDStringtrueUUID of the addon for which the properties are fetched.
    Retrieves:
  • ExtProps containing the specified extended properties
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    404 (Not Found)If the specified content does not exist
    Since: 3.9

    Get Featured Content

    GET /contents/featured

    Return a list of featured content objects that match the specified filter criteria.

    This service supports the following filters. Parameters, when used, should be wrapped in parentheses, and multiple values separated by commas. See the examples for clarification.

    Filter Params Example
    place one or more place URI where the content lives. This filter is required. ?filter=place(http://domain/api/core/v3/places/1006)
    type one or more object types of desired contained content objects separated by commas ?filter=type(document,discussion)

    The returned list may contain a mixture of content entities of various types. On any given content object entity, use the type field to determine the type of that particular content.

    Query Parameters:
    NameTypeRequiredDescription
    filterObject[]falseThe filter criteria used to select content objects
    countIntegerfalseThe maximum number of contents to be returned
    fieldsStringfalseThe fields to be returned on each content
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    Retrieves:
  • Content[] of the matched content objects
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object
    404 (Not Found)The specified place in the filter does not exist
    Since: 3.13

    Get My Entitlements

    GET /contents/{contentID}/entitlements

    Retrieve entitlements for the current user, granted for the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to resolve entitlements
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseThe fields to be returned in the entitlements response
    Retrieves:
  • Entitlement of the specified content object for the current user.
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object
    404 (Not Found)The specified content does not exist

    Get Outcomes

    GET /contents/{contentID}/outcomes

    Return a paginated list of the Outcomes for the specified content.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to get the outcomes for
    Query Parameters:
    NameTypeRequiredDescription
    includeChildrenOutcomesBooleanfalsewhether or not to include outcomes for comments/replies
    startIndexIntegerfalseZero-relative index of the first outcome to be returned
    countIntegerfalseMaximum number of outcomes to be returned
    fieldsStringfalseFields to be returned on outcomes
    Retrieves:
  • Outcome[] listing the outcomes who like the specified comment
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is missing or malformed
    403 (Forbidden)You are not allowed to access this comment
    404 (Not Found)The specified comment does not exist

    Get Outcome Types

    GET /contents/{contentID}/outcomeTypes

    Return a paginated list of the possible OutcomeTypes for the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to get the outcome types for
    Query Parameters:
    NameTypeRequiredDescription
    startIndexIntegerfalseZero-relative index of the first outcome type to be returned
    countIntegerfalseMaximum number of outcome types to be returned
    fieldsStringfalseFields to be returned on outcome types
    Retrieves:
  • OutcomeType[] listing the outcome types who like the specified comment
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is missing or malformed
    403 (Forbidden)You are not allowed to access this comment
    404 (Not Found)The specified comment does not exist

    Get Popular Content

    GET /contents/popular

    Return a list of popular content objects for the authenticated user. Use this service when recommendation is disabled. Do a GET to /api/core/v3/metadata/properties/feature.recommender.enabled to figure out whether recommendation service is enabled or not.

    The returned list may contain a mixture of content entities of various types. On any given content object entity, use the type field to determine the type of that particular content.

    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseThe fields to be returned on each content
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    Retrieves:
  • Content[] of the matched content objects
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    403 (Forbidden)You are not allowed to access the specified content object
    Since: 3.1

    Get Preview Image

    GET /contents/{contentID}/previewImage

    Return a preview image that represents a content item.

    If returnDefaultImageWhenNoPreviewAvailable is true and no preview exists for the specified content item, a default preview image will be displayed. For content created in a place, the default image will represent the place where the content was created. For personal content, the default image will represent the creator of the content item. If false, a not found response will be returned if no preview is available for the content. Defaults to false, if no value for this param is provided.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content that the preview represents
    Query Parameters:
    NameTypeRequiredDescription
    sizeStringfalsePreferred size ("original", "small", "medium", "large"), default is "original" resolution. Certain content may not support size parameters and will always return the same size image
    returnDefaultImageWhenNoPreviewAvailableStringfalseWhen true, if there is no preview available for the content item a default image representing the content item will be returned. Otherwise, a not found response will be returned.
    Retrieves:
  • the binary content of the image representing a preview of the content
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    404 (Not Found)If the specified content does not exist or a preview does not exist for the content item
    403 (Forbidden)You are not allowed to view the content or its preview

    Get Recent Content

    GET /contents/recent

    Return a list of recently updated content objects that match the specified filter criteria.

    This service supports the following filters. Parameters, when used, should be wrapped in parentheses, and multiple values separated by commas. See the examples for clarification.

    Filter Params Example
    place only one place URI where the content lives ?filter=place(http://domain/api/core/v3/places/1006)
    type one or more object types of desired contained content objects separated by commas ?filter=type(document,discussion)

    The returned list may contain a mixture of content entities of various types. On any given content object entity, use the type field to determine the type of that particular content.

    Query Parameters:
    NameTypeRequiredDescription
    filterObject[]falseThe filter criteria used to select content objects
    startIndexIntegerfalseThe zero relative index of the first content object to be returned
    countIntegerfalseThe maximum number of content objects to be returned
    fieldsStringfalseThe fields to be returned on each content object
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    Retrieves:
  • Content[] of the matched content objects
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object
    410 (Gone)Recommendation feature is disabled
    404 (Not Found)The specified place in the filter does not exist
    Since: 3.1

    Get Recommended Content

    GET /contents/recommended

    Return a list of recommended content objects for the authenticated user. When recommender service is not enabled in the Jive instance then predefined recommended content is going to be returned instead. Do a GET to /api/core/v3/metadata/properties/feature.recommender.enabled to figure out whether recommendation service is enabled or not.

    The returned list may contain a mixture of content entities of various types. On any given content object entity, use the type field to determine the type of that particular content.

    Query Parameters:
    NameTypeRequiredDescription
    countIntegerfalseThe maximum number of contents to be returned
    fieldsStringfalseThe fields to be returned on each content
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    Retrieves:
  • Content[] of the matched content objects
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    403 (Forbidden)You are not allowed to access the specified content object
    Since: 3.1

    Get Trending Content

    GET /contents/trending

    Return a list of trending content objects that match the specified filter criteria. It's possible for some Jive instances to have recommendation disabled, for these cases use getPopularContent(fields, abridged) instead. Do a GET to /api/core/v3/metadata/properties/feature.recommender.enabled to figure out whether recommendation service is enabled or not.

    This service supports the following filters. Parameters, when used, should be wrapped in parentheses, and multiple values separated by commas. See the examples for clarification.

    Filter Params Example
    place only one place URI where the content lives ?filter=place(http://domain/api/core/v3/places/1006)
    type one or more object types of desired contained content objects separated by commas ?filter=type(document,discussion)

    The returned list may contain a mixture of content entities of various types. On any given content object entity, use the type field to determine the type of that particular content.

    Query Parameters:
    NameTypeRequiredDescription
    filterObject[]falseThe filter criteria used to select content objects
    countIntegerfalseThe maximum number of contents to be returned
    fieldsStringfalseThe fields to be returned on each content
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    Retrieves:
  • Content[] of the matched content objects
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object
    410 (Gone)Recommendation feature is disabled
    404 (Not Found)The specified place in the filter does not exist
    Since: 3.1

    Get User Entitlements

    GET /contents/{contentID}/entitlements/{personID}

    Retrieve entitlements for the specified user, granted for the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to resolve entitlements
    personIDStringtrueID of the entitled user to resolve entitlements
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseThe fields to be returned in the entitlements response
    Retrieves:
  • Entitlement of the specified content object for the specified person.
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    403 (Forbidden)You are not allowed to access the specified content object
    404 (Not Found)The specified content does not exist

    Lock Editable Content

    POST /contents/{contentID}/editable

    Attempt to lock the specified content for editing. This method will not fail if the content is already locked. Check the 'editingBy' field in returned entity to see who owns the lock.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be locked
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseFields to include in the returned entity
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field was malformed
    409 (Conflict)if content is already being edited by another user
    403 (Forbidden)You are not allowed to access this content object
    404 (Not Found)The specified content object does not exist

    Mark Read

    POST /contents/{contentID}/read

    Mark the specified content object as having been read.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be marked
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field was malformed
    403 (Forbidden)You are not allowed to access this content object
    404 (Not Found)The specified content object does not exist

    Mark Unread

    DELETE /contents/{contentID}/read

    Mark the specified content object as having not been read.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be marked
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field was malformed
    403 (Forbidden)You are not allowed to access this content object
    404 (Not Found)The specified content object does not exist

    Create Content Following In

    POST /contents/{contentID}/followingIn

    Replace the list of Streams in which the requesting user is following this content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object being followed
    Query Parameters:
    NameTypeRequiredDescription
    fieldsStringfalseFields to be returned on the updated list of streams
    Takes:
  • JSON array of Stream objects or URIs
  • Retrieves:
  • Stream[] updated list of streams
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)if any input field is malformed
    404 (Not Found)if the specified person does not exist
    Since: 3.3

    Unlock Editable Content

    DELETE /contents/{contentID}/editable

    Unlock the specified content object.

    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be unlocked
    Return Status:
    HTTP Status CodeDescription
    204 (No Content)Request was successful
    400 (Bad Request)An input field was malformed
    403 (Forbidden)You are not allowed to access this content object
    404 (Not Found)The specified content object does not exist

    Update Content

    PUT /contents/{contentID}

    Update an existing content with specified characteristics.

    The following rules define which fields in the incoming JSON entity are processed:

    • For all content object types, the following fields are processed: author, content, parent, status, subject, tags, type.
    • For all content object types, the author, content, parent, and subject fields are required, and must be unique within the parent place.
    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be updated
    Query Parameters:
    NameTypeRequiredDescription
    minorBooleanfalseFlag indicating whether this update is a minor edit (true) or not (false)
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    updatedStringfalseDate and time when this content object was most recently updated. Only set this field when importing content. Since 3.6.
    fieldsStringfalseFields to include in the returned entity
    Takes:
  • Content describing the content to be updated
  • Retrieves:
  • Content representing the updated content object
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)The new entity would conflict with system restrictions (such as two content objects of the same type with the same subject)
    403 (Forbidden)You are not allowed to access the specified content object, or to make the requested change in content object state
    404 (Not Found)The specified content does not exist

    Upload Update Content

    PUT /contents/{contentID}

    Update an existing content with specified characteristics including the option to replace existing attachments. Uploading attachments is only allowed for those content types that support attachments. A BAD_REQUEST error will be returned if attachments are passed and the content type does not support them.

    The following rules define which fields in the incoming JSON entity are processed:

    • For all content object types, the following fields are processed: author, content, parent, status, subject, tags, type.
    • For all content object types, the author, content, parent, and subject fields are required, and must be unique within the parent place.
    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be updated
    Query Parameters:
    NameTypeRequiredDescription
    minorBooleanfalseFlag indicating whether this update is a minor edit (true) or not (false)
    updatedStringfalseDate and time when this content object was most recently updated. Only set this field when importing content. Since 3.6.
    fieldsStringfalseFields to include in the returned entity
    Takes:
  • Multipart of subtype form-data that will include a section with a Content describing the content to be updated and another section for each file being uploaded.
  • Retrieves:
  • Content representing the updated content object
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)The new entity would conflict with system restrictions (such as two content objects of the same type with the same subject)
    403 (Forbidden)You are not allowed to access the specified content object, or to make the requested change in content object state
    404 (Not Found)The specified content does not exist

    Update Editable Content

    PUT /contents/{contentID}/editable

    Update an existing content with editable content and specified characteristics. The returned content body in the JSON will include Jive macros that the RTE will need to understand. The input JSON must include a true value in content.editable if the content body is using RTE macros.

    The following rules define which fields in the incoming JSON entity are processed:

    • For all content object types, the following fields are processed: author, content, parent, status, subject, tags, type.
    • For all content object types, the author, content, parent, and subject fields are required, and must be unique within the parent place.
    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be updated
    Query Parameters:
    NameTypeRequiredDescription
    minorBooleanfalseFlag indicating whether this update is a minor edit (true) or not (false)
    abridgedBooleanfalseFlag indicating that if content.text is requested, it will be abridged (length shortened, HTML tags removed)
    fieldsStringfalseFields to include in the returned entity
    Takes:
  • Content describing the content to be updated
  • Retrieves:
  • Content representing the updated content object
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)The new entity would conflict with system restrictions (such as two content objects of the same type with the same subject)
    403 (Forbidden)You are not allowed to access the specified content object, or to make the requested change in content object state

    Upload Update Editable Content

    PUT /contents/{contentID}/editable

    Update an existing content with specified characteristics including the option to replace existing attachments. Uploading attachments is only allowed for those content types that support attachments. A BAD_REQUEST error will be returned if attachments are passed and the content type does not support them. The returned content body in the JSON will include Jive macros that the RTE will need to understand. The input JSON must include a true value in content.editable if the content body is using RTE macros.

    The following rules define which fields in the incoming JSON entity are processed:

    • For all content object types, the following fields are processed: author, content, parent, status, subject, tags, type.
    • For all content object types, the author, content, parent, and subject fields are required, and must be unique within the parent place.
    Path Parameters:
    NameTypeRequiredDescription
    contentIDStringtrueID of the content object to be updated
    Query Parameters:
    NameTypeRequiredDescription
    minorBooleanfalseFlag indicating whether this update is a minor edit (true) or not (false)
    fieldsStringfalseFields to include in the returned entity
    Takes:
  • Multipart of subtype form-data that will include a section with a Content describing the content to be updated and another section for each file being uploaded.
  • Retrieves:
  • Content representing the updated editable content object
  • Return Status:
    HTTP Status CodeDescription
    200 (OK)Request was successful
    400 (Bad Request)An input field is malformed
    409 (Conflict)The new entity would conflict with system restrictions (such as two content objects of the same type with the same subject)
    403 (Forbidden)You are not allowed to access the specified content object, or to make the requested change in content object state