# Get Popular Articles ## Overview The Popular Articles API allows a user to retrieve popular articles. ## Prerequisites * Only displayable articles are returned. An Article is displayable when "Include in browse on portals" property is enable for the Article. ## Permissions * Agent permissions: The following permissions are required if user is an Agent: * If Article has Access Tags, Article must be available for agent's current user profile. * If Article has Publish Views, at least one edition of Article must be available for agent's current user profile. * If Article has filters and tags query parameter provided, Article filters must match provided tags or tag groups. * Customer permissions: The following permissions are required if user is a Customer: * If Article has Access tags: * Portal must have default user profile, and; * Article must be available for portal's default user profile. * If Article has Publish Views: * Portal must have default user profile, and; * At least one edition must be available for portal's default user profile. * If Article has filters and tags query parameter provided, Article filters must match provided tags or tag groups. Endpoint: GET /portals/{portalID}/populararticles Security: oAuthUser, oAuthOnBehalfOfUser, oAuthCustomer, oAuthOnBehalfOfCustomer, oAuthAnonymousCustomer ## Header parameters: - `Accept-Language` (string, required) The Language locale accepted by the client (used for locale specific fields in resource representation and in error responses). Enum: "en-US", "es-ES", "fr-FR", "it-IT", "de-DE", "nl-NL", "pt-BR", "pt-PT", "da-DK", "ru-RU", "fr-CA", "zh-CN", "ja-JP", "ko-KR", "sv-SE" - `x-ext-integration-id` (string) The unique numeric identifier for a tenant, used in self-service functionality as well as third-party integrations.Note: The x-ext-integration-id and x-ext-interaction-id headers must always be provided together and cannot be supplied independently.The x-egain-activity-id may be provided on its own, or it may be provided along with both x-ext-integration-id and x-ext-interaction-id. - `x-egain-activity-id` (string) A unique numeric interaction identifier from eGain. Example: "59237" - `x-ext-interaction-id` (string) A unique interaction identifier from other CRM applications.Note: The x-ext-integration-id and x-ext-interaction-id headers must always be provided together and cannot be supplied independently.The x-egain-activity-id may be provided on its own, or it may be provided along with both x-ext-integration-id and x-ext-interaction-id. ## Path parameters: - `portalID` (string, required) The ID of the portal being accessed.A portal ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits. Example: "PROD-1000" ## Query parameters: - `$filter[topicId]` (string) The ID of the topic. It is used to restrict to a specific topic. Example: "PROD-1067" - `$lang` (string) The language that describes the details of a resource. Resources available in different languages may differ from each other.If lang is not passed, then the portal's default language is used. Enum: "en-US", "fr-FR", "en-GB", "es-ES", "it-IT", "nl-NL", "da-DA", "sv-SE", "pt-PT", "fi-FI", "no-NB", "no-NN", "ja-JA", "de-DE", "pt-BR", "zh-CN", "zh-TW", "ko-KO", "ru-RU", "el-EL", "tr-TR", "pl-PL", "cs-CS", "sk-SK", "hu-HU", "sr-SR", "ar-SA", "hr-HR", "ro-RO", "th-TH", "de-AT", "vi-VN", "id-ID", "ms-MY", "fil-PH", "fr-CA", "hi-IN", "uk-UA", "bg-BG", "sl-SI", "xx-XX" - `$filter[tags]` (string) A comma separated list of Tag / Tag Group IDs. The query results will be filtered by the tags that are specified.Tag IDs and Tag Group IDs can be mixed together. Example: "PROD-5381" - `$pagenum` (integer) Pagination parameter that specifies the page number of results to be returned. Used in conjunction with $pagesize. - `$pagesize` (integer) Pagination parameter that specifies the number of results per page. Used in conjunction with $pagenum. - `articleResultAdditionalAttributes` (array) The attributes of an Article to be returned in addition to the default list of attributes, listed below. Multiple additional attributes can be specified using a comma-separated list. Passing 'all' will return all attributes. #### Default Attributes These Article attributes are always returned: | Name | Description | ---- | ----------- | id | The ID of the Article. | name | The name of the Article. | articleType | The Article Type and its attributes. | createdBy | The ID, first name, middle name and last name of the user that created the Article. | createdDate | The date that the Article was created. | hasAttachments | True: The Article has one or more attachments.False: The Article does not have any attachments. | languageCode | The language code of the Article language. | modifiedBy | The ID, first name, middle name and last name of the user that last modified the Article. | modifiedDate | The date that the Article was last modified on. | link | The link object, used to retrieve the details of the Article. | versionId | The ID of the Article version that is returned. Enum: "averageRating", "customAttributes", "description", "articleSummary", "imageURL", "isSubscribed", "timesRated", "topicBreadcrumb", "ownedBy", "ownedBy.userName", "workflow", "compliance", "personalization", "all" ## Response 200 fields (application/json): - `articles` (array) Article details - `articles.id` (string) The ID of the Article.An Article ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits. - `articles.articleType` (object) The type of the Article and its attributes. - `articles.articleType.articleCategoryId` (integer) Specifies the article category ID. - `articles.articleType.typeName` (string) Indicates the article type name. - `articles.articleType.useStructuredAuthoring` (boolean) Indicates whether structured authoring is enabled for this article type, requiring content to be created using predefined fields - `articles.articleType.articleTypeId` (string) The ID of the Article Type. Example: "932100000002020" - `articles.articleKeywords` (string) A comma-separated list of keywords associated with this Article. 1 KB max size limit. - `articles.articleSummary` (string) A brief summary of the Article, provided as metadata. 1 KB max size limit. - `articles.averageRating` (number) The average rating of the Article. - `articles.createdBy` (object) - `articles.createdBy.id` (string) The ID of the user that created this resource. - `articles.createdBy.userName` (string) The resource creator's username. - `articles.createdBy.firstName` (string) The resource creator's first name. - `articles.createdBy.middleName` (string) The resource creator's middle name. - `articles.createdBy.lastName` (string) The resource creator's last name. - `articles.modifiedBy` (object) - `articles.modifiedBy.id` (string) The ID of the user that modified this resource. - `articles.modifiedBy.userName` (string) The resource modifier's username. - `articles.modifiedBy.firstName` (string) The resource modifier's first name. - `articles.modifiedBy.middleName` (string) The resource modifier's middle name. - `articles.modifiedBy.lastName` (string) The resource modifier's last name. - `articles.ownedBy` (object) - `articles.ownedBy.id` (string) The ID of the user that owns this resource. - `articles.ownedBy.userName` (string) The resource owner's username. - `articles.ownedBy.firstName` (string) The resource owner's first name. - `articles.ownedBy.middleName` (string) The resource owner's middle name. - `articles.ownedBy.lastName` (string) The resource owner's last name. - `articles.createdDate` (string) - `articles.customAttributes` (array) A list of custom attributes. - `articles.customAttributes.name` (string) The custom attribute's name. - `articles.customAttributes.value` (array) The custom attribute's values. - `articles.customAttributes.type` (string) The custom attribute's type. Enum: "STRING", "INTEGER", "BOOLEAN", "DATETIME" - `articles.description` (string) A description of the Article. The maximum allowed Article description size is 1 KB. - `articles.hasAttachments` (boolean) Indicates whether the Article has any attachments. - `articles.isSubscribed` (boolean) Indicates whether the Article is subscribed for notifications. - `articles.modifiedDate` (string) The date on which the Article was last modified. - `articles.languageCode` (string) Language code of the resource's language. Enum: "en-US", "fr-FR", "en-GB", "es-ES", "it-IT", "nl-NL", "da-DA", "sv-SE", "pt-PT", "fi-FI", "no-NB", "no-NN", "ja-JA", "de-DE", "pt-BR", "zh-CN", "zh-TW", "ko-KO", "ru-RU", "el-EL", "tr-TR", "pl-PL", "cs-CS", "sk-SK", "hu-HU", "sr-SR", "ar-SA", "hr-HR", "ro-RO", "th-TH" - `articles.link` (object) Defines the relationship between this resource and another object. - `articles.link.rel` (string) Defines the relationship between a linked resource and the current object.For example: self, prev, next or an object name such as 'user', 'folder' etc. - `articles.link.href` (string) The URL that specifies the link's destination. - `articles.imageURL` (string) The URL of the image that is present in the Article version. It is used as the thumbnail image for the Article. - `articles.name` (string) The name of the Article. - `articles.timesRated` (integer) The number of times that this Article has been rated. - `articles.topicBreadcrumb` (array) A list of topics from the root topic to this Article. There may be multiple paths. - `articles.topicBreadcrumb.topicSummary` (array) An instance of TopicSummary. - `articles.topicBreadcrumb.topicSummary.id` (string) The alphanumeric ID of the topic.A topic ID is composed of a 2-4 letter prefix, followed by a dash and 4-15 digits. Example: "PROD-1921" - `articles.topicBreadcrumb.topicSummary.name` (string) The name of the topic. - `articles.versionId` (string) The ID of this version of the Article. - `articles.workflow` (object) The Article's workflow. - `articles.workflow.stages` (array) An array of stages for the workflow. - `articles.workflow.stages.name` (string) The name of the stage. - `articles.workflow.stages.milestone` (object) A resource's workflow milestone. - `articles.workflow.stages.milestone.name` (object) The identifiers of the milestone. - `articles.workflow.stages.milestone.name.value` (string) The name of the milestone. - `articles.workflow.stages.milestone.name.displayValue` (string) The readable name of the milestone. - `articles.compliance` (object) This schema contains the compliance details for an Article. - `articles.compliance.startDate` (object) The start date for the Article. - `articles.compliance.startDate.date` (string, required) The date in the format YYYY-MM-DDTHH:MM:SS. - `articles.compliance.dueDate` (object) The end date for the Article. - `articles.personalization` (object) Personalization allows the filtering of search results and controls the access to articles and article editions. - `articles.personalization.accessTags` (object) - `articles.personalization.accessTags.tagCategory` (array) An array of tag categories. Note that the total number of tag categories cannot exceed 20. - `articles.personalization.accessTags.tagCategory.name` (string) The name of the tag category. - `articles.personalization.accessTags.tagCategory.id` (string) The ID of the tag category. A tag category ID is composed of a 4-letter prefix, followed by a dash and 4-15 digits. - `articles.personalization.accessTags.tagCategory.tags` (object) - `articles.personalization.accessTags.tagCategory.tags.tag` (array) An array of tags. - `articles.personalization.accessTags.tagCategory.tags.tag.name` (string) Example: "Blue" - `articles.personalization.accessTags.tagCategory.tags.tag.id` (string) Example: "PROD-13206" - `articles.personalization.accessTags.tagCategory.tagGroups` (object) - `articles.personalization.accessTags.tagCategory.tagGroups.tagGroup` (array) An array of tag groups. - `articles.personalization.filters` (object) - `articles.personalization.publishViews` (object) - `articles.personalization.publishViews.publishView` (array) Publish views allow authors to tailor the contents of an article to different audiences by controlling visibility of certain article content using tags.The total number of publish views is limited to 20. - `articles.personalization.publishViews.publishView.name` (string) name of the publish view - `articles.personalization.publishViews.publishView.tagCategories` (array) Tag categories are comprised of both tags and tag groups.Note that the total number of tag and tag groups cannot exceed 20. - `articles.personalization.publishViews.publishView.tagCategories.tagCategory` (array) - `paginationInfo` (object) - `paginationInfo.count` (integer, required) The total number of pages. - `paginationInfo.pagenum` (integer, required) The page number requested. Page numbers start from 1. - `paginationInfo.pagesize` (integer, required) The number of objects requested per page. The maximum number of objects per page is 75. - `paginationInfo.link` (array) Can include the prev and next link. ## Response 400 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 401 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 403 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 404 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 406 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 500 fields (application/json): - `code` (string, required) A string that follows the pattern {integer}-{integer}. The first {integer} is the http status code. This code as a whole is unique. * For example, error codes "400-101" and "404-101" are distinctly different. - `developerMessage` (string, required) A summary of the error. - `details` (array) - `details.key` (string, required) - `details.value` (string) - `userMessage` (string) UI friendly messages are only supported by some APIs. The client must explicitly request UI friendly messages by passing the X-egain-error-message=yes* header. ## Response 204 fields